0000: 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d #---------------
0010: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0020: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0030: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0040: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0050: 0a 23 20 47 6c 6f 62 61 6c 20 76 61 72 73 0a 0a .# Global vars..
0060: 3a 67 6c 6f 62 61 6c 20 73 74 72 44 65 73 63 20 :global strDesc
0070: 22 22 3b 0a 3a 67 6c 6f 62 61 6c 20 73 74 72 43 "";.:global strC
0080: 6f 6e 66 20 22 22 3b 0a 3a 67 6c 6f 62 61 6c 20 onf "";.:global
0090: 4e 4c 20 22 5c 72 5c 6e 22 3b 0a 0a 3a 67 6c 6f NL "\r\n";..:glo
00a0: 62 61 6c 20 63 6f 6e 66 69 67 4d 6f 64 65 20 22 bal configMode "
00b0: 22 3b 0a 3a 67 6c 6f 62 61 6c 20 64 68 63 70 45 ";.:global dhcpE
00c0: 6e 61 62 6c 65 64 20 30 0a 3a 67 6c 6f 62 61 6c nabled 0.:global
00d0: 20 6c 74 65 44 68 63 70 20 30 0a 3a 67 6c 6f 62 lteDhcp 0.:glob
00e0: 61 6c 20 77 69 72 65 6c 65 73 73 45 6e 61 62 6c al wirelessEnabl
00f0: 65 64 20 30 0a 3a 67 6c 6f 62 61 6c 20 69 70 76 ed 0.:global ipv
0100: 36 45 6e 61 62 6c 65 64 20 30 0a 3a 67 6c 6f 62 6Enabled 0.:glob
0110: 61 6c 20 69 73 50 43 49 6e 65 65 64 65 64 20 30 al isPCIneeded 0
0120: 3b 0a 3a 67 6c 6f 62 61 6c 20 69 73 50 50 50 6e ;.:global isPPPn
0130: 65 65 64 65 64 20 30 3b 0a 3a 67 6c 6f 62 61 6c eeded 0;.:global
0140: 20 6e 65 65 64 44 69 73 6b 53 68 61 72 69 6e 67 needDiskSharing
0150: 20 30 3b 0a 3a 67 6c 6f 62 61 6c 20 6e 65 65 64 0;.:global need
0160: 44 68 63 70 43 6c 69 65 6e 74 20 30 3b 0a 0a 3a DhcpClient 0;..:
0170: 67 6c 6f 62 61 6c 20 6e 54 65 6d 70 20 30 3b 0a global nTemp 0;.
0180: 3a 67 6c 6f 62 61 6c 20 62 46 61 69 6c 20 30 3b :global bFail 0;
0190: 0a 3a 67 6c 6f 62 61 6c 20 62 44 65 62 75 67 4f .:global bDebugO
01a0: 6e 20 30 3b 20 20 23 20 65 6e 61 62 6c 65 20 74 n 0; # enable t
01b0: 68 69 73 20 66 6f 72 20 61 64 64 69 74 69 6f 6e his for addition
01c0: 61 6c 20 64 65 62 75 67 20 6c 6f 67 73 0a 0a 23 al debug logs..#
01d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
01e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
01f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0200: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0210: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a ---------------.
0220: 23 20 57 61 69 74 20 6c 6f 6f 70 62 61 63 6b 20 # Wait loopback
0230: 62 65 66 6f 72 65 20 64 65 66 63 6f 6e 66 20 67 before defconf g
0240: 65 6e 65 72 61 74 69 6f 6e 20 61 73 20 61 20 73 eneration as a s
0250: 69 67 6e 20 74 68 61 74 20 6e 65 74 77 6f 72 6b ign that network
0260: 69 6e 67 20 69 73 20 69 6e 69 74 69 61 6c 69 7a ing is initializ
0270: 65 64 0a 0a 3a 6c 6f 63 61 6c 20 63 6f 75 6e 74 ed..:local count
0280: 20 30 3b 0a 3a 77 68 69 6c 65 20 28 5b 3a 6c 65 0;.:while ([:le
0290: 6e 20 5b 2f 69 6e 74 65 72 66 61 63 65 20 66 69 n [/interface fi
02a0: 6e 64 20 77 68 65 72 65 20 74 79 70 65 3d 22 6c nd where type="l
02b0: 6f 6f 70 62 61 63 6b 22 5d 5d 20 3d 20 30 20 26 oopback"]] = 0 &
02c0: 26 20 24 63 6f 75 6e 74 20 3c 20 33 30 29 20 64 & $count < 30) d
02d0: 6f 3d 7b 0a 20 20 20 20 3a 73 65 74 20 63 6f 75 o={. :set cou
02e0: 6e 74 20 28 24 63 6f 75 6e 74 20 2b 31 29 3b 0a nt ($count +1);.
02f0: 20 20 20 20 3a 64 65 6c 61 79 20 31 73 3b 0a 7d :delay 1s;.}
0300: 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..#-------------
0310: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0320: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0330: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0340: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0350: 2d 2d 0a 23 20 55 74 69 6c 69 74 69 65 73 0a 0a --.# Utilities..
0360: 3a 67 6c 6f 62 61 6c 20 61 64 64 43 4c 20 64 6f :global addCL do
0370: 3d 7b 0a 20 20 3a 67 6c 6f 62 61 6c 20 73 74 72 ={. :global str
0380: 43 6f 6e 66 3b 0a 20 20 3a 67 6c 6f 62 61 6c 20 Conf;. :global
0390: 4e 4c 3b 0a 20 20 3a 73 65 74 20 73 74 72 43 6f NL;. :set strCo
03a0: 6e 66 20 28 24 73 74 72 43 6f 6e 66 20 2e 20 24 nf ($strConf . $
03b0: 31 20 2e 20 24 4e 4c 29 0a 7d 0a 0a 3a 67 6c 6f 1 . $NL).}..:glo
03c0: 62 61 6c 20 61 64 64 44 4c 20 64 6f 3d 7b 0a 20 bal addDL do={.
03d0: 20 3a 67 6c 6f 62 61 6c 20 73 74 72 44 65 73 63 :global strDesc
03e0: 3b 0a 20 20 3a 67 6c 6f 62 61 6c 20 4e 4c 3b 0a ;. :global NL;.
03f0: 20 20 3a 73 65 74 20 73 74 72 44 65 73 63 20 28 :set strDesc (
0400: 24 73 74 72 44 65 73 63 20 2e 20 24 31 20 2e 20 $strDesc . $1 .
0410: 24 4e 4c 29 0a 7d 0a 0a 3a 67 6c 6f 62 61 6c 20 $NL).}..:global
0420: 61 64 64 44 43 4c 20 64 6f 3d 7b 0a 20 20 3a 67 addDCL do={. :g
0430: 6c 6f 62 61 6c 20 73 74 72 43 6f 6e 66 3b 0a 20 lobal strConf;.
0440: 20 3a 67 6c 6f 62 61 6c 20 4e 4c 3b 0a 20 20 3a :global NL;. :
0450: 67 6c 6f 62 61 6c 20 62 44 65 62 75 67 4f 6e 3b global bDebugOn;
0460: 0a 20 20 3a 69 66 20 28 24 62 44 65 62 75 67 4f . :if ($bDebugO
0470: 6e 3d 31 29 20 64 6f 3d 7b 0a 20 20 20 20 3a 6c n=1) do={. :l
0480: 6f 63 61 6c 20 6c 6f 67 6c 69 6e 65 20 28 22 3a ocal logline (":
0490: 6c 6f 67 20 69 6e 66 6f 20 5c 22 44 65 66 43 6f log info \"DefCo
04a0: 6e 66 3a 20 22 20 2e 20 24 31 20 2e 20 22 5c 22 nf: " . $1 . "\"
04b0: 22 29 0a 20 20 20 20 3a 73 65 74 20 73 74 72 43 "). :set strC
04c0: 6f 6e 66 20 28 24 73 74 72 43 6f 6e 66 20 2e 20 onf ($strConf .
04d0: 24 6c 6f 67 6c 69 6e 65 20 2e 20 20 24 4e 4c 29 $logline . $NL)
04e0: 0a 20 20 7d 0a 7d 0a 0a 3a 67 6c 6f 62 61 6c 20 . }.}..:global
04f0: 70 72 69 6e 74 44 65 62 75 67 20 64 6f 3d 7b 0a printDebug do={.
0500: 20 20 3a 67 6c 6f 62 61 6c 20 62 44 65 62 75 67 :global bDebug
0510: 4f 6e 3b 0a 20 20 3a 69 66 20 28 24 62 44 65 62 On;. :if ($bDeb
0520: 75 67 4f 6e 3d 31 29 20 64 6f 3d 7b 0a 20 20 20 ugOn=1) do={.
0530: 20 3a 6c 6f 67 20 69 6e 66 6f 20 28 22 44 65 66 :log info ("Def
0540: 63 6f 6e 66 28 64 65 62 75 67 29 3a 20 24 5b 3a conf(debug): $[:
0550: 74 6f 73 74 72 20 24 31 5d 22 29 0a 20 20 7d 0a tostr $1]"). }.
0560: 7d 0a 0a 23 20 63 68 65 63 6b 20 69 66 20 70 72 }..# check if pr
0570: 6f 76 69 64 65 64 20 63 68 61 72 61 63 74 65 72 ovided character
0580: 20 69 73 20 6e 75 6d 62 65 72 0a 3a 67 6c 6f 62 is number.:glob
0590: 61 6c 20 69 73 4e 75 6d 20 64 6f 3d 7b 0a 20 20 al isNum do={.
05a0: 3a 72 65 74 75 72 6e 20 28 24 31 7e 22 5b 30 2d :return ($1~"[0-
05b0: 39 5d 22 29 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 9]").}..#-------
05c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
05d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
05e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
05f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0600: 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 66 75 6e 63 74 --------.# funct
0610: 69 6f 6e 20 66 69 6e 64 73 20 6e 65 78 74 20 73 ion finds next s
0620: 65 63 74 69 6f 6e 20 66 72 6f 6d 20 62 6f 61 72 ection from boar
0630: 64 20 6e 61 6d 65 0a 23 2d 2d 2d 2d 2d 2d 2d 2d d name.#--------
0640: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0650: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0660: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0670: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0680: 2d 2d 2d 2d 2d 2d 2d 0a 3a 67 6c 6f 62 61 6c 20 -------.:global
0690: 66 69 6e 64 4e 65 78 74 53 65 63 74 69 6f 6e 20 findNextSection
06a0: 64 6f 3d 7b 0a 20 20 3a 6c 6f 63 61 6c 20 72 65 do={. :local re
06b0: 74 20 30 3b 0a 20 20 3a 6c 6f 63 61 6c 20 74 6d t 0;. :local tm
06c0: 70 3b 0a 20 20 3a 6c 6f 63 61 6c 20 72 65 74 20 p;. :local ret
06d0: 24 32 0a 20 20 3a 64 6f 20 7b 0a 20 20 20 20 3a $2. :do {. :
06e0: 73 65 74 20 74 6d 70 20 5b 3a 70 69 63 6b 20 24 set tmp [:pick $
06f0: 31 20 24 72 65 74 5d 0a 20 20 20 20 3a 73 65 74 1 $ret]. :set
0700: 20 72 65 74 20 28 24 72 65 74 2b 31 29 3b 0a 20 ret ($ret+1);.
0710: 20 7d 20 77 68 69 6c 65 3d 28 21 28 28 24 74 6d } while=(!(($tm
0720: 70 7e 22 5b 2d 20 2b 26 5d 22 29 20 7c 7c 20 28 p~"[- +&]") || (
0730: 24 72 65 74 20 3e 20 5b 3a 6c 65 6e 20 24 31 5d $ret > [:len $1]
0740: 29 29 29 0a 20 20 23 69 6e 63 6c 75 64 65 20 2b ))). #include +
0750: 20 69 6e 20 72 65 74 75 72 6e 0a 20 20 3a 69 66 in return. :if
0760: 20 28 24 74 6d 70 20 3d 20 22 2b 22 29 20 64 6f ($tmp = "+") do
0770: 3d 7b 20 3a 73 65 74 20 24 72 65 74 20 28 24 72 ={ :set $ret ($r
0780: 65 74 2b 31 29 20 7d 0a 20 20 3a 72 65 74 75 72 et+1) }. :retur
0790: 6e 20 24 72 65 74 0a 7d 0a 0a 23 2d 2d 2d 2d 2d n $ret.}..#-----
07a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
07b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
07c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
07d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
07e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 74 72 79 ----------.# try
07f0: 20 74 6f 20 67 65 74 20 73 74 72 69 6e 67 20 64 to get string d
0800: 65 73 63 72 69 62 69 6e 67 20 62 6f 61 72 64 20 escribing board
0810: 66 65 61 74 75 72 65 73 20 66 72 6f 6d 20 62 6f features from bo
0820: 61 72 64 20 6e 61 6d 65 0a 23 20 20 72 65 74 75 ard name.# retu
0830: 72 6e 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 rns an array of
0840: 28 62 6f 61 72 64 20 70 72 65 66 69 78 2c 20 77 (board prefix, w
0850: 69 72 65 6c 65 73 73 2c 20 69 73 41 70 2c 20 6f ireless, isAp, o
0860: 74 68 65 72 29 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d ther).#---------
0870: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0880: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0890: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
08a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
08b0: 2d 2d 2d 2d 2d 2d 0a 3a 67 6c 6f 62 61 6c 20 67 ------.:global g
08c0: 65 74 46 65 61 74 75 72 65 53 74 72 69 6e 67 20 etFeatureString
08d0: 64 6f 3d 7b 0a 20 20 3a 67 6c 6f 62 61 6c 20 66 do={. :global f
08e0: 69 6e 64 4e 65 78 74 53 65 63 74 69 6f 6e 3b 0a indNextSection;.
08f0: 0a 20 20 3a 6c 6f 63 61 6c 20 70 72 65 66 69 78 . :local prefix
0900: 20 22 22 3b 0a 20 20 3a 6c 6f 63 61 6c 20 6d 6f "";. :local mo
0910: 64 65 6c 20 22 22 3b 0a 20 20 3a 6c 6f 63 61 6c del "";. :local
0920: 20 77 69 72 65 6c 65 73 73 20 22 22 3b 0a 20 20 wireless "";.
0930: 3a 6c 6f 63 61 6c 20 6f 74 68 65 72 20 22 22 3b :local other "";
0940: 0a 20 20 3a 6c 6f 63 61 6c 20 65 6e 64 20 30 3b . :local end 0;
0950: 0a 20 20 3a 6c 6f 63 61 6c 20 74 6d 70 20 22 22 . :local tmp ""
0960: 3b 0a 20 20 3a 6c 6f 63 61 6c 20 70 6f 73 20 30 ;. :local pos 0
0970: 3b 0a 20 20 3a 6c 6f 63 61 6c 20 6f 6c 64 50 6f ;. :local oldPo
0980: 73 20 30 3b 0a 20 20 3a 6c 6f 63 61 6c 20 69 73 s 0;. :local is
0990: 41 70 20 30 3b 0a 20 20 3a 6c 6f 63 61 6c 20 6e Ap 0;. :local n
09a0: 75 6d 53 66 70 20 30 3b 0a 20 20 3a 6c 6f 63 61 umSfp 0;. :loca
09b0: 6c 20 6e 75 6d 53 66 70 50 6c 75 73 20 30 3b 0a l numSfpPlus 0;.
09c0: 20 20 3a 6c 6f 63 61 6c 20 6e 75 6d 47 69 67 20 :local numGig
09d0: 30 3b 0a 20 20 3a 6c 6f 63 61 6c 20 6e 75 6d 43 0;. :local numC
09e0: 6f 6d 62 6f 20 30 3b 0a 20 20 3a 6c 6f 63 61 6c ombo 0;. :local
09f0: 20 69 73 4c 74 65 20 30 3b 20 23 20 69 66 20 62 isLte 0; # if b
0a00: 6f 61 72 64 20 68 61 73 20 62 75 69 6c 74 2d 69 oard has built-i
0a10: 6e 20 4c 54 45 0a 0a 20 20 3a 73 65 74 20 70 6f n LTE.. :set po
0a20: 73 20 5b 24 66 69 6e 64 4e 65 78 74 53 65 63 74 s [$findNextSect
0a30: 69 6f 6e 20 24 62 6f 61 72 64 53 74 72 20 24 6f ion $boardStr $o
0a40: 6c 64 50 6f 73 5d 0a 20 20 3a 73 65 74 20 70 72 ldPos]. :set pr
0a50: 65 66 69 78 20 5b 3a 70 69 63 6b 20 24 62 6f 61 efix [:pick $boa
0a60: 72 64 53 74 72 20 30 20 28 24 70 6f 73 2d 31 29 rdStr 0 ($pos-1)
0a70: 5d 0a 0a 20 20 23 67 65 74 20 62 6f 61 72 64 20 ].. #get board
0a80: 6d 6f 64 65 6c 20 28 6e 65 77 20 73 74 79 6c 65 model (new style
0a90: 29 0a 20 20 3a 69 66 20 28 24 70 72 65 66 69 78 ). :if ($prefix
0aa0: 20 7e 20 22 52 6f 75 74 65 72 42 4f 41 52 44 7c ~ "RouterBOARD|
0ab0: 43 6c 6f 75 64 22 29 20 64 6f 3d 7b 0a 20 20 20 Cloud") do={.
0ac0: 20 3a 73 65 74 20 6f 6c 64 50 6f 73 20 24 70 6f :set oldPos $po
0ad0: 73 0a 20 20 20 20 3a 73 65 74 20 70 6f 73 20 5b s. :set pos [
0ae0: 24 66 69 6e 64 4e 65 78 74 53 65 63 74 69 6f 6e $findNextSection
0af0: 20 24 62 6f 61 72 64 53 74 72 20 24 6f 6c 64 50 $boardStr $oldP
0b00: 6f 73 5d 0a 20 20 20 20 3a 73 65 74 20 6d 6f 64 os]. :set mod
0b10: 65 6c 20 5b 3a 70 69 63 6b 20 24 62 6f 61 72 64 el [:pick $board
0b20: 53 74 72 20 24 6f 6c 64 50 6f 73 20 28 24 70 6f Str $oldPos ($po
0b30: 73 2d 31 29 5d 0a 20 20 7d 20 65 6c 73 65 3d 7b s-1)]. } else={
0b40: 0a 20 20 20 20 23 20 6f 6c 64 20 73 74 79 6c 65 . # old style
0b50: 0a 20 20 20 20 3a 69 66 20 28 24 70 72 65 66 69 . :if ($prefi
0b60: 78 20 7e 20 22 43 52 53 22 29 20 64 6f 3d 7b 0a x ~ "CRS") do={.
0b70: 20 20 20 20 20 20 3a 73 65 74 20 70 72 65 66 69 :set prefi
0b80: 78 20 22 43 6c 6f 75 64 52 6f 75 74 65 72 53 77 x "CloudRouterSw
0b90: 69 74 63 68 22 0a 20 20 20 20 20 20 3a 73 65 74 itch". :set
0ba0: 20 6d 6f 64 65 6c 20 5b 3a 70 69 63 6b 20 24 62 model [:pick $b
0bb0: 6f 61 72 64 53 74 72 20 28 24 6f 6c 64 50 6f 73 oardStr ($oldPos
0bc0: 2b 33 29 20 28 24 70 6f 73 2d 31 29 5d 0a 20 20 +3) ($pos-1)].
0bd0: 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 20 } else={.
0be0: 20 3a 69 66 20 28 24 70 72 65 66 69 78 20 7e 20 :if ($prefix ~
0bf0: 22 52 42 22 29 20 64 6f 3d 7b 0a 20 20 20 20 20 "RB") do={.
0c00: 20 20 20 3a 73 65 74 20 70 72 65 66 69 78 20 22 :set prefix "
0c10: 52 6f 75 74 65 72 42 4f 41 52 44 22 0a 20 20 20 RouterBOARD".
0c20: 20 20 20 20 20 3a 73 65 74 20 6d 6f 64 65 6c 20 :set model
0c30: 5b 3a 70 69 63 6b 20 24 62 6f 61 72 64 53 74 72 [:pick $boardStr
0c40: 20 28 24 6f 6c 64 50 6f 73 2b 32 29 20 28 24 70 ($oldPos+2) ($p
0c50: 6f 73 2d 31 29 5d 0a 20 20 20 20 20 20 7d 20 65 os-1)]. } e
0c60: 6c 73 65 3d 7b 0a 20 20 20 20 20 20 20 20 3a 73 lse={. :s
0c70: 65 74 20 70 72 65 66 69 78 20 22 52 6f 75 74 65 et prefix "Route
0c80: 72 42 4f 41 52 44 22 0a 20 20 20 20 20 20 20 20 rBOARD".
0c90: 3a 73 65 74 20 6d 6f 64 65 6c 20 5b 3a 70 69 63 :set model [:pic
0ca0: 6b 20 24 62 6f 61 72 64 53 74 72 20 24 6f 6c 64 k $boardStr $old
0cb0: 50 6f 73 20 28 24 70 6f 73 2d 31 29 5d 0a 20 20 Pos ($pos-1)].
0cc0: 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a }. }. }.
0cd0: 20 20 23 73 70 65 63 69 61 6c 20 63 61 73 65 20 #special case
0ce0: 69 66 20 6d 6f 64 65 6c 20 65 6e 64 73 20 77 69 if model ends wi
0cf0: 74 68 20 2b 0a 20 20 3a 69 66 20 28 5b 3a 70 69 th +. :if ([:pi
0d00: 63 6b 20 24 6d 6f 64 65 6c 20 28 5b 3a 6c 65 6e ck $model ([:len
0d10: 20 24 6d 6f 64 65 6c 5d 2d 31 29 5d 20 3d 20 22 $model]-1)] = "
0d20: 2b 22 29 20 64 6f 3d 7b 3a 73 65 74 20 24 70 6f +") do={:set $po
0d30: 73 20 28 24 70 6f 73 2d 31 29 7d 0a 20 20 23 20 s ($pos-1)}. #
0d40: 73 6b 69 70 20 47 20 72 69 67 68 74 20 61 66 74 skip G right aft
0d50: 65 72 20 62 6f 61 72 64 20 6e 61 6d 65 0a 20 20 er board name.
0d60: 3a 69 66 20 28 5b 3a 70 69 63 6b 20 24 62 6f 61 :if ([:pick $boa
0d70: 72 64 53 74 72 20 24 70 6f 73 5d 20 3d 20 22 47 rdStr $pos] = "G
0d80: 22 29 20 64 6f 3d 7b 20 3a 73 65 74 20 70 6f 73 ") do={ :set pos
0d90: 20 28 24 70 6f 73 2b 31 29 7d 0a 20 20 3a 69 66 ($pos+1)}. :if
0da0: 20 28 5b 3a 70 69 63 6b 20 24 62 6f 61 72 64 53 ([:pick $boardS
0db0: 74 72 20 24 70 6f 73 5d 20 3d 20 22 41 22 29 20 tr $pos] = "A")
0dc0: 64 6f 3d 7b 20 3a 73 65 74 20 69 73 41 70 20 31 do={ :set isAp 1
0dd0: 3b 20 3a 73 65 74 20 70 6f 73 20 28 24 70 6f 73 ; :set pos ($pos
0de0: 2b 31 29 7d 0a 20 20 23 61 64 64 20 61 64 64 69 +1)}. #add addi
0df0: 74 69 6f 6e 61 6c 20 63 68 65 63 6b 20 63 61 75 tional check cau
0e00: 73 65 20 74 68 65 72 65 20 6d 61 79 20 62 65 20 se there may be
0e10: 4c 20 61 6e 64 20 4c 54 45 20 62 6f 61 72 64 73 L and LTE boards
0e20: 0a 20 20 3a 69 66 20 28 5b 3a 70 69 63 6b 20 24 . :if ([:pick $
0e30: 62 6f 61 72 64 53 74 72 20 24 70 6f 73 5d 20 3d boardStr $pos] =
0e40: 20 22 4c 22 29 20 64 6f 3d 7b 0a 20 20 20 20 3a "L") do={. :
0e50: 69 66 20 28 5b 3a 70 69 63 6b 20 24 62 6f 61 72 if ([:pick $boar
0e60: 64 53 74 72 20 24 70 6f 73 20 28 24 70 6f 73 2b dStr $pos ($pos+
0e70: 33 29 5d 20 3d 20 22 4c 54 45 22 29 20 64 6f 3d 3)] = "LTE") do=
0e80: 7b 0a 20 20 20 20 20 20 3a 73 65 74 20 69 73 4c {. :set isL
0e90: 74 65 20 31 3b 0a 20 20 20 20 20 20 3a 73 65 74 te 1;. :set
0ea0: 20 70 6f 73 20 28 24 70 6f 73 2b 33 29 3b 0a 20 pos ($pos+3);.
0eb0: 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 } else={.
0ec0: 20 20 3a 73 65 74 20 6f 74 68 65 72 20 22 4c 22 :set other "L"
0ed0: 3b 0a 20 20 20 20 20 20 3a 73 65 74 20 70 6f 73 ;. :set pos
0ee0: 20 28 24 70 6f 73 2b 31 29 3b 0a 20 20 20 20 7d ($pos+1);. }
0ef0: 0a 20 20 7d 0a 0a 20 20 3a 6c 6f 63 61 6c 20 6d . }.. :local m
0f00: 61 74 63 68 65 64 20 30 3b 0a 20 20 3a 6c 6f 63 atched 0;. :loc
0f10: 61 6c 20 62 72 65 61 6b 20 30 3b 0a 20 20 3a 64 al break 0;. :d
0f20: 6f 20 7b 0a 20 20 20 20 3a 73 65 74 20 6f 6c 64 o {. :set old
0f30: 50 6f 73 20 24 70 6f 73 0a 20 20 20 20 3a 73 65 Pos $pos. :se
0f40: 74 20 70 6f 73 20 5b 24 66 69 6e 64 4e 65 78 74 t pos [$findNext
0f50: 53 65 63 74 69 6f 6e 20 24 62 6f 61 72 64 53 74 Section $boardSt
0f60: 72 20 24 6f 6c 64 50 6f 73 5d 0a 20 20 20 20 3a r $oldPos]. :
0f70: 73 65 74 20 74 6d 70 20 5b 3a 70 69 63 6b 20 24 set tmp [:pick $
0f80: 62 6f 61 72 64 53 74 72 20 24 6f 6c 64 50 6f 73 boardStr $oldPos
0f90: 20 28 24 70 6f 73 2d 31 29 5d 0a 20 20 20 20 23 ($pos-1)]. #
0fa0: 73 70 65 63 69 61 6c 20 63 61 73 65 20 69 66 20 special case if
0fb0: 73 65 63 74 69 6f 6e 20 65 6e 64 73 20 77 69 74 section ends wit
0fc0: 68 20 2b 2c 20 61 73 73 75 6d 69 6e 67 20 74 68 h +, assuming th
0fd0: 61 74 20 74 68 65 72 65 20 63 61 6e 20 62 65 20 at there can be
0fe0: 6f 6e 6c 79 20 6f 6e 65 20 2b 0a 20 20 20 20 3a only one +. :
0ff0: 69 66 20 28 5b 3a 70 69 63 6b 20 24 74 6d 70 20 if ([:pick $tmp
1000: 28 5b 3a 6c 65 6e 20 24 74 6d 70 5d 2d 31 29 5d ([:len $tmp]-1)]
1010: 20 3d 20 22 2b 22 29 20 64 6f 3d 7b 3a 73 65 74 = "+") do={:set
1020: 20 24 70 6f 73 20 28 24 70 6f 73 2d 31 29 7d 0a $pos ($pos-1)}.
1030: 0a 20 20 20 20 23 20 62 72 65 61 6b 20 70 61 72 . # break par
1040: 73 65 72 20 66 6f 72 20 6e 6f 77 20 69 66 20 62 ser for now if b
1050: 6f 61 72 64 20 68 61 73 20 4c 54 45 20 69 66 61 oard has LTE ifa
1060: 63 65 0a 20 20 20 20 3a 69 66 20 28 24 74 6d 70 ce. :if ($tmp
1070: 7e 22 4c 54 45 22 29 20 64 6f 3d 7b 0a 20 20 20 ~"LTE") do={.
1080: 20 20 20 3a 73 65 74 20 69 73 4c 74 65 20 31 3b :set isLte 1;
1090: 0a 20 20 20 20 20 20 3a 73 65 74 20 62 72 65 61 . :set brea
10a0: 6b 20 31 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 k 1;. }..
10b0: 23 20 63 63 72 20 70 6f 72 74 20 63 6f 75 6e 74 # ccr port count
10c0: 0a 20 20 20 20 3a 69 66 20 28 24 74 6d 70 7e 22 . :if ($tmp~"
10d0: 5e 5b 30 2d 39 47 50 42 43 53 58 51 56 44 2b 52 ^[0-9GPBCSXQVD+R
10e0: 4d 5d 2a 5c 24 22 29 20 64 6f 3d 7b 0a 20 20 20 M]*\$") do={.
10f0: 20 20 20 3a 73 65 74 20 6d 61 74 63 68 65 64 20 :set matched
1100: 31 0a 20 20 20 20 20 20 23 20 66 69 72 73 74 20 1. # first
1110: 6d 61 74 63 68 20 75 6e 63 6f 75 6e 74 61 62 6c match uncountabl
1120: 65 20 70 6f 72 74 20 74 79 70 65 73 20 61 6e 64 e port types and
1130: 20 61 64 64 20 74 6f 20 22 6f 74 68 65 72 22 20 add to "other"
1140: 73 74 72 69 6e 67 0a 20 20 20 20 20 20 3a 69 66 string. :if
1150: 20 28 24 74 6d 70 7e 22 47 5c 5c 2b 22 20 7c 7c ($tmp~"G\\+" ||
1160: 20 24 74 6d 70 7e 22 50 5c 5c 2b 22 20 7c 7c 20 $tmp~"P\\+" ||
1170: 24 74 6d 70 7e 22 58 47 22 20 7c 7c 20 24 74 6d $tmp~"XG" || $tm
1180: 70 7e 22 58 50 22 20 7c 7c 20 24 74 6d 70 7e 22 p~"XP" || $tmp~"
1190: 58 53 22 20 7c 7c 20 5c 0a 20 20 20 20 20 20 20 XS" || \.
11a0: 20 20 20 20 24 74 6d 70 7e 22 44 53 22 20 7c 7c $tmp~"DS" ||
11b0: 20 24 74 6d 70 7e 22 51 5c 5c 2b 22 20 7c 7c 20 $tmp~"Q\\+" ||
11c0: 24 74 6d 70 7e 22 56 51 22 20 7c 7c 20 24 74 6d $tmp~"VQ" || $tm
11d0: 70 7e 22 58 51 22 20 7c 7c 20 24 74 6d 70 7e 22 p~"XQ" || $tmp~"
11e0: 44 51 22 20 7c 7c 20 5c 0a 20 20 20 20 20 20 20 DQ" || \.
11f0: 20 20 20 20 24 74 6d 70 7e 22 44 44 51 22 29 20 $tmp~"DDQ")
1200: 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 3a 73 65 do={. :se
1210: 74 20 6f 74 68 65 72 20 28 24 6f 74 68 65 72 20 t other ($other
1220: 2e 20 5b 3a 70 69 63 6b 20 24 62 6f 61 72 64 53 . [:pick $boardS
1230: 74 72 20 24 6f 6c 64 50 6f 73 20 24 70 6f 73 5d tr $oldPos $pos]
1240: 29 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 3d 7b ). } else={
1250: 0a 20 20 20 20 20 20 20 20 20 20 3a 69 66 20 28 . :if (
1260: 24 74 6d 70 7e 22 42 22 29 20 64 6f 3d 7b 0a 20 $tmp~"B") do={.
1270: 20 20 20 20 20 20 20 20 20 3a 73 65 74 20 6e 75 :set nu
1280: 6d 47 69 67 20 5b 3a 70 69 63 6b 20 24 74 6d 70 mGig [:pick $tmp
1290: 20 30 20 5b 3a 66 69 6e 64 20 24 74 6d 70 20 22 0 [:find $tmp "
12a0: 42 22 5d 5d 0a 20 20 20 20 20 20 20 20 20 20 7d B"]]. }
12b0: 20 65 6c 73 65 3d 7b 0a 20 20 20 20 20 20 20 20 else={.
12c0: 20 20 3a 69 66 20 28 24 74 6d 70 7e 22 50 22 29 :if ($tmp~"P")
12d0: 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 20 20 do={.
12e0: 20 20 3a 73 65 74 20 6e 75 6d 47 69 67 20 5b 3a :set numGig [:
12f0: 70 69 63 6b 20 24 74 6d 70 20 30 20 5b 3a 66 69 pick $tmp 0 [:fi
1300: 6e 64 20 24 74 6d 70 20 22 50 22 5d 5d 0a 20 20 nd $tmp "P"]].
1310: 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 3d 7b } else={
1320: 0a 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 66 . :if
1330: 20 28 24 74 6d 70 7e 22 47 22 29 20 64 6f 3d 7b ($tmp~"G") do={
1340: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a . :
1350: 73 65 74 20 6e 75 6d 47 69 67 20 5b 3a 70 69 63 set numGig [:pic
1360: 6b 20 24 74 6d 70 20 30 20 5b 3a 66 69 6e 64 20 k $tmp 0 [:find
1370: 24 74 6d 70 20 22 47 22 5d 5d 0a 20 20 20 20 20 $tmp "G"]].
1380: 20 20 20 20 20 20 20 7d 20 65 6c 73 65 3d 7b 0a } else={.
1390: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 if
13a0: 20 28 24 74 6d 70 7e 22 43 22 29 20 64 6f 3d 7b ($tmp~"C") do={
13b0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
13c0: 20 3a 73 65 74 20 6e 75 6d 43 6f 6d 62 6f 20 5b :set numCombo [
13d0: 3a 70 69 63 6b 20 24 74 6d 70 20 30 20 5b 3a 66 :pick $tmp 0 [:f
13e0: 69 6e 64 20 24 74 6d 70 20 22 43 22 5d 5d 0a 20 ind $tmp "C"]].
13f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 } e
1400: 6c 73 65 3d 7b 0a 20 20 20 20 20 20 20 20 20 20 lse={.
1410: 20 20 20 20 20 20 3a 69 66 20 28 24 74 6d 70 7e :if ($tmp~
1420: 22 53 5c 5c 2b 22 29 20 64 6f 3d 7b 0a 20 20 20 "S\\+") do={.
1430: 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 65 :se
1440: 74 20 6e 75 6d 53 66 70 50 6c 75 73 20 5b 3a 70 t numSfpPlus [:p
1450: 69 63 6b 20 24 74 6d 70 20 30 20 5b 3a 66 69 6e ick $tmp 0 [:fin
1460: 64 20 24 74 6d 70 20 22 53 2b 22 5d 5d 0a 20 20 d $tmp "S+"]].
1470: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 }
1480: 65 6c 73 65 3d 7b 0a 20 20 20 20 20 20 20 20 20 else={.
1490: 20 20 20 20 20 20 20 20 20 3a 69 66 20 28 24 74 :if ($t
14a0: 6d 70 7e 22 53 22 29 20 64 6f 3d 7b 0a 20 20 20 mp~"S") do={.
14b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a :
14c0: 73 65 74 20 6e 75 6d 53 66 70 20 5b 3a 70 69 63 set numSfp [:pic
14d0: 6b 20 24 74 6d 70 20 30 20 5b 3a 66 69 6e 64 20 k $tmp 0 [:find
14e0: 24 74 6d 70 20 22 53 22 5d 5d 0a 20 20 20 20 20 $tmp "S"]].
14f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 }.
1500: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
1510: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d . }
1520: 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 . }.
1530: 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 }.
1540: 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 20 }. }.
1550: 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 20 20 } else={.
1560: 23 20 77 69 72 65 6c 65 73 73 0a 20 20 20 20 20 # wireless.
1570: 20 3a 69 66 20 28 24 74 6d 70 7e 22 5e 5b 30 2d :if ($tmp~"^[0-
1580: 39 53 48 50 61 63 6e 64 79 78 44 54 51 4f 5d 2a 9SHPacndyxDTQO]*
1590: 5c 24 22 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 \$") do={.
15a0: 20 20 3a 73 65 74 20 6d 61 74 63 68 65 64 20 31 :set matched 1
15b0: 0a 20 20 20 20 20 20 20 20 3a 73 65 74 20 77 69 . :set wi
15c0: 72 65 6c 65 73 73 20 22 24 77 69 72 65 6c 65 73 reless "$wireles
15d0: 73 20 24 5b 3a 70 69 63 6b 20 24 62 6f 61 72 64 s $[:pick $board
15e0: 53 74 72 20 24 6f 6c 64 50 6f 73 20 24 70 6f 73 Str $oldPos $pos
15f0: 5d 22 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d ]". }. }
1600: 0a 20 20 20 20 3a 69 66 20 28 24 6d 61 74 63 68 . :if ($match
1610: 65 64 20 3d 20 30 29 20 64 6f 3d 7b 0a 20 20 20 ed = 0) do={.
1620: 20 20 20 3a 73 65 74 20 6f 74 68 65 72 20 28 24 :set other ($
1630: 6f 74 68 65 72 20 2e 20 5b 3a 70 69 63 6b 20 24 other . [:pick $
1640: 62 6f 61 72 64 53 74 72 20 24 6f 6c 64 50 6f 73 boardStr $oldPos
1650: 20 24 70 6f 73 5d 29 0a 20 20 20 20 7d 0a 20 20 $pos]). }.
1660: 20 20 3a 73 65 74 20 6d 61 74 63 68 65 64 20 30 :set matched 0
1670: 0a 20 20 7d 20 77 68 69 6c 65 3d 28 24 70 6f 73 . } while=($pos
1680: 20 3c 20 5b 3a 6c 65 6e 20 24 62 6f 61 72 64 53 < [:len $boardS
1690: 74 72 5d 20 26 26 20 62 72 65 61 6b 20 3d 20 30 tr] && break = 0
16a0: 29 0a 0a 20 20 3a 72 65 74 75 72 6e 20 7b 0a 20 ).. :return {.
16b0: 20 20 20 22 70 72 65 66 69 78 22 3d 24 70 72 65 "prefix"=$pre
16c0: 66 69 78 3b 0a 20 20 20 20 22 6d 6f 64 65 6c 22 fix;. "model"
16d0: 3d 24 6d 6f 64 65 6c 3b 0a 20 20 20 20 22 77 69 =$model;. "wi
16e0: 72 65 6c 65 73 73 22 3d 24 77 69 72 65 6c 65 73 reless"=$wireles
16f0: 73 3b 0a 20 20 20 20 22 69 73 41 70 22 3d 24 69 s;. "isAp"=$i
1700: 73 41 70 3b 0a 20 20 20 20 22 6e 75 6d 47 69 67 sAp;. "numGig
1710: 22 3d 24 6e 75 6d 47 69 67 3b 0a 20 20 20 20 22 "=$numGig;. "
1720: 6e 75 6d 53 66 70 22 3d 24 6e 75 6d 53 66 70 3b numSfp"=$numSfp;
1730: 0a 20 20 20 20 22 6e 75 6d 53 66 70 50 6c 75 73 . "numSfpPlus
1740: 22 3d 24 6e 75 6d 53 66 70 50 6c 75 73 3b 0a 20 "=$numSfpPlus;.
1750: 20 20 20 22 6e 75 6d 43 6f 6d 62 6f 22 3d 24 6e "numCombo"=$n
1760: 75 6d 43 6f 6d 62 6f 3b 0a 20 20 20 20 22 69 73 umCombo;. "is
1770: 4c 74 65 22 3d 24 69 73 4c 74 65 3b 0a 20 20 20 Lte"=$isLte;.
1780: 20 22 6f 74 68 65 72 22 3d 24 6f 74 68 65 72 0a "other"=$other.
1790: 20 20 7d 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d }.}..#--------
17a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
17b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
17c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
17d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
17e0: 2d 2d 2d 2d 2d 2d 2d 0a 23 20 70 61 72 73 65 20 -------.# parse
17f0: 77 69 72 65 6c 65 73 73 20 66 65 61 74 75 72 65 wireless feature
1800: 73 20 66 72 6f 6d 20 62 6f 61 72 64 20 6e 61 6d s from board nam
1810: 65 0a 23 20 20 72 65 74 75 72 6e 73 20 61 72 72 e.# returns arr
1820: 61 79 20 6f 66 20 65 6c 65 6d 65 6e 74 73 20 28 ay of elements (
1830: 62 61 6e 64 2c 20 63 68 61 69 6e 73 2c 20 69 73 band, chains, is
1840: 41 63 2c 20 69 73 4e 2c 20 66 72 65 71 75 65 6e Ac, isN, frequen
1850: 63 79 4d 6f 64 65 29 0a 23 2d 2d 2d 2d 2d 2d 2d cyMode).#-------
1860: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1870: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1880: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1890: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
18a0: 2d 2d 2d 2d 2d 2d 2d 2d 0a 3a 67 6c 6f 62 61 6c --------.:global
18b0: 20 70 61 72 73 65 57 69 72 65 6c 65 73 73 46 65 parseWirelessFe
18c0: 61 74 75 72 65 73 20 64 6f 3d 7b 0a 20 20 3a 67 atures do={. :g
18d0: 6c 6f 62 61 6c 20 69 73 4e 75 6d 0a 0a 20 20 3a lobal isNum.. :
18e0: 6c 6f 63 61 6c 20 66 72 65 71 75 65 6e 63 79 20 local frequency
18f0: 22 22 0a 20 20 3a 6c 6f 63 61 6c 20 69 73 4e 20 "". :local isN
1900: 30 0a 20 20 3a 6c 6f 63 61 6c 20 69 73 41 63 20 0. :local isAc
1910: 30 0a 20 20 3a 6c 6f 63 61 6c 20 69 73 41 64 20 0. :local isAd
1920: 30 0a 20 20 3a 6c 6f 63 61 6c 20 69 73 41 79 20 0. :local isAy
1930: 30 0a 20 20 3a 6c 6f 63 61 6c 20 69 73 41 78 20 0. :local isAx
1940: 30 0a 20 20 3a 6c 6f 63 61 6c 20 63 68 61 69 6e 0. :local chain
1950: 73 20 22 30 22 0a 0a 20 20 3a 6c 6f 63 61 6c 20 s "0".. :local
1960: 62 61 6e 64 3b 0a 20 20 3a 6c 6f 63 61 6c 20 74 band;. :local t
1970: 6d 70 20 30 3b 0a 20 20 3a 6c 6f 63 61 6c 20 70 mp 0;. :local p
1980: 6f 73 20 30 3b 0a 0a 20 20 3a 6c 6f 63 61 6c 20 os 0;.. :local
1990: 63 61 72 64 4e 65 78 74 20 30 3b 0a 20 20 3a 6c cardNext 0;. :l
19a0: 6f 63 61 6c 20 6f 75 74 41 72 72 61 79 20 7b 22 ocal outArray {"
19b0: 77 31 22 3d 22 30 22 7d 3b 0a 0a 20 20 3a 64 6f w1"="0"};.. :do
19c0: 20 7b 0a 20 20 20 20 23 73 65 74 74 69 6e 67 73 {. #settings
19d0: 20 66 6f 72 20 65 61 63 68 20 63 61 72 64 20 73 for each card s
19e0: 74 61 72 74 73 20 77 69 74 68 20 66 72 65 71 75 tarts with frequ
19f0: 65 6e 63 79 20 6e 75 6d 62 65 72 0a 20 20 20 20 ency number.
1a00: 3a 73 65 74 20 74 6d 70 20 5b 3a 70 69 63 6b 20 :set tmp [:pick
1a10: 24 6c 69 73 74 20 24 70 6f 73 5d 3b 0a 20 20 20 $list $pos];.
1a20: 20 3a 69 66 20 28 5b 24 69 73 4e 75 6d 20 24 74 :if ([$isNum $t
1a30: 6d 70 5d 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 mp]) do={.
1a40: 3a 69 66 20 28 5b 24 69 73 4e 75 6d 20 5b 3a 70 :if ([$isNum [:p
1a50: 69 63 6b 20 24 6c 69 73 74 20 28 24 70 6f 73 2b ick $list ($pos+
1a60: 31 29 5d 5d 29 20 64 6f 3d 7b 0a 20 20 20 20 20 1)]]) do={.
1a70: 20 20 20 3a 73 65 74 20 70 6f 73 20 28 24 70 6f :set pos ($po
1a80: 73 2b 31 29 0a 20 20 20 20 20 20 20 20 3a 73 65 s+1). :se
1a90: 74 20 74 6d 70 20 28 24 74 6d 70 20 2e 20 5b 3a t tmp ($tmp . [:
1aa0: 70 69 63 6b 20 24 6c 69 73 74 20 24 70 6f 73 5d pick $list $pos]
1ab0: 29 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 ). }.
1ac0: 23 20 73 65 74 20 63 75 72 72 65 6e 74 20 63 61 # set current ca
1ad0: 72 64 0a 20 20 20 20 20 20 3a 69 66 20 28 24 63 rd. :if ($c
1ae0: 61 72 64 4e 65 78 74 20 3e 20 30 29 20 64 6f 3d ardNext > 0) do=
1af0: 7b 0a 20 20 20 20 20 20 20 20 3a 73 65 74 20 28 {. :set (
1b00: 24 6f 75 74 41 72 72 61 79 2d 3e 22 77 24 63 61 $outArray->"w$ca
1b10: 72 64 4e 65 78 74 22 29 20 7b 0a 20 20 20 20 20 rdNext") {.
1b20: 20 20 20 20 20 22 63 68 61 69 6e 73 22 3d 24 63 "chains"=$c
1b30: 68 61 69 6e 73 3b 0a 20 20 20 20 20 20 20 20 20 hains;.
1b40: 20 22 69 73 41 63 22 3d 24 69 73 41 63 3b 0a 20 "isAc"=$isAc;.
1b50: 20 20 20 20 20 20 20 20 20 22 69 73 4e 22 3d 24 "isN"=$
1b60: 69 73 4e 3b 0a 20 20 20 20 20 20 20 20 20 20 22 isN;. "
1b70: 69 73 41 64 22 3d 24 69 73 41 64 3b 0a 20 20 20 isAd"=$isAd;.
1b80: 20 20 20 20 20 20 20 22 69 73 41 79 22 3d 24 69 "isAy"=$i
1b90: 73 41 79 3b 0a 20 20 20 20 20 20 20 20 20 20 22 sAy;. "
1ba0: 69 73 41 78 22 3d 24 69 73 41 78 3b 0a 20 20 20 isAx"=$isAx;.
1bb0: 20 20 20 20 20 20 20 22 66 72 65 71 75 65 6e 63 "frequenc
1bc0: 79 4d 6f 64 65 22 3d 24 66 72 65 71 75 65 6e 63 yMode"=$frequenc
1bd0: 79 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 y. }.
1be0: 20 20 7d 0a 20 20 20 20 20 20 3a 73 65 74 20 66 }. :set f
1bf0: 72 65 71 75 65 6e 63 79 20 5b 3a 74 6f 6e 75 6d requency [:tonum
1c00: 20 24 74 6d 70 5d 3b 0a 20 20 20 20 20 20 3a 73 $tmp];. :s
1c10: 65 74 20 63 61 72 64 4e 65 78 74 20 28 24 63 61 et cardNext ($ca
1c20: 72 64 4e 65 78 74 20 2b 20 31 29 3b 0a 20 20 20 rdNext + 1);.
1c30: 20 20 20 3a 73 65 74 20 69 73 4e 20 30 0a 20 20 :set isN 0.
1c40: 20 20 20 20 3a 73 65 74 20 69 73 41 63 20 30 0a :set isAc 0.
1c50: 20 20 20 20 20 20 3a 73 65 74 20 69 73 41 64 20 :set isAd
1c60: 30 0a 20 20 20 20 20 20 3a 73 65 74 20 69 73 41 0. :set isA
1c70: 79 20 30 0a 20 20 20 20 20 20 3a 73 65 74 20 69 y 0. :set i
1c80: 73 41 78 20 30 0a 20 20 20 20 20 20 3a 73 65 74 sAx 0. :set
1c90: 20 63 68 61 69 6e 73 20 22 30 22 0a 20 20 20 20 chains "0".
1ca0: 7d 0a 20 20 20 20 23 20 69 67 6e 6f 72 65 20 63 }. # ignore c
1cb0: 61 72 64 20 70 6f 77 65 72 0a 20 20 20 20 3a 69 ard power. :i
1cc0: 66 20 28 24 74 6d 70 7e 22 5b 53 48 50 5d 22 29 f ($tmp~"[SHP]")
1cd0: 20 64 6f 3d 7b 7d 0a 0a 20 20 20 20 23 67 65 74 do={}.. #get
1ce0: 20 38 30 32 2e 31 31 20 70 72 6f 74 6f 63 6f 6c 802.11 protocol
1cf0: 0a 20 20 20 20 3a 69 66 20 28 24 74 6d 70 20 3d . :if ($tmp =
1d00: 20 22 6e 22 29 20 64 6f 3d 7b 20 3a 73 65 74 20 "n") do={ :set
1d10: 69 73 4e 20 31 3b 7d 0a 20 20 20 20 3a 69 66 20 isN 1;}. :if
1d20: 28 24 74 6d 70 20 3d 20 22 61 22 29 20 64 6f 3d ($tmp = "a") do=
1d30: 7b 0a 20 20 20 20 20 20 3a 73 65 74 20 74 6d 70 {. :set tmp
1d40: 20 28 24 74 6d 70 20 2e 20 5b 3a 70 69 63 6b 20 ($tmp . [:pick
1d50: 24 6c 69 73 74 20 28 24 70 6f 73 2b 31 29 5d 29 $list ($pos+1)])
1d60: 0a 20 20 20 20 20 20 3a 69 66 20 28 24 74 6d 70 . :if ($tmp
1d70: 20 3d 20 22 61 63 22 29 20 64 6f 3d 7b 20 3a 73 = "ac") do={ :s
1d80: 65 74 20 69 73 41 63 20 31 3b 20 3a 73 65 74 20 et isAc 1; :set
1d90: 70 6f 73 20 28 24 70 6f 73 2b 31 29 7d 20 65 6c pos ($pos+1)} el
1da0: 73 65 3d 7b 0a 20 20 20 20 20 20 20 20 3a 69 66 se={. :if
1db0: 20 28 24 74 6d 70 20 3d 20 22 61 64 22 29 20 64 ($tmp = "ad") d
1dc0: 6f 3d 7b 0a 20 20 20 20 20 20 20 20 20 20 3a 73 o={. :s
1dd0: 65 74 20 69 73 41 64 20 31 3b 20 3a 73 65 74 20 et isAd 1; :set
1de0: 70 6f 73 20 28 24 70 6f 73 2b 31 29 0a 20 20 20 pos ($pos+1).
1df0: 20 20 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 } else={.
1e00: 20 20 20 20 20 20 20 20 3a 69 66 20 28 24 74 6d :if ($tm
1e10: 70 20 3d 20 22 61 79 22 29 20 64 6f 3d 7b 0a 20 p = "ay") do={.
1e20: 20 20 20 20 20 20 20 20 20 20 20 3a 73 65 74 20 :set
1e30: 69 73 41 79 20 31 3b 20 3a 73 65 74 20 70 6f 73 isAy 1; :set pos
1e40: 20 28 24 70 6f 73 2b 31 29 0a 20 20 20 20 20 20 ($pos+1).
1e50: 20 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 } else={.
1e60: 20 20 20 20 20 20 20 20 20 3a 69 66 20 28 24 74 :if ($t
1e70: 6d 70 20 3d 20 22 61 78 22 29 20 64 6f 3d 7b 0a mp = "ax") do={.
1e80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 :s
1e90: 65 74 20 69 73 41 78 20 31 3b 20 3a 73 65 74 20 et isAx 1; :set
1ea0: 70 6f 73 20 28 24 70 6f 73 2b 31 29 0a 20 20 20 pos ($pos+1).
1eb0: 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 3d } else=
1ec0: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 {.
1ed0: 3a 6c 6f 67 20 77 61 72 6e 69 6e 67 20 22 44 65 :log warning "De
1ee0: 66 43 6f 6e 66 20 67 65 6e 3a 20 49 6e 76 61 6c fConf gen: Inval
1ef0: 69 64 20 38 30 32 2e 31 31 20 70 72 6f 74 6f 63 id 802.11 protoc
1f00: 6f 6c 2c 20 65 78 70 65 63 74 65 64 20 27 61 63 ol, expected 'ac
1f10: 27 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 '";.
1f20: 7d 0a 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }. }.
1f30: 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a }. }.
1f40: 20 20 20 20 7d 0a 20 20 20 20 23 67 65 74 20 63 }. #get c
1f50: 68 61 69 6e 73 0a 20 20 20 20 3a 69 66 20 28 24 hains. :if ($
1f60: 74 6d 70 20 3d 20 22 44 22 29 20 64 6f 3d 7b 20 tmp = "D") do={
1f70: 3a 73 65 74 20 63 68 61 69 6e 73 20 22 30 2c 31 :set chains "0,1
1f80: 22 20 7d 0a 20 20 20 20 3a 69 66 20 28 24 74 6d " }. :if ($tm
1f90: 70 20 3d 20 22 54 22 29 20 64 6f 3d 7b 20 3a 73 p = "T") do={ :s
1fa0: 65 74 20 63 68 61 69 6e 73 20 22 30 2c 31 2c 32 et chains "0,1,2
1fb0: 22 20 7d 0a 20 20 20 20 3a 69 66 20 28 24 74 6d " }. :if ($tm
1fc0: 70 20 3d 20 22 51 22 29 20 64 6f 3d 7b 0a 20 20 p = "Q") do={.
1fd0: 20 20 20 20 3a 69 66 20 28 24 69 73 41 63 20 3d :if ($isAc =
1fe0: 20 31 20 7c 7c 20 24 69 73 41 78 20 3d 20 31 29 1 || $isAx = 1)
1ff0: 20 64 6f 3d 7b 20 3a 73 65 74 20 63 68 61 69 6e do={ :set chain
2000: 73 20 22 30 2c 31 2c 32 2c 33 22 20 7d 20 65 6c s "0,1,2,3" } el
2010: 73 65 3d 7b 0a 20 20 20 20 20 20 20 20 3a 6c 6f se={. :lo
2020: 67 20 77 61 72 6e 69 6e 67 20 22 44 65 66 43 6f g warning "DefCo
2030: 6e 66 20 67 65 6e 3a 20 71 75 61 64 20 63 68 61 nf gen: quad cha
2040: 69 6e 73 20 61 72 65 20 6f 6e 6c 79 20 66 6f 72 ins are only for
2050: 20 27 61 63 27 20 6f 72 20 27 61 78 27 20 62 6f 'ac' or 'ax' bo
2060: 61 72 64 73 22 3b 0a 20 20 20 20 20 20 7d 0a 20 ards";. }.
2070: 20 20 20 7d 0a 20 20 20 20 3a 69 66 20 28 24 74 }. :if ($t
2080: 6d 70 20 3d 20 22 4f 22 29 20 64 6f 3d 7b 0a 20 mp = "O") do={.
2090: 20 20 20 20 20 3a 69 66 20 28 24 69 73 41 78 20 :if ($isAx
20a0: 3d 20 31 29 20 64 6f 3d 7b 20 3a 73 65 74 20 63 = 1) do={ :set c
20b0: 68 61 69 6e 73 20 22 30 2c 31 2c 32 2c 33 2c 34 hains "0,1,2,3,4
20c0: 2c 35 2c 36 2c 37 22 20 7d 20 65 6c 73 65 3d 7b ,5,6,7" } else={
20d0: 0a 20 20 20 20 20 20 20 20 3a 6c 6f 67 20 77 61 . :log wa
20e0: 72 6e 69 6e 67 20 22 44 65 66 43 6f 6e 66 20 67 rning "DefConf g
20f0: 65 6e 3a 20 6f 63 74 61 20 63 68 61 69 6e 73 20 en: octa chains
2100: 61 72 65 20 6f 6e 6c 79 20 66 6f 72 20 27 61 78 are only for 'ax
2110: 27 20 62 6f 61 72 64 73 22 3b 0a 20 20 20 20 20 ' boards";.
2120: 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 3a 73 65 }. }. :se
2130: 74 20 70 6f 73 20 28 24 70 6f 73 2b 31 29 0a 20 t pos ($pos+1).
2140: 20 7d 20 77 68 69 6c 65 3d 28 24 70 6f 73 20 3c } while=($pos <
2150: 20 5b 3a 6c 65 6e 20 24 6c 69 73 74 5d 29 0a 20 [:len $list]).
2160: 20 23 20 61 64 64 20 6c 61 73 74 20 63 61 72 64 # add last card
2170: 20 74 6f 20 74 68 65 20 6c 69 73 74 0a 20 20 3a to the list. :
2180: 73 65 74 20 28 24 6f 75 74 41 72 72 61 79 2d 3e set ($outArray->
2190: 22 77 24 63 61 72 64 4e 65 78 74 22 29 20 7b 0a "w$cardNext") {.
21a0: 20 20 20 20 22 63 68 61 69 6e 73 22 3d 24 63 68 "chains"=$ch
21b0: 61 69 6e 73 3b 0a 20 20 20 20 22 69 73 41 63 22 ains;. "isAc"
21c0: 3d 24 69 73 41 63 3b 0a 20 20 20 20 22 69 73 4e =$isAc;. "isN
21d0: 22 3d 24 69 73 4e 3b 0a 20 20 20 20 22 69 73 41 "=$isN;. "isA
21e0: 64 22 3d 24 69 73 41 64 3b 0a 20 20 20 20 22 69 d"=$isAd;. "i
21f0: 73 41 79 22 3d 24 69 73 41 79 3b 0a 20 20 20 20 sAy"=$isAy;.
2200: 22 69 73 41 78 22 3d 24 69 73 41 78 3b 0a 20 20 "isAx"=$isAx;.
2210: 20 20 22 66 72 65 71 75 65 6e 63 79 4d 6f 64 65 "frequencyMode
2220: 22 3d 24 66 72 65 71 75 65 6e 63 79 0a 20 20 7d "=$frequency. }
2230: 0a 20 20 3a 72 65 74 75 72 6e 20 24 6f 75 74 41 . :return $outA
2240: 72 72 61 79 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d rray.}..#-------
2250: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2260: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2270: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2280: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2290: 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 73 65 74 20 77 --------.# set w
22a0: 6c 61 6e 20 63 6f 6e 66 69 67 20 66 72 6f 6d 20 lan config from
22b0: 70 61 72 73 65 64 20 77 69 72 65 6c 73 73 20 66 parsed wirelss f
22c0: 65 61 74 75 72 65 20 61 72 72 61 79 0a 23 2d 2d eature array.#--
22d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
22e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
22f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2300: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2310: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3a 67 -------------.:g
2320: 6c 6f 62 61 6c 20 73 65 74 57 6c 61 6e 20 64 6f lobal setWlan do
2330: 3d 7b 0a 20 20 23 61 63 63 65 73 73 20 74 6f 20 ={. #access to
2340: 67 6c 6f 62 61 6c 20 66 75 6e 63 73 0a 20 20 3a global funcs. :
2350: 67 6c 6f 62 61 6c 20 61 64 64 43 4c 3b 0a 20 20 global addCL;.
2360: 3a 67 6c 6f 62 61 6c 20 61 64 64 44 4c 3b 0a 20 :global addDL;.
2370: 20 3a 67 6c 6f 62 61 6c 20 61 64 64 44 43 4c 3b :global addDCL;
2380: 0a 20 20 3a 67 6c 6f 62 61 6c 20 77 69 72 65 6c . :global wirel
2390: 65 73 73 45 6e 61 62 6c 65 64 3b 0a 0a 20 20 3a essEnabled;.. :
23a0: 6c 6f 63 61 6c 20 77 6c 61 6e 49 6e 66 6f 3b 0a local wlanInfo;.
23b0: 20 20 3a 6c 6f 63 61 6c 20 62 61 6e 64 3b 0a 20 :local band;.
23c0: 20 3a 6c 6f 63 61 6c 20 6e 75 6d 42 61 6e 64 73 :local numBands
23d0: 20 30 3b 0a 20 20 3a 6c 6f 63 61 6c 20 62 61 6e 0;. :local ban
23e0: 64 73 20 7b 22 62 31 22 3d 22 30 22 7d 3b 0a 20 ds {"b1"="0"};.
23f0: 20 3a 6c 6f 63 61 6c 20 74 78 43 68 61 69 6e 73 :local txChains
2400: 20 22 30 22 3b 0a 20 20 3a 6c 6f 63 61 6c 20 72 "0";. :local r
2410: 78 43 68 61 69 6e 73 20 22 30 22 3b 0a 20 20 3a xChains "0";. :
2420: 6c 6f 63 61 6c 20 69 66 63 49 64 20 22 22 3b 0a local ifcId "";.
2430: 20 20 3a 6c 6f 63 61 6c 20 63 75 72 72 65 6e 74 :local current
2440: 4e 61 6d 65 3b 0a 0a 20 20 3a 6c 6f 63 61 6c 20 Name;.. :local
2450: 74 6d 70 43 68 50 6f 73 20 30 3b 0a 20 20 3a 6c tmpChPos 0;. :l
2460: 6f 63 61 6c 20 74 6d 70 43 68 45 6e 64 50 6f 73 ocal tmpChEndPos
2470: 20 30 3b 0a 0a 20 20 3a 6c 6f 63 61 6c 20 74 6d 0;.. :local tm
2480: 70 43 68 41 72 72 20 5b 3a 74 6f 61 72 72 61 79 pChArr [:toarray
2490: 20 22 22 5d 3b 0a 0a 20 20 3a 6c 6f 63 61 6c 20 ""];.. :local
24a0: 74 6d 70 43 68 41 72 72 50 6f 73 20 30 3b 0a 20 tmpChArrPos 0;.
24b0: 20 3a 6c 6f 63 61 6c 20 62 65 73 74 43 68 61 6e :local bestChan
24c0: 6e 65 6c 20 22 22 3b 0a 0a 20 20 3a 69 66 20 28 nel "";.. :if (
24d0: 24 77 69 72 65 6c 65 73 73 45 6e 61 62 6c 65 64 $wirelessEnabled
24e0: 20 3d 20 31 29 20 64 6f 3d 7b 0a 20 20 20 20 3a = 1) do={. :
24f0: 69 66 20 28 5b 3a 6c 65 6e 20 5b 2f 73 79 73 74 if ([:len [/syst
2500: 65 6d 20 70 61 63 6b 61 67 65 20 66 69 6e 64 20 em package find
2510: 6e 61 6d 65 7e 22 77 69 66 69 22 20 21 64 69 73 name~"wifi" !dis
2520: 61 62 6c 65 64 5d 5d 20 21 3d 20 30 29 20 64 6f abled]] != 0) do
2530: 3d 7b 0a 20 20 20 20 20 20 3a 6c 6f 63 61 6c 20 ={. :local
2540: 69 6e 66 6f 43 61 6c 6c 20 5b 3a 70 61 72 73 65 infoCall [:parse
2550: 20 22 3a 6c 6f 63 61 6c 20 6d 61 63 41 64 64 20 ":local macAdd
2560: 5b 2f 69 6e 74 65 72 66 61 63 65 20 77 69 66 69 [/interface wifi
2570: 20 67 65 74 20 5b 2f 69 6e 74 65 72 66 61 63 65 get [/interface
2580: 20 66 69 6e 64 20 77 68 65 72 65 20 64 65 66 61 find where defa
2590: 75 6c 74 2d 6e 61 6d 65 3d 24 69 66 63 5d 20 72 ult-name=$ifc] r
25a0: 61 64 69 6f 2d 6d 61 63 5d 3b 0a 20 20 20 20 20 adio-mac];.
25b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
25c0: 20 20 20 20 20 20 20 20 20 20 3a 72 65 74 75 72 :retur
25d0: 6e 20 5b 2f 69 6e 74 65 72 66 61 63 65 20 77 69 n [/interface wi
25e0: 66 69 20 72 61 64 69 6f 20 67 65 74 20 5b 66 69 fi radio get [fi
25f0: 6e 64 20 77 68 65 72 65 20 72 61 64 69 6f 2d 6d nd where radio-m
2600: 61 63 3d 5c 24 6d 61 63 41 64 64 5d 5d 22 5d 0a ac=\$macAdd]]"].
2610: 20 20 20 20 20 20 3a 73 65 74 20 77 6c 61 6e 49 :set wlanI
2620: 6e 66 6f 20 5b 24 69 6e 66 6f 43 61 6c 6c 5d 0a nfo [$infoCall].
2630: 20 20 20 20 20 20 3a 73 65 74 20 72 78 43 68 61 :set rxCha
2640: 69 6e 73 20 5b 3a 74 6f 73 74 72 20 28 24 77 6c ins [:tostr ($wl
2650: 61 6e 49 6e 66 6f 2d 3e 22 72 78 2d 63 68 61 69 anInfo->"rx-chai
2660: 6e 73 22 29 5d 3b 0a 20 20 20 20 20 20 3a 73 65 ns")];. :se
2670: 74 20 74 78 43 68 61 69 6e 73 20 5b 3a 74 6f 73 t txChains [:tos
2680: 74 72 20 28 24 77 6c 61 6e 49 6e 66 6f 2d 3e 22 tr ($wlanInfo->"
2690: 74 78 2d 63 68 61 69 6e 73 22 29 5d 3b 0a 0a 20 tx-chains")];..
26a0: 20 20 20 20 20 3a 73 65 74 20 62 61 6e 64 73 20 :set bands
26b0: 5b 28 24 77 6c 61 6e 49 6e 66 6f 2d 3e 22 62 61 [($wlanInfo->"ba
26c0: 6e 64 73 22 29 5d 0a 20 20 20 20 20 20 3a 6c 6f nds")]. :lo
26d0: 63 61 6c 20 62 61 6e 4c 65 6e 20 5b 3a 6c 65 6e cal banLen [:len
26e0: 20 24 62 61 6e 64 73 5d 0a 20 20 20 20 20 20 3a $bands]. :
26f0: 6c 6f 63 61 6c 20 62 65 73 74 42 61 6e 64 20 5b local bestBand [
2700: 28 24 62 61 6e 64 73 2d 3e 28 24 62 61 6e 4c 65 ($bands->($banLe
2710: 6e 20 2d 20 31 29 29 5d 0a 0a 20 20 20 20 20 20 n - 1))]..
2720: 24 61 64 64 43 4c 20 28 22 20 20 2f 69 6e 74 65 $addCL (" /inte
2730: 72 66 61 63 65 20 77 69 66 69 20 7b 22 29 0a 0a rface wifi {")..
2740: 20 20 20 20 20 20 23 70 69 63 6b 20 61 6c 77 61 #pick alwa
2750: 79 73 20 66 69 72 73 74 20 73 75 70 70 6f 72 74 ys first support
2760: 65 64 20 62 61 6e 64 0a 20 20 20 20 20 20 3a 73 ed band. :s
2770: 65 74 20 62 61 6e 64 20 5b 3a 70 69 63 6b 20 24 et band [:pick $
2780: 62 65 73 74 42 61 6e 64 20 30 20 5b 3a 66 69 6e bestBand 0 [:fin
2790: 64 20 24 62 65 73 74 42 61 6e 64 20 22 3a 22 5d d $bestBand ":"]
27a0: 5d 0a 20 20 20 20 20 20 3a 6c 6f 63 61 6c 20 74 ]. :local t
27b0: 6d 70 43 68 57 20 5b 3a 70 69 63 6b 20 24 62 65 mpChW [:pick $be
27c0: 73 74 42 61 6e 64 20 28 5b 3a 66 69 6e 64 20 24 stBand ([:find $
27d0: 62 65 73 74 42 61 6e 64 20 22 3a 22 5d 20 2b 20 bestBand ":"] +
27e0: 31 29 20 5b 3a 6c 65 6e 20 24 62 65 73 74 42 61 1) [:len $bestBa
27f0: 6e 64 5d 5d 0a 0a 20 20 20 20 20 20 3a 77 68 69 nd]].. :whi
2800: 6c 65 20 28 24 74 6d 70 43 68 50 6f 73 20 3c 3d le ($tmpChPos <=
2810: 20 5b 3a 6c 65 6e 20 24 74 6d 70 43 68 57 5d 20 [:len $tmpChW]
2820: 26 26 20 5b 3a 74 79 70 65 6f 66 20 24 74 6d 70 && [:typeof $tmp
2830: 43 68 50 6f 73 5d 20 21 3d 20 22 6e 69 6c 22 29 ChPos] != "nil")
2840: 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 3a 6c do={. :l
2850: 6f 63 61 6c 20 70 6f 73 20 5b 3a 66 69 6e 64 20 ocal pos [:find
2860: 24 74 6d 70 43 68 57 20 22 2c 22 20 66 72 6f 6d $tmpChW "," from
2870: 3d 24 74 6d 70 43 68 50 6f 73 5d 3b 0a 20 20 20 =$tmpChPos];.
2880: 20 20 20 20 20 3a 69 66 20 28 24 74 6d 70 43 68 :if ($tmpCh
2890: 50 6f 73 21 3d 30 29 20 64 6f 3d 7b 3a 73 65 74 Pos!=0) do={:set
28a0: 20 74 6d 70 43 68 50 6f 73 20 28 24 74 6d 70 43 tmpChPos ($tmpC
28b0: 68 50 6f 73 2b 31 29 7d 3b 0a 20 20 20 20 20 20 hPos+1)};.
28c0: 20 20 3a 73 65 74 20 74 6d 70 43 68 45 6e 64 50 :set tmpChEndP
28d0: 6f 73 20 24 70 6f 73 3b 0a 20 20 20 20 20 20 20 os $pos;.
28e0: 20 3a 69 66 20 28 5b 3a 74 79 70 65 6f 66 20 24 :if ([:typeof $
28f0: 74 6d 70 43 68 45 6e 64 50 6f 73 5d 20 3d 20 22 tmpChEndPos] = "
2900: 6e 69 6c 22 29 20 64 6f 3d 7b 3a 73 65 74 20 74 nil") do={:set t
2910: 6d 70 43 68 45 6e 64 50 6f 73 20 5b 3a 6c 65 6e mpChEndPos [:len
2920: 20 24 74 6d 70 43 68 57 5d 7d 3b 0a 20 20 20 20 $tmpChW]};.
2930: 20 20 20 20 3a 6c 6f 63 61 6c 20 74 6d 70 20 5b :local tmp [
2940: 3a 70 69 63 6b 20 24 74 6d 70 43 68 57 20 24 74 :pick $tmpChW $t
2950: 6d 70 43 68 50 6f 73 20 24 74 6d 70 43 68 45 6e mpChPos $tmpChEn
2960: 64 50 6f 73 5d 0a 20 20 20 20 20 20 20 20 3a 73 dPos]. :s
2970: 65 74 20 28 24 74 6d 70 43 68 41 72 72 20 2d 3e et ($tmpChArr ->
2980: 20 22 24 74 6d 70 43 68 41 72 72 50 6f 73 22 29 "$tmpChArrPos")
2990: 20 24 74 6d 70 0a 20 20 20 20 20 20 20 20 3a 73 $tmp. :s
29a0: 65 74 20 74 6d 70 43 68 50 6f 73 20 24 70 6f 73 et tmpChPos $pos
29b0: 0a 20 20 20 20 20 20 20 20 3a 73 65 74 20 74 6d . :set tm
29c0: 70 43 68 41 72 72 50 6f 73 20 28 24 74 6d 70 43 pChArrPos ($tmpC
29d0: 68 41 72 72 50 6f 73 20 2b 20 31 29 0a 20 20 20 hArrPos + 1).
29e0: 20 20 20 7d 0a 0a 20 20 20 20 20 20 3a 69 66 20 }.. :if
29f0: 28 24 62 61 6e 64 20 3d 20 22 35 67 68 7a 2d 61 ($band = "5ghz-a
2a00: 78 22 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 x") do={.
2a10: 20 23 75 73 65 20 22 32 30 2f 34 30 2f 38 30 6d #use "20/40/80m
2a20: 68 7a 22 20 2d 20 74 68 65 20 62 65 73 74 20 63 hz" - the best c
2a30: 6f 6d 6d 6f 6e 20 63 68 61 6e 6e 65 6c 2d 77 69 ommon channel-wi
2a40: 64 74 68 20 66 6f 72 20 61 6c 6c 20 22 35 67 68 dth for all "5gh
2a50: 7a 2d 61 78 22 20 62 6f 61 72 64 73 0a 20 20 20 z-ax" boards.
2a60: 20 20 20 20 20 3a 73 65 74 20 62 65 73 74 43 68 :set bestCh
2a70: 61 6e 6e 65 6c 20 22 32 30 2f 34 30 2f 38 30 6d annel "20/40/80m
2a80: 68 7a 22 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 hz". } else
2a90: 3d 7b 0a 20 20 20 20 20 20 20 20 3a 73 65 74 20 ={. :set
2aa0: 62 65 73 74 43 68 61 6e 6e 65 6c 20 5b 28 24 74 bestChannel [($t
2ab0: 6d 70 43 68 41 72 72 20 2d 3e 20 28 5b 3a 6c 65 mpChArr -> ([:le
2ac0: 6e 20 24 74 6d 70 43 68 41 72 72 5d 20 2d 20 31 n $tmpChArr] - 1
2ad0: 29 29 5d 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 ))]. }..
2ae0: 20 20 20 24 61 64 64 43 4c 20 28 22 3a 6c 6f 63 $addCL (":loc
2af0: 61 6c 20 69 66 63 49 64 20 5b 2f 69 6e 74 65 72 al ifcId [/inter
2b00: 66 61 63 65 20 77 69 66 69 20 66 69 6e 64 20 77 face wifi find w
2b10: 68 65 72 65 20 64 65 66 61 75 6c 74 2d 6e 61 6d here default-nam
2b20: 65 3d 24 69 66 63 5d 22 29 0a 20 20 20 20 20 20 e=$ifc]").
2b30: 24 61 64 64 44 4c 20 28 22 23 7c 20 24 69 66 63 $addDL ("#| $ifc
2b40: 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3a 22 Configuration:"
2b50: 29 0a 20 20 20 20 20 20 24 61 64 64 44 4c 20 28 ). $addDL (
2b60: 22 23 7c 20 20 20 20 20 6d 6f 64 65 3a 20 20 20 "#| mode:
2b70: 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6d 6f $mo
2b80: 64 65 3b 22 29 0a 20 20 20 20 20 20 24 61 64 64 de;"). $add
2b90: 44 43 4c 20 28 22 73 74 61 72 74 20 77 69 72 65 DCL ("start wire
2ba0: 6c 65 73 73 20 24 69 66 63 22 29 0a 0a 20 20 20 less $ifc")..
2bb0: 20 20 20 3a 69 66 20 28 24 6d 6f 64 65 20 3d 20 :if ($mode =
2bc0: 22 64 69 73 61 62 6c 65 64 22 29 20 64 6f 3d 7b "disabled") do={
2bd0: 0a 20 20 20 20 20 20 20 20 24 61 64 64 43 4c 20 . $addCL
2be0: 28 22 20 20 64 69 73 61 62 6c 65 20 5c 24 69 66 (" disable \$if
2bf0: 63 49 64 22 29 0a 20 20 20 20 20 20 7d 20 65 6c cId"). } el
2c00: 73 65 3d 7b 0a 20 20 20 20 20 20 20 20 24 61 64 se={. $ad
2c10: 64 44 4c 20 28 22 23 7c 20 20 20 20 20 62 61 6e dDL ("#| ban
2c20: 64 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d:
2c30: 20 20 24 62 61 6e 64 3b 22 29 0a 20 20 20 20 20 $band;").
2c40: 20 20 20 24 61 64 64 44 4c 20 28 22 23 7c 20 20 $addDL ("#|
2c50: 20 20 20 74 78 2d 63 68 61 69 6e 73 3a 20 20 20 tx-chains:
2c60: 20 20 20 20 20 20 20 20 24 74 78 43 68 61 69 6e $txChain
2c70: 73 3b 22 29 0a 20 20 20 20 20 20 20 20 24 61 64 s;"). $ad
2c80: 64 44 4c 20 28 22 23 7c 20 20 20 20 20 72 78 2d dDL ("#| rx-
2c90: 63 68 61 69 6e 73 3a 20 20 20 20 20 20 20 20 20 chains:
2ca0: 20 20 24 72 78 43 68 61 69 6e 73 3b 22 29 0a 20 $rxChains;").
2cb0: 20 20 20 20 20 20 20 24 61 64 64 44 4c 20 28 22 $addDL ("
2cc0: 23 7c 20 20 20 20 20 69 6e 73 74 61 6c 6c 61 74 #| installat
2cd0: 69 6f 6e 3a 20 20 20 20 20 20 20 20 24 69 6e 73 ion: $ins
2ce0: 74 61 6c 6c 61 74 69 6f 6e 3b 22 29 0a 0a 20 20 tallation;")..
2cf0: 20 20 20 20 20 20 23 20 64 6f 20 6e 6f 74 20 73 # do not s
2d00: 65 74 20 63 68 61 69 6e 73 20 28 73 68 6f 75 6c et chains (shoul
2d10: 64 20 62 65 20 73 65 74 20 62 79 20 64 65 66 61 d be set by defa
2d20: 75 6c 74 29 0a 20 20 20 20 20 20 20 20 24 61 64 ult). $ad
2d30: 64 43 4c 20 28 22 20 20 20 20 73 65 74 20 5c 24 dCL (" set \$
2d40: 69 66 63 49 64 20 63 6f 6e 66 69 67 75 72 61 74 ifcId configurat
2d50: 69 6f 6e 2e 6d 6f 64 65 3d 24 6d 6f 64 65 20 63 ion.mode=$mode c
2d60: 68 61 6e 6e 65 6c 2e 62 61 6e 64 3d 24 62 61 6e hannel.band=$ban
2d70: 64 20 64 69 73 61 62 6c 65 64 3d 6e 6f 22 29 0a d disabled=no").
2d80: 20 20 20 20 20 20 20 20 24 61 64 64 44 4c 20 28 $addDL (
2d90: 22 23 7c 20 20 20 20 20 68 74 2d 65 78 74 65 6e "#| ht-exten
2da0: 73 69 6f 6e 3a 20 20 20 20 20 20 20 20 24 62 65 sion: $be
2db0: 73 74 43 68 61 6e 6e 65 6c 3b 22 29 0a 20 20 20 stChannel;").
2dc0: 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 $addCL ("
2dd0: 20 20 73 65 74 20 5c 24 69 66 63 49 64 20 63 68 set \$ifcId ch
2de0: 61 6e 6e 65 6c 2e 77 69 64 74 68 3d 24 62 65 73 annel.width=$bes
2df0: 74 43 68 61 6e 6e 65 6c 3b 22 29 0a 20 20 20 20 tChannel;").
2e00: 20 20 20 20 3a 69 66 20 28 24 66 72 65 71 75 65 :if ($freque
2e10: 6e 63 79 20 21 3d 20 22 61 75 74 6f 22 29 20 64 ncy != "auto") d
2e20: 6f 3d 7b 0a 20 20 20 20 20 20 20 20 20 20 24 61 o={. $a
2e30: 64 64 43 4c 20 28 22 20 20 20 20 73 65 74 20 5c ddCL (" set \
2e40: 24 69 66 63 49 64 20 63 68 61 6e 6e 65 6c 2e 66 $ifcId channel.f
2e50: 72 65 71 75 65 6e 63 79 3d 24 66 72 65 71 75 65 requency=$freque
2e60: 6e 63 79 22 29 0a 20 20 20 20 20 20 20 20 7d 0a ncy"). }.
2e70: 20 20 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 $addCL (
2e80: 22 20 20 20 20 73 65 74 20 5c 24 69 66 63 49 64 " set \$ifcId
2e90: 20 63 68 61 6e 6e 65 6c 2e 73 6b 69 70 2d 64 66 channel.skip-df
2ea0: 73 2d 63 68 61 6e 6e 65 6c 73 3d 31 30 6d 69 6e s-channels=10min
2eb0: 2d 63 61 63 3b 22 29 0a 20 20 20 20 20 20 7d 0a -cac;"). }.
2ec0: 20 20 20 20 20 20 3a 69 66 20 28 21 28 24 70 61 :if (!($pa
2ed0: 73 73 20 3d 20 22 22 20 7c 7c 20 24 70 61 73 73 ss = "" || $pass
2ee0: 20 3d 20 6e 69 6c 29 29 20 64 6f 3d 7b 0a 20 20 = nil)) do={.
2ef0: 20 20 20 20 20 20 24 61 64 64 44 4c 20 28 22 23 $addDL ("#
2f00: 7c 20 20 20 20 20 77 70 61 32 3a 20 20 20 20 20 | wpa2:
2f10: 20 20 20 20 20 20 20 20 20 20 20 79 65 73 3b 22 yes;"
2f20: 29 0a 20 20 20 20 20 20 20 20 24 61 64 64 43 4c ). $addCL
2f30: 20 28 22 20 20 20 73 65 74 20 5c 24 69 66 63 49 (" set \$ifcI
2f40: 64 20 73 65 63 75 72 69 74 79 2e 61 75 74 68 65 d security.authe
2f50: 6e 74 69 63 61 74 69 6f 6e 2d 74 79 70 65 73 3d ntication-types=
2f60: 77 70 61 32 2d 70 73 6b 2c 77 70 61 33 2d 70 73 wpa2-psk,wpa3-ps
2f70: 6b 20 73 65 63 75 72 69 74 79 2e 70 61 73 73 70 k security.passp
2f80: 68 72 61 73 65 3d 24 70 61 73 73 20 73 65 63 75 hrase=$pass secu
2f90: 72 69 74 79 2e 66 74 3d 79 65 73 20 73 65 63 75 rity.ft=yes secu
2fa0: 72 69 74 79 2e 66 74 2d 6f 76 65 72 2d 64 73 3d rity.ft-over-ds=
2fb0: 79 65 73 22 29 0a 20 20 20 20 20 20 7d 20 65 6c yes"). } el
2fc0: 73 65 3d 7b 0a 20 20 20 20 20 20 20 20 24 61 64 se={. $ad
2fd0: 64 44 4c 20 28 22 23 7c 20 20 20 20 20 77 70 61 dDL ("#| wpa
2fe0: 32 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2:
2ff0: 20 20 6e 6f 3b 22 29 0a 20 20 20 20 20 20 7d 0a no;"). }.
3000: 20 20 20 20 20 20 3a 69 66 20 28 21 28 24 73 73 :if (!($ss
3010: 69 64 20 3d 20 22 22 20 7c 7c 20 24 73 73 69 64 id = "" || $ssid
3020: 20 3d 20 6e 69 6c 29 29 20 64 6f 3d 7b 0a 20 20 = nil)) do={.
3030: 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 $addCL ("
3040: 20 20 20 73 65 74 20 5c 24 69 66 63 49 64 20 63 set \$ifcId c
3050: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 73 73 69 onfiguration.ssi
3060: 64 3d 24 73 73 69 64 22 29 0a 20 20 20 20 20 20 d=$ssid").
3070: 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 20 20 20 } else={.
3080: 20 3a 69 66 20 28 24 6d 6f 64 65 20 3d 20 22 61 :if ($mode = "a
3090: 70 22 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 p") do={.
30a0: 20 20 20 24 61 64 64 44 43 4c 20 28 22 73 65 74 $addDCL ("set
30b0: 20 61 70 20 73 73 69 64 22 29 0a 20 20 20 20 20 ap ssid").
30c0: 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 $addCL ("
30d0: 20 20 3a 6c 6f 63 61 6c 20 77 6c 61 6e 4d 61 63 :local wlanMac
30e0: 20 20 5b 2f 69 6e 74 65 72 66 61 63 65 20 67 65 [/interface ge
30f0: 74 20 5b 2f 69 6e 74 65 72 66 61 63 65 20 66 69 t [/interface fi
3100: 6e 64 20 77 68 65 72 65 20 64 65 66 61 75 6c 74 nd where default
3110: 2d 6e 61 6d 65 3d 77 69 66 69 31 5d 20 6d 61 63 -name=wifi1] mac
3120: 2d 61 64 64 72 65 73 73 5d 3b 22 29 0a 20 20 20 -address];").
3130: 20 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 $addCL ("
3140: 20 20 20 20 3a 73 65 74 20 73 73 69 64 20 5c 22 :set ssid \"
3150: 4d 69 6b 72 6f 54 69 6b 2d 5c 24 5b 3a 70 69 63 MikroTik-\$[:pic
3160: 6b 20 5c 24 77 6c 61 6e 4d 61 63 20 39 20 31 31 k \$wlanMac 9 11
3170: 5d 5c 24 5b 3a 70 69 63 6b 20 5c 24 77 6c 61 6e ]\$[:pick \$wlan
3180: 4d 61 63 20 31 32 20 31 34 5d 5c 24 5b 3a 70 69 Mac 12 14]\$[:pi
3190: 63 6b 20 5c 24 77 6c 61 6e 4d 61 63 20 31 35 20 ck \$wlanMac 15
31a0: 31 37 5d 5c 22 22 29 0a 20 20 20 20 20 20 20 20 17]\"").
31b0: 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 73 $addCL (" s
31c0: 65 74 20 5c 24 69 66 63 49 64 20 63 6f 6e 66 69 et \$ifcId confi
31d0: 67 75 72 61 74 69 6f 6e 2e 73 73 69 64 3d 5c 24 guration.ssid=\$
31e0: 73 73 69 64 22 29 0a 20 20 20 20 20 20 20 20 7d ssid"). }
31f0: 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 . }..
3200: 24 61 64 64 43 4c 20 28 22 20 20 7d 22 29 0a 20 $addCL (" }").
3210: 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 } else={.
3220: 20 20 23 3a 73 65 74 20 69 66 63 49 64 20 5b 2f #:set ifcId [/
3230: 69 6e 74 65 72 66 61 63 65 20 77 69 72 65 6c 65 interface wirele
3240: 73 73 20 66 69 6e 64 20 77 68 65 72 65 20 64 65 ss find where de
3250: 66 61 75 6c 74 2d 6e 61 6d 65 3d 24 69 66 63 5d fault-name=$ifc]
3260: 0a 20 20 20 20 20 20 23 20 66 69 6e 64 20 69 6e . # find in
3270: 74 65 72 66 61 63 65 20 62 79 20 64 65 66 61 75 terface by defau
3280: 6c 74 20 6e 61 6d 65 20 61 6e 64 20 72 75 6e 20 lt name and run
3290: 69 6e 66 6f 20 28 69 6e 74 65 72 66 61 63 65 73 info (interfaces
32a0: 20 63 6f 75 6c 64 20 62 65 20 72 65 6e 61 6d 65 could be rename
32b0: 64 20 69 6e 20 75 73 65 72 20 63 6f 6e 66 69 67 d in user config
32c0: 29 2e 20 48 77 2d 69 6e 66 6f 20 63 61 6e 20 6e ). Hw-info can n
32d0: 6f 74 20 62 65 20 66 65 74 63 68 65 64 20 62 79 ot be fetched by
32e0: 20 69 6e 74 65 72 66 61 63 65 20 49 44 0a 20 20 interface ID.
32f0: 20 20 20 20 23 3a 73 65 74 20 63 75 72 72 65 6e #:set curren
3300: 74 4e 61 6d 65 20 5b 2f 69 6e 74 65 72 66 61 63 tName [/interfac
3310: 65 20 77 69 72 65 6c 65 73 73 20 67 65 74 20 24 e wireless get $
3320: 69 66 63 49 64 20 6e 61 6d 65 5d 0a 20 20 20 20 ifcId name].
3330: 20 20 3a 6c 6f 63 61 6c 20 69 6e 66 6f 43 61 6c :local infoCal
3340: 6c 20 5b 3a 70 61 72 73 65 20 22 3a 6c 6f 63 61 l [:parse ":loca
3350: 6c 20 69 66 63 49 64 20 5b 2f 69 6e 74 65 72 66 l ifcId [/interf
3360: 61 63 65 20 77 69 72 65 6c 65 73 73 20 66 69 6e ace wireless fin
3370: 64 20 77 68 65 72 65 20 64 65 66 61 75 6c 74 2d d where default-
3380: 6e 61 6d 65 3d 24 69 66 63 5d 3b 20 3a 6c 6f 63 name=$ifc]; :loc
3390: 61 6c 20 63 75 72 72 65 6e 74 4e 61 6d 65 20 5b al currentName [
33a0: 2f 69 6e 74 65 72 66 61 63 65 20 77 69 72 65 6c /interface wirel
33b0: 65 73 73 20 67 65 74 20 5c 24 69 66 63 49 64 20 ess get \$ifcId
33c0: 6e 61 6d 65 5d 3b 20 3a 72 65 74 75 72 6e 20 5b name]; :return [
33d0: 2f 69 6e 74 65 72 66 61 63 65 20 77 69 72 65 6c /interface wirel
33e0: 65 73 73 20 69 6e 66 6f 20 68 77 2d 69 6e 66 6f ess info hw-info
33f0: 20 5b 2f 69 6e 74 65 72 66 61 63 65 20 77 69 72 [/interface wir
3400: 65 6c 65 73 73 20 67 65 74 20 5c 24 69 66 63 49 eless get \$ifcI
3410: 64 20 6e 61 6d 65 5d 20 61 73 2d 76 61 6c 75 65 d name] as-value
3420: 5d 22 5d 0a 20 20 20 20 20 20 3a 73 65 74 20 77 ]"]. :set w
3430: 6c 61 6e 49 6e 66 6f 20 5b 24 69 6e 66 6f 43 61 lanInfo [$infoCa
3440: 6c 6c 5d 3b 20 23 5b 2f 69 6e 74 65 72 66 61 63 ll]; #[/interfac
3450: 65 20 77 69 72 65 6c 65 73 73 20 69 6e 66 6f 20 e wireless info
3460: 68 77 2d 69 6e 66 6f 20 24 63 75 72 72 65 6e 74 hw-info $current
3470: 4e 61 6d 65 20 61 73 2d 76 61 6c 75 65 5d 3b 0a Name as-value];.
3480: 20 20 20 20 20 20 23 20 46 49 58 4d 45 3a 20 63 # FIXME: c
3490: 6f 6e 76 65 72 74 73 20 66 72 6f 6d 20 61 72 72 onverts from arr
34a0: 61 79 20 77 69 74 68 20 3b 0a 20 20 20 20 20 20 ay with ;.
34b0: 3a 73 65 74 20 72 78 43 68 61 69 6e 73 20 5b 3a :set rxChains [:
34c0: 74 6f 73 74 72 20 28 24 77 6c 61 6e 49 6e 66 6f tostr ($wlanInfo
34d0: 2d 3e 22 72 78 2d 63 68 61 69 6e 73 22 29 5d 3b ->"rx-chains")];
34e0: 0a 20 20 20 20 20 20 3a 73 65 74 20 74 78 43 68 . :set txCh
34f0: 61 69 6e 73 20 5b 3a 74 6f 73 74 72 20 28 24 77 ains [:tostr ($w
3500: 6c 61 6e 49 6e 66 6f 2d 3e 22 74 78 2d 63 68 61 lanInfo->"tx-cha
3510: 69 6e 73 22 29 5d 3b 0a 0a 20 20 20 20 20 20 3a ins")];.. :
3520: 66 6f 72 65 61 63 68 20 72 61 6e 67 65 49 6e 66 foreach rangeInf
3530: 6f 20 69 6e 3d 28 24 77 6c 61 6e 49 6e 66 6f 2d o in=($wlanInfo-
3540: 3e 22 72 61 6e 67 65 73 22 29 20 64 6f 3d 7b 0a >"ranges") do={.
3550: 20 20 20 20 20 20 20 20 3a 73 65 74 20 72 61 6e :set ran
3560: 67 65 49 6e 66 6f 20 5b 3a 74 6f 61 72 72 61 79 geInfo [:toarray
3570: 20 24 72 61 6e 67 65 49 6e 66 6f 5d 3b 0a 20 20 $rangeInfo];.
3580: 20 20 20 20 20 20 3a 66 6f 72 65 61 63 68 20 69 :foreach i
3590: 20 69 6e 3d 24 72 61 6e 67 65 49 6e 66 6f 20 64 in=$rangeInfo d
35a0: 6f 3d 7b 0a 20 20 20 20 20 20 20 20 20 20 3a 6c o={. :l
35b0: 6f 63 61 6c 20 63 68 72 20 22 22 3b 0a 20 20 20 ocal chr "";.
35c0: 20 20 20 20 20 20 20 3a 6c 6f 63 61 6c 20 6c 65 :local le
35d0: 6e 20 30 3b 0a 20 20 20 20 20 20 20 20 20 20 3a n 0;. :
35e0: 73 65 74 20 6c 65 6e 20 5b 3a 6c 65 6e 20 24 69 set len [:len $i
35f0: 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 3a 73 65 ];. :se
3600: 74 20 63 68 72 20 5b 3a 70 69 63 6b 20 24 69 20 t chr [:pick $i
3610: 30 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 23 20 0];. #
3620: 69 66 20 69 73 20 6e 75 6d 62 65 72 20 54 4f 44 if is number TOD
3630: 4f 3a 20 75 73 65 20 69 73 4e 75 6d 0a 20 20 20 O: use isNum.
3640: 20 20 20 20 20 20 20 3a 69 66 20 28 20 28 30 20 :if ( (0
3650: 3c 3d 20 5b 3a 74 6f 6e 75 6d 20 24 63 68 72 5d <= [:tonum $chr]
3660: 29 20 26 26 20 28 5b 3a 74 6f 6e 75 6d 20 24 63 ) && ([:tonum $c
3670: 68 72 5d 20 3c 3d 20 39 29 20 29 20 64 6f 3d 7b hr] <= 9) ) do={
3680: 0a 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 65 . :se
3690: 74 20 6e 75 6d 42 61 6e 64 73 20 28 24 6e 75 6d t numBands ($num
36a0: 42 61 6e 64 73 2b 31 29 0a 0a 20 20 20 20 20 20 Bands+1)..
36b0: 20 20 20 20 20 20 3a 73 65 74 20 28 24 62 61 6e :set ($ban
36c0: 64 73 2d 3e 22 62 24 6e 75 6d 42 61 6e 64 73 22 ds->"b$numBands"
36d0: 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ) {.
36e0: 20 20 22 66 72 65 71 22 3d 24 63 68 72 3b 0a 20 "freq"=$chr;.
36f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 73 "is
3700: 4e 22 3d 30 3b 0a 20 20 20 20 20 20 20 20 20 20 N"=0;.
3710: 20 20 20 20 22 69 73 41 63 22 3d 30 3b 0a 20 20 "isAc"=0;.
3720: 20 20 20 20 20 20 20 20 20 20 20 20 22 63 68 4d "chM
3730: 61 78 57 69 64 74 68 22 3d 30 0a 20 20 20 20 20 axWidth"=0.
3740: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 }.
3750: 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 } else={.
3760: 20 20 20 20 20 20 20 20 3a 69 66 20 28 24 6c 65 :if ($le
3770: 6e 20 3e 20 31 29 20 64 6f 3d 7b 0a 20 20 20 20 n > 1) do={.
3780: 20 20 20 20 20 20 20 20 20 20 3a 73 65 74 20 63 :set c
3790: 68 72 20 5b 3a 70 69 63 6b 20 24 69 20 31 5d 3b hr [:pick $i 1];
37a0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a . :
37b0: 69 66 20 28 24 63 68 72 20 3d 20 22 6e 22 29 20 if ($chr = "n")
37c0: 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 20 20 20 do={.
37d0: 20 20 20 20 20 3a 73 65 74 20 28 28 24 62 61 6e :set (($ban
37e0: 64 73 2d 3e 22 62 24 6e 75 6d 42 61 6e 64 73 22 ds->"b$numBands"
37f0: 29 2d 3e 22 69 73 4e 22 29 20 31 0a 20 20 20 20 )->"isN") 1.
3800: 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 }.
3810: 20 20 20 20 20 20 20 20 20 20 3a 69 66 20 28 24 :if ($
3820: 63 68 72 20 3d 20 22 63 22 29 20 64 6f 3d 7b 0a chr = "c") do={.
3830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3840: 3a 73 65 74 20 28 28 24 62 61 6e 64 73 2d 3e 22 :set (($bands->"
3850: 62 24 6e 75 6d 42 61 6e 64 73 22 29 2d 3e 22 69 b$numBands")->"i
3860: 73 41 63 22 29 20 31 0a 20 20 20 20 20 20 20 20 sAc") 1.
3870: 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 }.
3880: 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 }.
3890: 20 20 3a 69 66 20 28 5b 3a 74 6f 6e 75 6d 20 28 :if ([:tonum (
38a0: 28 24 62 61 6e 64 73 2d 3e 22 62 24 6e 75 6d 42 ($bands->"b$numB
38b0: 61 6e 64 73 22 29 2d 3e 22 63 68 4d 61 78 57 69 ands")->"chMaxWi
38c0: 64 74 68 22 29 5d 20 3c 20 20 5b 3a 74 6f 6e 75 dth")] < [:tonu
38d0: 6d 20 5b 3a 70 69 63 6b 20 24 69 20 32 20 24 6c m [:pick $i 2 $l
38e0: 65 6e 5d 5d 20 29 20 64 6f 3d 7b 0a 20 20 20 20 en]] ) do={.
38f0: 20 20 20 20 20 20 20 20 20 20 3a 73 65 74 20 28 :set (
3900: 28 24 62 61 6e 64 73 2d 3e 22 62 24 6e 75 6d 42 ($bands->"b$numB
3910: 61 6e 64 73 22 29 2d 3e 22 63 68 4d 61 78 57 69 ands")->"chMaxWi
3920: 64 74 68 22 29 20 5b 3a 70 69 63 6b 20 24 69 20 dth") [:pick $i
3930: 32 20 24 6c 65 6e 5d 3b 0a 20 20 20 20 20 20 20 2 $len];.
3940: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 }.
3950: 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 }. }.
3960: 20 20 20 7d 0a 0a 20 20 20 20 20 20 24 61 64 64 }.. $add
3970: 43 4c 20 28 22 20 20 2f 69 6e 74 65 72 66 61 63 CL (" /interfac
3980: 65 20 77 69 72 65 6c 65 73 73 20 7b 22 29 0a 0a e wireless {")..
3990: 20 20 20 20 20 20 23 70 69 63 6b 20 61 6c 77 61 #pick alwa
39a0: 79 73 20 66 69 72 73 74 20 73 75 70 70 6f 72 74 ys first support
39b0: 65 64 20 62 61 6e 64 0a 20 20 20 20 20 20 3a 69 ed band. :i
39c0: 66 20 28 28 24 62 61 6e 64 73 2d 3e 22 62 31 22 f (($bands->"b1"
39d0: 29 2d 3e 22 66 72 65 71 22 20 3d 20 32 29 20 64 )->"freq" = 2) d
39e0: 6f 3d 7b 0a 20 20 20 20 20 20 20 20 3a 69 66 20 o={. :if
39f0: 28 28 24 62 61 6e 64 73 2d 3e 22 62 31 22 29 2d (($bands->"b1")-
3a00: 3e 22 69 73 4e 22 20 3d 20 31 29 20 64 6f 3d 7b >"isN" = 1) do={
3a10: 0a 20 20 20 20 20 20 20 20 20 20 3a 73 65 74 20 . :set
3a20: 62 61 6e 64 20 22 32 67 68 7a 2d 62 2f 67 2f 6e band "2ghz-b/g/n
3a30: 22 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 ". } else
3a40: 3d 7b 0a 20 20 20 20 20 20 20 20 20 20 3a 73 65 ={. :se
3a50: 74 20 62 61 6e 64 20 22 32 67 68 7a 2d 62 2f 67 t band "2ghz-b/g
3a60: 22 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 ". }.
3a70: 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 20 } else={.
3a80: 20 20 20 3a 69 66 20 28 28 24 62 61 6e 64 73 2d :if (($bands-
3a90: 3e 22 62 31 22 29 2d 3e 22 69 73 41 63 22 20 3d >"b1")->"isAc" =
3aa0: 20 31 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 1) do={.
3ab0: 20 20 20 3a 73 65 74 20 62 61 6e 64 20 22 35 67 :set band "5g
3ac0: 68 7a 2d 61 2f 6e 2f 61 63 22 0a 20 20 20 20 20 hz-a/n/ac".
3ad0: 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 } else={.
3ae0: 20 20 20 20 20 20 3a 69 66 20 28 28 24 62 61 6e :if (($ban
3af0: 64 73 2d 3e 22 62 31 22 29 2d 3e 22 69 73 4e 22 ds->"b1")->"isN"
3b00: 20 3d 20 31 29 20 64 6f 3d 7b 0a 20 20 20 20 20 = 1) do={.
3b10: 20 20 20 20 20 20 20 3a 73 65 74 20 62 61 6e 64 :set band
3b20: 20 22 35 67 68 7a 2d 61 2f 6e 22 0a 20 20 20 20 "5ghz-a/n".
3b30: 20 20 20 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 } else={.
3b40: 20 20 20 20 20 20 20 20 20 20 20 3a 73 65 74 20 :set
3b50: 62 61 6e 64 20 22 35 67 68 7a 2d 61 22 0a 20 20 band "5ghz-a".
3b60: 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 }.
3b70: 20 20 7d 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 }. }..
3b80: 20 20 20 24 61 64 64 43 4c 20 28 22 3a 6c 6f 63 $addCL (":loc
3b90: 61 6c 20 69 66 63 49 64 20 5b 2f 69 6e 74 65 72 al ifcId [/inter
3ba0: 66 61 63 65 20 77 69 72 65 6c 65 73 73 20 66 69 face wireless fi
3bb0: 6e 64 20 77 68 65 72 65 20 64 65 66 61 75 6c 74 nd where default
3bc0: 2d 6e 61 6d 65 3d 24 69 66 63 5d 22 29 0a 20 20 -name=$ifc]").
3bd0: 20 20 20 20 24 61 64 64 43 4c 20 28 22 3a 6c 6f $addCL (":lo
3be0: 63 61 6c 20 63 75 72 72 65 6e 74 4e 61 6d 65 20 cal currentName
3bf0: 5b 2f 69 6e 74 65 72 66 61 63 65 20 77 69 72 65 [/interface wire
3c00: 6c 65 73 73 20 67 65 74 20 5c 24 69 66 63 49 64 less get \$ifcId
3c10: 20 6e 61 6d 65 5d 22 29 0a 20 20 20 20 20 20 24 name]"). $
3c20: 61 64 64 44 4c 20 28 22 23 7c 20 24 69 66 63 20 addDL ("#| $ifc
3c30: 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3a 22 29 Configuration:")
3c40: 0a 20 20 20 20 20 20 24 61 64 64 44 4c 20 28 22 . $addDL ("
3c50: 23 7c 20 20 20 20 20 6d 6f 64 65 3a 20 20 20 20 #| mode:
3c60: 20 20 20 20 20 20 20 20 20 20 20 20 24 6d 6f 64 $mod
3c70: 65 3b 22 29 0a 20 20 20 20 20 20 24 61 64 64 44 e;"). $addD
3c80: 43 4c 20 28 22 73 74 61 72 74 20 77 69 72 65 6c CL ("start wirel
3c90: 65 73 73 20 24 69 66 63 22 29 0a 0a 20 20 20 20 ess $ifc")..
3ca0: 20 20 3a 69 66 20 28 24 6d 6f 64 65 20 3d 20 22 :if ($mode = "
3cb0: 64 69 73 61 62 6c 65 64 22 29 20 64 6f 3d 7b 0a disabled") do={.
3cc0: 20 20 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 $addCL (
3cd0: 22 20 20 64 69 73 61 62 6c 65 20 5c 24 69 66 63 " disable \$ifc
3ce0: 49 64 22 29 0a 20 20 20 20 20 20 7d 20 65 6c 73 Id"). } els
3cf0: 65 3d 7b 0a 20 20 20 20 20 20 20 20 24 61 64 64 e={. $add
3d00: 44 4c 20 28 22 23 7c 20 20 20 20 20 62 61 6e 64 DL ("#| band
3d10: 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :
3d20: 20 24 62 61 6e 64 3b 22 29 0a 20 20 20 20 20 20 $band;").
3d30: 20 20 24 61 64 64 44 4c 20 28 22 23 7c 20 20 20 $addDL ("#|
3d40: 20 20 74 78 2d 63 68 61 69 6e 73 3a 20 20 20 20 tx-chains:
3d50: 20 20 20 20 20 20 20 24 74 78 43 68 61 69 6e 73 $txChains
3d60: 3b 22 29 0a 20 20 20 20 20 20 20 20 24 61 64 64 ;"). $add
3d70: 44 4c 20 28 22 23 7c 20 20 20 20 20 72 78 2d 63 DL ("#| rx-c
3d80: 68 61 69 6e 73 3a 20 20 20 20 20 20 20 20 20 20 hains:
3d90: 20 24 72 78 43 68 61 69 6e 73 3b 22 29 0a 20 20 $rxChains;").
3da0: 20 20 20 20 20 20 24 61 64 64 44 4c 20 28 22 23 $addDL ("#
3db0: 7c 20 20 20 20 20 69 6e 73 74 61 6c 6c 61 74 69 | installati
3dc0: 6f 6e 3a 20 20 20 20 20 20 20 20 24 69 6e 73 74 on: $inst
3dd0: 61 6c 6c 61 74 69 6f 6e 3b 22 29 0a 0a 20 20 20 allation;")..
3de0: 20 20 20 20 20 3a 69 66 20 28 21 28 24 70 61 73 :if (!($pas
3df0: 73 20 3d 20 22 22 20 7c 7c 20 24 70 61 73 73 20 s = "" || $pass
3e00: 3d 20 6e 69 6c 29 29 20 64 6f 3d 7b 0a 20 20 20 = nil)) do={.
3e10: 20 20 20 20 20 20 20 24 61 64 64 44 4c 20 28 22 $addDL ("
3e20: 23 7c 20 20 20 20 20 77 70 61 32 3a 20 20 20 20 #| wpa2:
3e30: 20 20 20 20 20 20 79 65 73 3b 22 29 0a 20 20 20 yes;").
3e40: 20 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 $addCL ("
3e50: 20 20 20 73 65 63 75 72 69 74 79 2d 70 72 6f 66 security-prof
3e60: 69 6c 65 20 73 65 74 20 64 65 66 61 75 6c 74 20 ile set default
3e70: 6d 6f 64 65 3d 64 79 6e 61 6d 69 63 2d 6b 65 79 mode=dynamic-key
3e80: 73 20 67 72 6f 75 70 2d 63 69 70 68 65 72 73 3d s group-ciphers=
3e90: 61 65 73 2d 63 63 6d 20 75 6e 69 63 61 73 74 2d aes-ccm unicast-
3ea0: 63 69 70 68 65 72 73 3d 61 65 73 2d 63 63 6d 20 ciphers=aes-ccm
3eb0: 5c 5c 22 29 0a 20 20 20 20 20 20 20 20 20 20 24 \\"). $
3ec0: 61 64 64 43 4c 20 28 22 20 20 20 20 20 20 61 75 addCL (" au
3ed0: 74 68 65 6e 74 69 63 61 74 69 6f 6e 2d 74 79 70 thentication-typ
3ee0: 65 73 3d 77 70 61 32 2d 70 73 6b 20 64 69 73 61 es=wpa2-psk disa
3ef0: 62 6c 65 2d 70 6d 6b 69 64 3d 79 65 73 20 77 70 ble-pmkid=yes wp
3f00: 61 32 2d 70 72 65 2d 73 68 61 72 65 64 2d 6b 65 a2-pre-shared-ke
3f10: 79 3d 24 70 61 73 73 20 63 6f 6d 6d 65 6e 74 3d y=$pass comment=
3f20: 64 65 66 63 6f 6e 66 20 22 29 0a 20 20 20 20 20 defconf ").
3f30: 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 } else={.
3f40: 20 20 20 20 20 20 24 61 64 64 44 4c 20 28 22 23 $addDL ("#
3f50: 7c 20 20 20 20 20 77 70 61 32 3a 20 20 20 20 20 | wpa2:
3f60: 20 6e 6f 3b 22 29 0a 20 20 20 20 20 20 20 20 7d no;"). }
3f70: 0a 0a 20 20 20 20 20 20 20 20 23 20 64 6f 20 6e .. # do n
3f80: 6f 74 20 73 65 74 20 63 68 61 69 6e 73 20 28 73 ot set chains (s
3f90: 68 6f 75 6c 64 20 62 65 20 73 65 74 20 62 79 20 hould be set by
3fa0: 64 65 66 61 75 6c 74 29 0a 20 20 20 20 20 20 20 default).
3fb0: 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 73 65 $addCL (" se
3fc0: 74 20 5c 24 69 66 63 49 64 20 6d 6f 64 65 3d 24 t \$ifcId mode=$
3fd0: 6d 6f 64 65 20 62 61 6e 64 3d 24 62 61 6e 64 20 mode band=$band
3fe0: 64 69 73 61 62 6c 65 64 3d 6e 6f 20 77 69 72 65 disabled=no wire
3ff0: 6c 65 73 73 2d 70 72 6f 74 6f 63 6f 6c 3d 24 77 less-protocol=$w
4000: 50 72 6f 74 6f 20 5c 5c 22 29 0a 20 20 20 20 20 Proto \\").
4010: 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 $addCL ("
4020: 20 20 20 64 69 73 74 61 6e 63 65 3d 24 64 69 73 distance=$dis
4030: 74 61 6e 63 65 20 69 6e 73 74 61 6c 6c 61 74 69 tance installati
4040: 6f 6e 3d 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e on=$installation
4050: 22 29 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 ").. if (
4060: 28 24 62 61 6e 64 73 2d 3e 22 62 31 22 29 2d 3e ($bands->"b1")->
4070: 22 63 68 4d 61 78 57 69 64 74 68 22 20 3e 3d 20 "chMaxWidth" >=
4080: 38 30 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 80) do={.
4090: 20 20 20 24 61 64 64 44 4c 20 28 22 23 7c 20 20 $addDL ("#|
40a0: 20 20 20 68 74 2d 65 78 74 65 6e 73 69 6f 6e 3a ht-extension:
40b0: 20 20 20 20 20 20 20 20 32 30 2f 34 30 2f 38 30 20/40/80
40c0: 6d 68 7a 2d 58 58 58 58 3b 22 29 0a 20 20 20 20 mhz-XXXX;").
40d0: 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 $addCL ("
40e0: 20 20 20 73 65 74 20 5c 24 69 66 63 49 64 20 63 set \$ifcId c
40f0: 68 61 6e 6e 65 6c 2d 77 69 64 74 68 3d 32 30 2f hannel-width=20/
4100: 34 30 2f 38 30 6d 68 7a 2d 58 58 58 58 3b 22 29 40/80mhz-XXXX;")
4110: 0a 20 20 20 20 20 20 20 20 20 20 23 20 73 65 63 . # sec
4120: 6f 6e 64 61 72 79 20 63 68 61 6e 6e 65 6c 20 6f ondary channel o
4130: 6e 6c 79 20 66 6f 72 20 41 43 20 61 6e 64 20 38 nly for AC and 8
4140: 30 6d 68 7a 0a 20 20 20 20 20 20 20 20 20 20 3a 0mhz. :
4150: 69 66 20 28 24 73 65 63 43 68 61 6e 6e 65 6c 3d if ($secChannel=
4160: 31 20 26 26 20 62 61 6e 64 3d 22 35 67 68 7a 2d 1 && band="5ghz-
4170: 61 2f 6e 2f 61 63 22 29 20 64 6f 3d 7b 0a 20 20 a/n/ac") do={.
4180: 20 20 20 20 20 20 20 20 20 20 24 61 64 64 44 4c $addDL
4190: 20 28 22 23 7c 20 20 20 20 20 73 65 63 6f 6e 64 ("#| second
41a0: 61 72 79 2d 66 72 65 71 75 65 6e 63 79 3a 20 20 ary-frequency:
41b0: 20 61 75 74 6f 3b 22 29 0a 20 20 20 20 20 20 20 auto;").
41c0: 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 $addCL ("
41d0: 20 20 73 65 74 20 5c 24 69 66 63 49 64 20 73 65 set \$ifcId se
41e0: 63 6f 6e 64 61 72 79 2d 66 72 65 71 75 65 6e 63 condary-frequenc
41f0: 79 3d 61 75 74 6f 22 29 0a 20 20 20 20 20 20 20 y=auto").
4200: 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 20 65 }. } e
4210: 6c 73 65 3d 7b 0a 20 20 20 20 20 20 20 20 20 20 lse={.
4220: 3a 69 66 20 28 28 24 62 61 6e 64 73 2d 3e 22 62 :if (($bands->"b
4230: 31 22 29 2d 3e 22 63 68 4d 61 78 57 69 64 74 68 1")->"chMaxWidth
4240: 22 20 3d 20 34 30 29 20 64 6f 3d 7b 0a 20 20 20 " = 40) do={.
4250: 20 20 20 20 20 20 20 20 20 24 61 64 64 44 4c 20 $addDL
4260: 28 22 23 7c 20 20 20 20 20 68 74 2d 65 78 74 65 ("#| ht-exte
4270: 6e 73 69 6f 6e 3a 20 20 20 20 20 20 20 20 32 30 nsion: 20
4280: 2f 34 30 6d 68 7a 2d 58 58 3b 22 29 0a 20 20 20 /40mhz-XX;").
4290: 20 20 20 20 20 20 20 20 20 24 61 64 64 43 4c 20 $addCL
42a0: 28 22 20 20 20 20 73 65 74 20 5c 24 69 66 63 49 (" set \$ifcI
42b0: 64 20 63 68 61 6e 6e 65 6c 2d 77 69 64 74 68 3d d channel-width=
42c0: 32 30 2f 34 30 6d 68 7a 2d 58 58 3b 22 29 0a 20 20/40mhz-XX;").
42d0: 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 3d } else=
42e0: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 61 {. $a
42f0: 64 64 44 4c 20 28 22 23 7c 20 20 20 20 20 68 74 ddDL ("#| ht
4300: 2d 65 78 74 65 6e 73 69 6f 6e 3a 20 20 20 20 20 -extension:
4310: 20 20 20 32 30 6d 68 7a 3b 22 29 0a 20 20 20 20 20mhz;").
4320: 20 20 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 $addCL (
4330: 22 20 20 20 20 73 65 74 20 5c 24 69 66 63 49 64 " set \$ifcId
4340: 20 63 68 61 6e 6e 65 6c 2d 77 69 64 74 68 3d 32 channel-width=2
4350: 30 6d 68 7a 3b 22 29 0a 20 20 20 20 20 20 20 20 0mhz;").
4360: 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 }. }.
4370: 20 20 20 20 20 20 3a 69 66 20 28 24 66 72 65 71 :if ($freq
4380: 75 65 6e 63 79 20 21 3d 20 22 22 29 20 64 6f 3d uency != "") do=
4390: 7b 0a 20 20 20 20 20 20 20 20 20 20 24 61 64 64 {. $add
43a0: 43 4c 20 28 22 20 20 20 20 73 65 74 20 5c 24 69 CL (" set \$i
43b0: 66 63 49 64 20 66 72 65 71 75 65 6e 63 79 3d 24 fcId frequency=$
43c0: 66 72 65 71 75 65 6e 63 79 22 29 0a 20 20 20 20 frequency").
43d0: 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a 0a 20 }. }..
43e0: 20 20 20 20 20 3a 69 66 20 28 21 28 24 73 73 69 :if (!($ssi
43f0: 64 20 3d 20 22 22 20 7c 7c 20 24 73 73 69 64 20 d = "" || $ssid
4400: 3d 20 6e 69 6c 29 29 20 64 6f 3d 7b 0a 20 20 20 = nil)) do={.
4410: 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 $addCL ("
4420: 20 20 73 65 74 20 5c 24 69 66 63 49 64 20 73 73 set \$ifcId ss
4430: 69 64 3d 24 73 73 69 64 22 29 0a 20 20 20 20 20 id=$ssid").
4440: 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 20 20 } else={.
4450: 20 20 3a 69 66 20 28 24 6d 6f 64 65 20 3d 20 22 :if ($mode = "
4460: 61 70 2d 62 72 69 64 67 65 22 20 7c 7c 20 24 6d ap-bridge" || $m
4470: 6f 64 65 20 3d 20 22 62 72 69 64 67 65 22 29 20 ode = "bridge")
4480: 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 20 20 24 do={. $
4490: 61 64 64 44 43 4c 20 28 22 73 65 74 20 61 70 5f addDCL ("set ap_
44a0: 62 72 69 64 67 65 20 73 73 69 64 22 29 0a 20 20 bridge ssid").
44b0: 20 20 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 $addCL (
44c0: 22 20 20 20 20 3a 6c 6f 63 61 6c 20 77 6c 61 6e " :local wlan
44d0: 4d 61 63 20 20 5b 2f 69 6e 74 65 72 66 61 63 65 Mac [/interface
44e0: 20 77 69 72 65 6c 65 73 73 20 67 65 74 20 77 6c wireless get wl
44f0: 61 6e 31 20 6d 61 63 2d 61 64 64 72 65 73 73 5d an1 mac-address]
4500: 3b 22 29 0a 20 20 20 20 20 20 20 20 20 20 24 61 ;"). $a
4510: 64 64 43 4c 20 28 22 20 20 20 20 3a 73 65 74 20 ddCL (" :set
4520: 73 73 69 64 20 5c 22 4d 69 6b 72 6f 54 69 6b 2d ssid \"MikroTik-
4530: 5c 24 5b 3a 70 69 63 6b 20 5c 24 77 6c 61 6e 4d \$[:pick \$wlanM
4540: 61 63 20 39 20 31 31 5d 5c 24 5b 3a 70 69 63 6b ac 9 11]\$[:pick
4550: 20 5c 24 77 6c 61 6e 4d 61 63 20 31 32 20 31 34 \$wlanMac 12 14
4560: 5d 5c 24 5b 3a 70 69 63 6b 20 5c 24 77 6c 61 6e ]\$[:pick \$wlan
4570: 4d 61 63 20 31 35 20 31 37 5d 5c 22 22 29 0a 20 Mac 15 17]\"").
4580: 20 20 20 20 20 20 20 20 20 24 61 64 64 43 4c 20 $addCL
4590: 28 22 20 20 20 20 73 65 74 20 5c 24 69 66 63 49 (" set \$ifcI
45a0: 64 20 73 73 69 64 3d 5c 24 73 73 69 64 22 29 0a d ssid=\$ssid").
45b0: 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 }.
45c0: 7d 0a 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 }. $addCL (
45d0: 22 20 20 7d 22 29 0a 20 20 20 20 7d 0a 20 20 7d " }"). }. }
45e0: 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .}..#-----------
45f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4600: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4610: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4620: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4630: 2d 2d 2d 2d 0a 23 20 61 70 70 6c 79 20 63 6f 6e ----.# apply con
4640: 66 69 67 75 72 61 74 69 6f 6e 20 72 65 6c 61 74 figuration relat
4650: 65 64 20 74 6f 20 4c 41 4e 20 28 73 77 69 74 63 ed to LAN (switc
4660: 68 65 73 2c 20 62 72 69 64 67 65 73 2c 20 64 68 hes, bridges, dh
4670: 63 70 20 73 65 72 76 65 72 29 0a 23 2d 2d 2d 2d cp server).#----
4680: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
4690: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
46a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
46b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
46c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3a 67 6c 6f -----------.:glo
46d0: 62 61 6c 20 73 65 74 4c 61 6e 20 64 6f 3d 7b 0a bal setLan do={.
46e0: 20 20 23 61 63 63 65 73 73 20 74 6f 20 67 6c 6f #access to glo
46f0: 62 61 6c 20 76 61 72 73 0a 20 20 3a 67 6c 6f 62 bal vars. :glob
4700: 61 6c 20 64 65 66 63 6f 6e 66 4d 6f 64 65 3b 0a al defconfMode;.
4710: 20 20 3a 67 6c 6f 62 61 6c 20 61 64 64 43 4c 3b :global addCL;
4720: 0a 20 20 3a 67 6c 6f 62 61 6c 20 61 64 64 44 4c . :global addDL
4730: 3b 0a 20 20 3a 67 6c 6f 62 61 6c 20 61 64 64 44 ;. :global addD
4740: 43 4c 3b 0a 20 20 3a 67 6c 6f 62 61 6c 20 64 68 CL;. :global dh
4750: 63 70 45 6e 61 62 6c 65 64 3b 0a 0a 20 20 24 61 cpEnabled;.. $a
4760: 64 64 44 4c 20 28 22 23 7c 20 4c 41 4e 20 43 6f ddDL ("#| LAN Co
4770: 6e 66 69 67 75 72 61 74 69 6f 6e 3a 22 29 0a 20 nfiguration:").
4780: 20 24 61 64 64 44 43 4c 20 28 22 73 65 74 20 4c $addDCL ("set L
4790: 41 4e 22 29 0a 20 20 23 20 4e 65 77 20 73 74 79 AN"). # New sty
47a0: 6c 65 20 44 65 74 6e 65 74 0a 20 20 3a 69 66 20 le Detnet. :if
47b0: 28 24 75 73 65 44 65 74 4e 65 74 20 3d 20 31 29 ($useDetNet = 1)
47c0: 20 64 6f 3d 7b 0a 20 20 20 20 23 20 4c 41 4e 20 do={. # LAN
47d0: 70 6f 72 74 20 69 73 20 61 6c 77 61 79 73 20 62 port is always b
47e0: 72 69 64 67 65 20 77 68 65 6e 20 44 65 74 4e 65 ridge when DetNe
47f0: 74 20 65 6e 61 62 6c 65 64 0a 20 20 20 20 3a 73 t enabled. :s
4800: 65 74 20 24 6c 61 6e 50 6f 72 74 20 22 62 72 69 et $lanPort "bri
4810: 64 67 65 22 0a 20 20 20 20 24 61 64 64 44 4c 20 dge". $addDL
4820: 28 22 23 7c 20 20 20 20 20 4c 41 4e 20 50 6f 72 ("#| LAN Por
4830: 74 73 3a 20 64 65 74 65 63 74 65 64 20 61 75 74 ts: detected aut
4840: 6f 6d 61 74 69 63 61 6c 6c 79 3b 22 29 0a 20 20 omatically;").
4850: 20 20 24 61 64 64 43 4c 20 28 22 20 2f 69 6e 74 $addCL (" /int
4860: 65 72 66 61 63 65 20 62 72 69 64 67 65 22 29 0a erface bridge").
4870: 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 $addCL ("
4880: 61 64 64 20 6e 61 6d 65 3d 24 6c 61 6e 50 6f 72 add name=$lanPor
4890: 74 20 63 6f 6d 6d 65 6e 74 3d 64 65 66 63 6f 6e t comment=defcon
48a0: 66 3b 22 29 0a 20 20 20 20 23 20 54 4f 44 4f 3a f;"). # TODO:
48b0: 20 77 68 61 74 20 6d 61 63 20 61 64 64 72 65 73 what mac addres
48c0: 73 20 6f 6e 20 62 72 69 64 67 65 3f 3f 3f 3f 20 s on bridge????
48d0: 74 65 6d 70 6f 72 61 72 79 20 75 73 65 20 65 74 temporary use et
48e0: 68 65 72 31 0a 20 20 20 20 24 61 64 64 43 4c 20 her1. $addCL
48f0: 28 22 20 20 20 73 65 74 20 24 6c 61 6e 50 6f 72 (" set $lanPor
4900: 74 20 61 75 74 6f 2d 6d 61 63 3d 6e 6f 20 61 64 t auto-mac=no ad
4910: 6d 69 6e 2d 6d 61 63 3d 5b 2f 69 6e 74 65 72 66 min-mac=[/interf
4920: 61 63 65 20 65 74 68 65 72 6e 65 74 20 67 65 74 ace ethernet get
4930: 20 65 74 68 65 72 31 20 6d 61 63 2d 61 64 64 72 ether1 mac-addr
4940: 65 73 73 5d 3b 22 29 0a 20 20 20 20 24 61 64 64 ess];"). $add
4950: 43 4c 20 28 22 20 20 20 70 6f 72 74 20 61 64 64 CL (" port add
4960: 20 62 72 69 64 67 65 3d 24 6c 61 6e 50 6f 72 74 bridge=$lanPort
4970: 20 69 6e 74 65 72 66 61 63 65 3d 4c 41 4e 20 63 interface=LAN c
4980: 6f 6d 6d 65 6e 74 3d 64 65 66 63 6f 6e 66 3b 22 omment=defconf;"
4990: 29 0a 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 ). } else={.
49a0: 20 3a 69 66 20 28 24 6c 61 6e 50 6f 72 74 20 3d :if ($lanPort =
49b0: 20 22 62 72 69 64 67 65 22 29 20 64 6f 3d 7b 0a "bridge") do={.
49c0: 20 20 20 20 20 20 23 62 72 69 64 67 65 20 61 6c #bridge al
49d0: 6c 20 69 6e 74 65 72 66 61 63 65 73 20 74 68 61 l interfaces tha
49e0: 74 20 61 72 65 20 6e 6f 74 20 77 61 6e 20 6f 72 t are not wan or
49f0: 20 73 6c 61 76 65 20 70 6f 72 74 73 0a 20 20 20 slave ports.
4a00: 20 20 20 24 61 64 64 43 4c 20 28 22 20 2f 69 6e $addCL (" /in
4a10: 74 65 72 66 61 63 65 20 62 72 69 64 67 65 22 29 terface bridge")
4a20: 0a 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 . $addCL ("
4a30: 20 20 20 61 64 64 20 6e 61 6d 65 3d 24 6c 61 6e add name=$lan
4a40: 50 6f 72 74 20 64 69 73 61 62 6c 65 64 3d 6e 6f Port disabled=no
4a50: 20 61 75 74 6f 2d 6d 61 63 3d 79 65 73 20 70 72 auto-mac=yes pr
4a60: 6f 74 6f 63 6f 6c 2d 6d 6f 64 65 3d 72 73 74 70 otocol-mode=rstp
4a70: 20 63 6f 6d 6d 65 6e 74 3d 64 65 66 63 6f 6e 66 comment=defconf
4a80: 3b 22 29 0a 20 20 20 20 20 20 24 61 64 64 43 4c ;"). $addCL
4a90: 20 28 22 20 3a 6c 6f 63 61 6c 20 62 4d 41 43 49 (" :local bMACI
4aa0: 73 53 65 74 20 30 3b 22 29 0a 20 20 20 20 20 20 sSet 0;").
4ab0: 24 61 64 64 44 43 4c 20 28 22 5c 24 5b 3a 74 6f $addDCL ("\$[:to
4ac0: 73 74 72 20 5b 2f 69 6e 74 65 72 66 61 63 65 20 str [/interface
4ad0: 70 72 69 6e 74 20 61 73 2d 76 61 6c 75 65 5d 5d print as-value]]
4ae0: 22 29 0a 20 20 20 20 20 20 3a 6c 6f 63 61 6c 20 "). :local
4af0: 65 78 63 57 6c 61 6e 73 20 22 22 3b 0a 20 20 20 excWlans "";.
4b00: 20 20 20 3a 69 66 20 28 24 68 61 73 43 61 70 73 :if ($hasCaps
4b10: 4d 61 6e 20 3e 20 30 29 20 64 6f 3d 7b 0a 20 20 Man > 0) do={.
4b20: 20 20 20 20 20 20 3a 73 65 74 20 65 78 63 57 6c :set excWl
4b30: 61 6e 73 20 22 7c 7c 20 6e 61 6d 65 3d 77 6c 61 ans "|| name=wla
4b40: 6e 31 20 7c 7c 20 6e 61 6d 65 3d 77 6c 61 6e 32 n1 || name=wlan2
4b50: 22 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 ". }.
4b60: 3a 69 66 20 28 24 77 61 6e 50 6f 72 74 73 21 3d :if ($wanPorts!=
4b70: 22 22 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 "") do={.
4b80: 20 3a 6c 6f 63 61 6c 20 74 6d 70 57 61 6e 50 6f :local tmpWanPo
4b90: 72 74 73 20 22 22 3b 0a 20 20 20 20 20 20 20 20 rts "";.
4ba0: 3a 66 6f 72 65 61 63 68 20 69 20 69 6e 3d 24 77 :foreach i in=$w
4bb0: 61 6e 50 6f 72 74 73 20 64 6f 3d 7b 0a 20 20 20 anPorts do={.
4bc0: 20 20 20 20 20 20 20 3a 73 65 74 20 74 6d 70 57 :set tmpW
4bd0: 61 6e 50 6f 72 74 73 20 22 24 74 6d 70 57 61 6e anPorts "$tmpWan
4be0: 50 6f 72 74 73 20 7c 7c 20 6e 61 6d 65 3d 5c 22 Ports || name=\"
4bf0: 24 69 5c 22 22 3b 0a 20 20 20 20 20 20 20 20 7d $i\"";. }
4c00: 0a 20 20 20 20 20 20 20 20 24 61 64 64 43 4c 20 . $addCL
4c10: 28 22 20 3a 66 6f 72 65 61 63 68 20 6b 20 69 6e (" :foreach k in
4c20: 3d 5b 2f 69 6e 74 65 72 66 61 63 65 20 66 69 6e =[/interface fin
4c30: 64 20 77 68 65 72 65 20 21 28 73 6c 61 76 65 3d d where !(slave=
4c40: 79 65 73 20 24 65 78 63 57 6c 61 6e 73 20 24 74 yes $excWlans $t
4c50: 6d 70 57 61 6e 50 6f 72 74 73 20 7c 7c 20 70 61 mpWanPorts || pa
4c60: 73 73 74 68 72 6f 75 67 68 3d 79 65 73 20 7c 7c ssthrough=yes ||
4c70: 20 74 79 70 65 3d 6c 6f 6f 70 62 61 63 6b 20 7c type=loopback |
4c80: 7c 20 6e 61 6d 65 7e 5c 22 24 6c 61 6e 50 6f 72 | name~\"$lanPor
4c90: 74 5c 22 29 5d 20 64 6f 3d 7b 22 29 0a 20 20 20 t\")] do={").
4ca0: 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 } else={.
4cb0: 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 3a 66 $addCL (" :f
4cc0: 6f 72 65 61 63 68 20 6b 20 69 6e 3d 5b 2f 69 6e oreach k in=[/in
4cd0: 74 65 72 66 61 63 65 20 66 69 6e 64 20 77 68 65 terface find whe
4ce0: 72 65 20 21 28 73 6c 61 76 65 3d 79 65 73 20 24 re !(slave=yes $
4cf0: 65 78 63 57 6c 61 6e 73 29 5d 20 64 6f 3d 7b 22 excWlans)] do={"
4d00: 29 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 ). }.
4d10: 24 61 64 64 43 4c 20 28 22 20 20 20 3a 6c 6f 63 $addCL (" :loc
4d20: 61 6c 20 74 6d 70 50 6f 72 74 4e 61 6d 65 20 5b al tmpPortName [
4d30: 2f 69 6e 74 65 72 66 61 63 65 20 67 65 74 20 5c /interface get \
4d40: 24 6b 20 6e 61 6d 65 5d 3b 22 29 0a 20 20 20 20 $k name];").
4d50: 20 20 24 70 72 69 6e 74 44 65 62 75 67 20 28 24 $printDebug ($
4d60: 74 6d 70 50 6f 72 74 4e 61 6d 65 29 0a 20 20 20 tmpPortName).
4d70: 20 20 20 24 61 64 64 44 43 4c 20 28 22 61 64 64 $addDCL ("add
4d80: 20 62 72 69 64 67 65 20 70 6f 72 74 3a 20 5c 24 bridge port: \$
4d90: 74 6d 70 50 6f 72 74 4e 61 6d 65 22 29 0a 20 20 tmpPortName").
4da0: 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 $addCL ("
4db0: 3a 69 66 20 28 5c 24 62 4d 41 43 49 73 53 65 74 :if (\$bMACIsSet
4dc0: 20 3d 20 30 29 20 64 6f 3d 7b 22 29 0a 20 20 20 = 0) do={").
4dd0: 20 20 20 24 61 64 64 44 43 4c 20 28 22 5c 24 5b $addDCL ("\$[
4de0: 2f 69 6e 74 65 72 66 61 63 65 20 67 65 74 20 5c /interface get \
4df0: 24 6b 20 74 79 70 65 5d 22 29 0a 20 20 20 20 20 $k type]").
4e00: 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 20 3a $addCL (" :
4e10: 69 66 20 28 5b 2f 69 6e 74 65 72 66 61 63 65 20 if ([/interface
4e20: 67 65 74 20 5c 24 6b 20 74 79 70 65 5d 20 3d 20 get \$k type] =
4e30: 5c 22 65 74 68 65 72 5c 22 29 20 64 6f 3d 7b 22 \"ether\") do={"
4e40: 29 0a 20 20 20 20 20 20 24 61 64 64 44 43 4c 20 ). $addDCL
4e50: 28 22 5c 24 5b 2f 69 6e 74 65 72 66 61 63 65 20 ("\$[/interface
4e60: 67 65 74 20 5c 24 74 6d 70 50 6f 72 74 4e 61 6d get \$tmpPortNam
4e70: 65 20 6d 61 63 2d 61 64 64 72 65 73 73 5d 22 29 e mac-address]")
4e80: 0a 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 . $addCL ("
4e90: 20 20 20 20 20 20 20 2f 69 6e 74 65 72 66 61 63 /interfac
4ea0: 65 20 62 72 69 64 67 65 20 73 65 74 20 5c 22 24 e bridge set \"$
4eb0: 6c 61 6e 50 6f 72 74 5c 22 20 61 75 74 6f 2d 6d lanPort\" auto-m
4ec0: 61 63 3d 6e 6f 20 61 64 6d 69 6e 2d 6d 61 63 3d ac=no admin-mac=
4ed0: 5b 2f 69 6e 74 65 72 66 61 63 65 20 67 65 74 20 [/interface get
4ee0: 5c 24 74 6d 70 50 6f 72 74 4e 61 6d 65 20 6d 61 \$tmpPortName ma
4ef0: 63 2d 61 64 64 72 65 73 73 5d 3b 22 29 0a 20 20 c-address];").
4f00: 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 $addCL ("
4f10: 20 20 20 20 3a 73 65 74 20 62 4d 41 43 49 73 53 :set bMACIsS
4f20: 65 74 20 31 3b 22 29 0a 20 20 20 20 20 20 24 61 et 1;"). $a
4f30: 64 64 43 4c 20 28 22 20 20 20 20 20 7d 22 29 0a ddCL (" }").
4f40: 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 $addCL ("
4f50: 20 20 7d 22 29 0a 20 20 20 20 20 20 24 61 64 64 }"). $add
4f60: 43 4c 20 28 22 20 20 20 20 20 3a 69 66 20 28 28 CL (" :if ((
4f70: 5b 2f 69 6e 74 65 72 66 61 63 65 20 67 65 74 20 [/interface get
4f80: 5c 24 6b 20 74 79 70 65 5d 20 21 3d 20 5c 22 70 \$k type] != \"p
4f90: 70 70 2d 6f 75 74 5c 22 29 20 26 26 20 28 5b 2f pp-out\") && ([/
4fa0: 69 6e 74 65 72 66 61 63 65 20 67 65 74 20 5c 24 interface get \$
4fb0: 6b 20 74 79 70 65 5d 20 21 3d 20 5c 22 6c 74 65 k type] != \"lte
4fc0: 5c 22 29 29 20 64 6f 3d 7b 22 29 0a 20 20 20 20 \")) do={").
4fd0: 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 20 $addCL ("
4fe0: 20 20 2f 69 6e 74 65 72 66 61 63 65 20 62 72 69 /interface bri
4ff0: 64 67 65 20 70 6f 72 74 22 29 0a 20 20 20 20 20 dge port").
5000: 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 20 20 $addCL ("
5010: 20 20 20 61 64 64 20 62 72 69 64 67 65 3d 24 6c add bridge=$l
5020: 61 6e 50 6f 72 74 20 69 6e 74 65 72 66 61 63 65 anPort interface
5030: 3d 5c 24 74 6d 70 50 6f 72 74 4e 61 6d 65 20 63 =\$tmpPortName c
5040: 6f 6d 6d 65 6e 74 3d 64 65 66 63 6f 6e 66 3b 22 omment=defconf;"
5050: 29 0a 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 ). $addCL (
5060: 22 20 20 20 20 20 7d 22 29 0a 20 20 20 20 20 20 " }").
5070: 24 61 64 64 43 4c 20 28 22 20 20 20 7d 22 29 0a $addCL (" }").
5080: 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 3a 69 66 }. }.. :if
5090: 20 28 24 64 65 66 63 6f 6e 66 4d 6f 64 65 20 3d ($defconfMode =
50a0: 20 22 22 20 7c 7c 20 24 64 65 66 63 6f 6e 66 4d "" || $defconfM
50b0: 6f 64 65 20 3d 20 6e 69 6c 29 20 64 6f 3d 7b 0a ode = nil) do={.
50c0: 20 20 20 20 23 20 44 48 43 50 20 4d 6f 64 65 73 # DHCP Modes
50d0: 3a 0a 20 20 20 20 23 20 20 20 30 20 2d 20 6e 6f :. # 0 - no
50e0: 20 64 68 63 70 20 63 6f 6e 66 69 67 75 72 61 74 dhcp configurat
50f0: 69 6f 6e 20 6f 6e 20 6c 61 6e 50 6f 72 74 0a 20 ion on lanPort.
5100: 20 20 20 23 20 20 20 31 20 2d 20 64 68 63 70 20 # 1 - dhcp
5110: 73 65 72 76 65 72 20 6f 6e 20 6c 61 6e 50 6f 72 server on lanPor
5120: 74 0a 20 20 20 20 23 20 20 20 32 20 2d 20 64 68 t. # 2 - dh
5130: 63 70 20 63 6c 69 65 6e 74 20 6f 6e 20 6c 61 6e cp client on lan
5140: 50 6f 72 74 0a 20 20 20 20 3a 69 66 20 28 24 64 Port. :if ($d
5150: 68 63 70 45 6e 61 62 6c 65 64 20 3d 20 31 29 20 hcpEnabled = 1)
5160: 64 6f 3d 7b 0a 20 20 20 20 20 20 24 61 64 64 44 do={. $addD
5170: 43 4c 20 28 22 73 65 74 74 69 6e 67 20 44 48 43 CL ("setting DHC
5180: 50 20 6d 6f 64 65 3a 20 24 64 68 63 70 4d 6f 64 P mode: $dhcpMod
5190: 65 22 29 0a 20 20 20 20 20 20 3a 69 66 20 28 24 e"). :if ($
51a0: 64 68 63 70 4d 6f 64 65 20 3d 20 32 29 20 64 6f dhcpMode = 2) do
51b0: 3d 7b 0a 20 20 20 20 20 20 20 20 24 61 64 64 44 ={. $addD
51c0: 4c 20 28 22 23 7c 20 20 20 20 20 44 48 43 50 20 L ("#| DHCP
51d0: 43 6c 69 65 6e 74 3a 20 65 6e 61 62 6c 65 64 20 Client: enabled
51e0: 6f 6e 20 24 6c 61 6e 50 6f 72 74 20 28 4c 41 4e on $lanPort (LAN
51f0: 20 70 6f 72 74 29 3b 22 29 0a 20 20 20 20 20 20 port);").
5200: 20 20 24 61 64 64 43 4c 20 28 22 20 20 2f 69 70 $addCL (" /ip
5210: 20 64 68 63 70 2d 63 6c 69 65 6e 74 20 61 64 64 dhcp-client add
5220: 20 69 6e 74 65 72 66 61 63 65 3d 24 6c 61 6e 50 interface=$lanP
5230: 6f 72 74 20 64 69 73 61 62 6c 65 64 3d 6e 6f 20 ort disabled=no
5240: 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e comment=\"defcon
5250: 66 5c 22 3b 22 29 0a 20 20 20 20 20 20 7d 20 65 f\";"). } e
5260: 6c 73 65 3d 7b 0a 20 20 20 20 20 20 20 20 3a 69 lse={. :i
5270: 66 20 28 24 64 68 63 70 4d 6f 64 65 20 3d 20 31 f ($dhcpMode = 1
5280: 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 20 ) do={.
5290: 20 24 61 64 64 44 4c 20 28 22 23 7c 20 20 20 20 $addDL ("#|
52a0: 20 49 50 20 61 64 64 72 65 73 73 20 24 69 70 4e IP address $ipN
52b0: 65 74 77 6f 72 6b 2e 31 2f 32 34 20 69 73 20 73 etwork.1/24 is s
52c0: 65 74 20 6f 6e 20 24 6c 61 6e 50 6f 72 74 20 28 et on $lanPort (
52d0: 4c 41 4e 20 70 6f 72 74 29 22 29 0a 20 20 20 20 LAN port)").
52e0: 20 20 20 20 20 20 24 61 64 64 44 4c 20 22 23 7c $addDL "#|
52f0: 20 20 20 20 20 44 48 43 50 20 53 65 72 76 65 72 DHCP Server
5300: 3a 20 65 6e 61 62 6c 65 64 3b 22 0a 20 20 20 20 : enabled;".
5310: 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 $addCL ("
5320: 20 20 2f 69 70 20 70 6f 6f 6c 20 61 64 64 20 6e /ip pool add n
5330: 61 6d 65 3d 5c 22 64 65 66 61 75 6c 74 2d 64 68 ame=\"default-dh
5340: 63 70 5c 22 20 72 61 6e 67 65 73 3d 24 69 70 4e cp\" ranges=$ipN
5350: 65 74 77 6f 72 6b 2e 31 30 2d 24 69 70 4e 65 74 etwork.10-$ipNet
5360: 77 6f 72 6b 2e 32 35 34 3b 22 29 0a 20 20 20 20 work.254;").
5370: 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 $addCL ("
5380: 20 20 2f 69 70 20 64 68 63 70 2d 73 65 72 76 65 /ip dhcp-serve
5390: 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 24 61 r"). $a
53a0: 64 64 43 4c 20 28 22 20 20 20 20 20 61 64 64 20 ddCL (" add
53b0: 6e 61 6d 65 3d 64 65 66 63 6f 6e 66 20 61 64 64 name=defconf add
53c0: 72 65 73 73 2d 70 6f 6f 6c 3d 5c 22 64 65 66 61 ress-pool=\"defa
53d0: 75 6c 74 2d 64 68 63 70 5c 22 20 69 6e 74 65 72 ult-dhcp\" inter
53e0: 66 61 63 65 3d 24 6c 61 6e 50 6f 72 74 20 64 69 face=$lanPort di
53f0: 73 61 62 6c 65 64 3d 6e 6f 3b 22 29 0a 20 20 20 sabled=no;").
5400: 20 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 $addCL ("
5410: 20 20 20 2f 69 70 20 64 68 63 70 2d 73 65 72 76 /ip dhcp-serv
5420: 65 72 20 6e 65 74 77 6f 72 6b 22 29 0a 20 20 20 er network").
5430: 20 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 $addCL ("
5440: 20 20 20 20 20 61 64 64 20 61 64 64 72 65 73 73 add address
5450: 3d 24 69 70 4e 65 74 77 6f 72 6b 2e 30 2f 32 34 =$ipNetwork.0/24
5460: 20 67 61 74 65 77 61 79 3d 24 69 70 4e 65 74 77 gateway=$ipNetw
5470: 6f 72 6b 2e 31 20 64 6e 73 2d 73 65 72 76 65 72 ork.1 dns-server
5480: 3d 24 69 70 4e 65 74 77 6f 72 6b 2e 31 20 63 6f =$ipNetwork.1 co
5490: 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 5c mment=\"defconf\
54a0: 22 3b 22 29 0a 20 20 20 20 20 20 20 20 20 20 24 ";"). $
54b0: 61 64 64 43 4c 20 28 22 20 20 2f 69 70 20 61 64 addCL (" /ip ad
54c0: 64 72 65 73 73 20 61 64 64 20 61 64 64 72 65 73 dress add addres
54d0: 73 3d 24 69 70 4e 65 74 77 6f 72 6b 2e 31 2f 32 s=$ipNetwork.1/2
54e0: 34 20 69 6e 74 65 72 66 61 63 65 3d 24 6c 61 6e 4 interface=$lan
54f0: 50 6f 72 74 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 Port comment=\"d
5500: 65 66 63 6f 6e 66 5c 22 3b 22 29 0a 20 20 20 20 efconf\";").
5510: 20 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 } else={.
5520: 20 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 $addCL ("
5530: 20 20 2f 69 70 20 61 64 64 72 65 73 73 20 61 64 /ip address ad
5540: 64 20 61 64 64 72 65 73 73 3d 24 69 70 4e 65 74 d address=$ipNet
5550: 77 6f 72 6b 2e 31 2f 32 34 20 69 6e 74 65 72 66 work.1/24 interf
5560: 61 63 65 3d 24 6c 61 6e 50 6f 72 74 20 63 6f 6d ace=$lanPort com
5570: 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 5c 22 ment=\"defconf\"
5580: 3b 22 29 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 ;"). }.
5590: 20 20 20 20 7d 0a 20 20 20 20 7d 20 65 6c 73 65 }. } else
55a0: 3d 7b 0a 20 20 20 20 20 20 24 61 64 64 44 4c 20 ={. $addDL
55b0: 28 22 23 7c 20 20 20 20 20 49 50 20 61 64 64 72 ("#| IP addr
55c0: 65 73 73 20 24 69 70 4e 65 74 77 6f 72 6b 2e 31 ess $ipNetwork.1
55d0: 2f 32 34 20 69 73 20 73 65 74 20 6f 6e 20 24 6c /24 is set on $l
55e0: 61 6e 50 6f 72 74 20 28 4c 41 4e 20 70 6f 72 74 anPort (LAN port
55f0: 29 22 29 0a 20 20 20 20 20 20 24 61 64 64 43 4c )"). $addCL
5600: 20 28 22 20 20 2f 69 70 20 61 64 64 72 65 73 73 (" /ip address
5610: 20 61 64 64 20 61 64 64 72 65 73 73 3d 24 69 70 add address=$ip
5620: 4e 65 74 77 6f 72 6b 2e 31 2f 32 34 20 69 6e 74 Network.1/24 int
5630: 65 72 66 61 63 65 3d 24 6c 61 6e 50 6f 72 74 20 erface=$lanPort
5640: 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e comment=\"defcon
5650: 66 5c 22 3b 22 29 0a 20 20 20 20 7d 0a 20 20 7d f\";"). }. }
5660: 20 65 6c 73 65 3d 7b 0a 20 20 20 20 23 20 73 65 else={. # se
5670: 74 20 49 50 73 20 66 6f 72 20 77 36 30 47 20 6b t IPs for w60G k
5680: 69 74 0a 20 20 20 20 3a 69 66 20 28 24 64 65 66 it. :if ($def
5690: 63 6f 6e 66 4d 6f 64 65 20 3d 20 22 6d 61 73 74 confMode = "mast
56a0: 65 72 22 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 er") do={.
56b0: 24 61 64 64 44 4c 20 28 22 23 7c 20 20 20 20 20 $addDL ("#|
56c0: 49 50 20 61 64 64 72 65 73 73 20 24 69 70 4e 65 IP address $ipNe
56d0: 74 77 6f 72 6b 2e 32 2f 32 34 20 69 73 20 73 65 twork.2/24 is se
56e0: 74 20 6f 6e 20 24 6c 61 6e 50 6f 72 74 20 22 29 t on $lanPort ")
56f0: 0a 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 . $addCL ("
5700: 20 20 2f 69 70 20 61 64 64 72 65 73 73 20 61 64 /ip address ad
5710: 64 20 61 64 64 72 65 73 73 3d 24 69 70 4e 65 74 d address=$ipNet
5720: 77 6f 72 6b 2e 32 2f 32 34 20 69 6e 74 65 72 66 work.2/24 interf
5730: 61 63 65 3d 24 6c 61 6e 50 6f 72 74 20 63 6f 6d ace=$lanPort com
5740: 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 5c 22 ment=\"defconf\"
5750: 3b 22 29 0a 20 20 20 20 7d 0a 20 20 20 20 3a 69 ;"). }. :i
5760: 66 20 28 24 64 65 66 63 6f 6e 66 4d 6f 64 65 20 f ($defconfMode
5770: 3d 20 22 73 6c 61 76 65 22 29 20 64 6f 3d 7b 0a = "slave") do={.
5780: 20 20 20 20 20 20 24 61 64 64 44 4c 20 28 22 23 $addDL ("#
5790: 7c 20 20 20 20 20 49 50 20 61 64 64 72 65 73 73 | IP address
57a0: 20 24 69 70 4e 65 74 77 6f 72 6b 2e 33 2f 32 34 $ipNetwork.3/24
57b0: 20 69 73 20 73 65 74 20 6f 6e 20 24 6c 61 6e 50 is set on $lanP
57c0: 6f 72 74 20 22 29 0a 20 20 20 20 20 20 24 61 64 ort "). $ad
57d0: 64 43 4c 20 28 22 20 20 2f 69 70 20 61 64 64 72 dCL (" /ip addr
57e0: 65 73 73 20 61 64 64 20 61 64 64 72 65 73 73 3d ess add address=
57f0: 24 69 70 4e 65 74 77 6f 72 6b 2e 33 2f 32 34 20 $ipNetwork.3/24
5800: 69 6e 74 65 72 66 61 63 65 3d 24 6c 61 6e 50 6f interface=$lanPo
5810: 72 74 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 rt comment=\"def
5820: 63 6f 6e 66 5c 22 3b 22 29 0a 20 20 20 20 7d 0a conf\";"). }.
5830: 20 20 7d 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d }.}..#--------
5840: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5850: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5860: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5870: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5880: 2d 2d 2d 2d 2d 2d 2d 0a 23 20 61 70 70 6c 79 20 -------.# apply
5890: 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 72 65 configuration re
58a0: 6c 61 74 65 64 20 74 6f 20 57 41 4e 20 70 72 6f lated to WAN pro
58b0: 74 65 63 74 69 6f 6e 0a 23 2d 2d 2d 2d 2d 2d 2d tection.#-------
58c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
58d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
58e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
58f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5900: 2d 2d 2d 2d 2d 2d 2d 2d 0a 3a 67 6c 6f 62 61 6c --------.:global
5910: 20 73 65 74 57 61 6e 50 6f 72 74 20 64 6f 3d 7b setWanPort do={
5920: 0a 20 20 23 61 63 63 65 73 73 20 74 6f 20 67 6c . #access to gl
5930: 6f 62 61 6c 20 66 75 6e 63 73 0a 20 20 3a 67 6c obal funcs. :gl
5940: 6f 62 61 6c 20 61 64 64 43 4c 3b 0a 20 20 3a 67 obal addCL;. :g
5950: 6c 6f 62 61 6c 20 61 64 64 44 4c 3b 0a 20 20 3a lobal addDL;. :
5960: 67 6c 6f 62 61 6c 20 64 68 63 70 45 6e 61 62 6c global dhcpEnabl
5970: 65 64 3b 0a 20 20 3a 67 6c 6f 62 61 6c 20 6c 74 ed;. :global lt
5980: 65 44 68 63 70 3b 0a 20 20 3a 67 6c 6f 62 61 6c eDhcp;. :global
5990: 20 69 70 76 36 45 6e 61 62 6c 65 64 3b 0a 0a 20 ipv6Enabled;..
59a0: 20 24 61 64 64 44 4c 20 28 22 23 7c 20 57 41 4e $addDL ("#| WAN
59b0: 20 28 67 61 74 65 77 61 79 29 20 43 6f 6e 66 69 (gateway) Confi
59c0: 67 75 72 61 74 69 6f 6e 3a 22 29 0a 20 20 23 20 guration:"). #
59d0: 2d 2d 2d 2d 2d 2d 2d 20 75 73 65 20 44 65 74 4e ------- use DetN
59e0: 65 74 20 74 6f 20 64 65 74 65 63 74 20 57 41 4e et to detect WAN
59f0: 2f 4c 41 4e 20 70 6f 72 74 73 20 2d 2d 2d 2d 2d /LAN ports -----
5a00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5a10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 3a ------------. :
5a20: 69 66 20 28 24 75 73 65 44 65 74 4e 65 74 20 3d if ($useDetNet =
5a30: 20 31 29 20 64 6f 3d 7b 0a 20 20 20 20 24 61 64 1) do={. $ad
5a40: 64 43 4c 20 28 22 20 2f 69 6e 74 65 72 66 61 63 dCL (" /interfac
5a50: 65 20 64 65 74 65 63 74 2d 69 6e 74 65 72 6e 65 e detect-interne
5a60: 74 20 73 65 74 20 64 65 74 65 63 74 2d 69 6e 74 t set detect-int
5a70: 65 72 66 61 63 65 2d 6c 69 73 74 3d 61 6c 6c 22 erface-list=all"
5a80: 29 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 ). $addCL ("
5a90: 2f 69 6e 74 65 72 66 61 63 65 20 64 65 74 65 63 /interface detec
5aa0: 74 2d 69 6e 74 65 72 6e 65 74 20 73 65 74 20 6c t-internet set l
5ab0: 61 6e 2d 69 6e 74 65 72 66 61 63 65 2d 6c 69 73 an-interface-lis
5ac0: 74 3d 4c 41 4e 22 29 0a 20 20 20 20 24 61 64 64 t=LAN"). $add
5ad0: 43 4c 20 28 22 20 2f 69 6e 74 65 72 66 61 63 65 CL (" /interface
5ae0: 20 64 65 74 65 63 74 2d 69 6e 74 65 72 6e 65 74 detect-internet
5af0: 20 73 65 74 20 77 61 6e 2d 69 6e 74 65 72 66 61 set wan-interfa
5b00: 63 65 2d 6c 69 73 74 3d 57 41 4e 22 29 0a 20 20 ce-list=WAN").
5b10: 20 20 24 61 64 64 43 4c 20 28 22 20 2f 69 6e 74 $addCL (" /int
5b20: 65 72 66 61 63 65 20 64 65 74 65 63 74 2d 69 6e erface detect-in
5b30: 74 65 72 6e 65 74 20 73 65 74 20 69 6e 74 65 72 ternet set inter
5b40: 6e 65 74 2d 69 6e 74 65 72 66 61 63 65 2d 6c 69 net-interface-li
5b50: 73 74 3d 57 41 4e 22 29 0a 0a 20 20 20 20 24 61 st=WAN").. $a
5b60: 64 64 44 4c 20 28 22 23 7c 20 20 20 20 20 67 61 ddDL ("#| ga
5b70: 74 65 77 61 79 3a 20 20 61 75 74 6f 20 64 65 74 teway: auto det
5b80: 65 63 74 65 64 3b 22 29 0a 0a 20 20 7d 20 65 6c ected;").. } el
5b90: 73 65 3d 7b 0a 20 20 20 20 23 20 6f 6c 64 20 73 se={. # old s
5ba0: 74 79 6c 65 20 6d 61 6e 75 61 6c 20 57 41 4e 2f tyle manual WAN/
5bb0: 4c 41 4e 20 70 6f 72 74 20 64 65 66 69 6e 69 74 LAN port definit
5bc0: 69 6f 6e 0a 20 20 20 20 3a 69 66 20 28 24 77 61 ion. :if ($wa
5bd0: 6e 50 6f 72 74 73 20 21 3d 20 22 22 29 20 64 6f nPorts != "") do
5be0: 3d 7b 0a 20 20 20 20 20 20 3a 6c 6f 63 61 6c 20 ={. :local
5bf0: 74 6d 70 57 61 6e 50 6f 72 74 73 20 22 22 3b 0a tmpWanPorts "";.
5c00: 0a 20 20 20 20 20 20 3a 66 6f 72 65 61 63 68 20 . :foreach
5c10: 69 20 69 6e 3d 24 77 61 6e 50 6f 72 74 73 20 64 i in=$wanPorts d
5c20: 6f 3d 7b 0a 20 20 20 20 20 20 20 20 3a 73 65 74 o={. :set
5c30: 20 74 6d 70 57 61 6e 50 6f 72 74 73 20 28 24 74 tmpWanPorts ($t
5c40: 6d 70 57 61 6e 50 6f 72 74 73 20 2e 20 24 69 20 mpWanPorts . $i
5c50: 2e 20 22 3b 22 29 3b 0a 20 20 20 20 20 20 7d 0a . ";");. }.
5c60: 20 20 20 20 20 20 23 20 4e 4f 54 45 3a 20 73 74 # NOTE: st
5c70: 61 72 74 69 6e 67 20 66 72 6f 6d 20 76 36 2e 34 arting from v6.4
5c80: 31 20 61 64 64 2d 64 65 66 61 75 6c 74 2d 72 6f 1 add-default-ro
5c90: 75 74 65 3d 79 65 73 20 75 73 65 2d 70 65 65 72 ute=yes use-peer
5ca0: 2d 64 6e 73 3d 79 65 73 20 69 73 20 62 79 20 64 -dns=yes is by d
5cb0: 65 66 61 75 6c 74 0a 20 20 20 20 20 20 23 20 44 efault. # D
5cc0: 48 43 50 20 63 6c 69 65 6e 74 20 69 73 20 61 64 HCP client is ad
5cd0: 64 65 64 20 64 79 6e 61 6d 69 63 61 6c 6c 79 0a ded dynamically.
5ce0: 20 20 20 20 20 20 3a 69 66 20 28 20 24 69 73 4c :if ( $isL
5cf0: 74 65 20 3d 20 31 29 20 64 6f 3d 7b 0a 20 20 20 te = 1) do={.
5d00: 20 20 20 20 20 23 24 61 64 64 43 4c 20 28 22 20 #$addCL ("
5d10: 20 20 20 20 2f 69 6e 74 65 72 66 61 63 65 20 6c /interface l
5d20: 74 65 20 73 65 74 20 5b 66 69 6e 64 5d 20 61 64 te set [find] ad
5d30: 64 2d 64 65 66 61 75 6c 74 2d 72 6f 75 74 65 3d d-default-route=
5d40: 79 65 73 20 75 73 65 2d 70 65 65 72 2d 64 6e 73 yes use-peer-dns
5d50: 3d 79 65 73 3b 22 29 0a 20 20 20 20 20 20 7d 20 =yes;"). }
5d60: 65 6c 73 65 3d 7b 0a 20 20 20 20 20 20 20 20 3a else={. :
5d70: 69 66 20 28 20 24 69 73 4c 74 65 20 3d 20 30 20 if ( $isLte = 0
5d80: 7c 7c 20 24 6c 74 65 44 68 63 70 20 3d 20 31 29 || $lteDhcp = 1)
5d90: 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 20 20 do={.
5da0: 3a 69 66 20 28 20 24 64 68 63 70 45 6e 61 62 6c :if ( $dhcpEnabl
5db0: 65 64 20 3d 20 31 29 20 64 6f 3d 7b 0a 20 20 20 ed = 1) do={.
5dc0: 20 20 20 20 20 20 20 20 20 3a 69 66 20 28 24 70 :if ($p
5dd0: 70 70 41 73 57 41 4e 20 3d 20 31 29 20 64 6f 3d ppAsWAN = 1) do=
5de0: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 {.
5df0: 3a 66 6f 72 65 61 63 68 20 69 20 69 6e 20 24 77 :foreach i in $w
5e00: 61 6e 50 6f 72 74 73 20 64 6f 3d 7b 0a 20 20 20 anPorts do={.
5e10: 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 66 :if
5e20: 20 28 21 28 24 69 7e 22 70 70 70 2d 6f 75 74 22 (!($i~"ppp-out"
5e30: 29 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 )) do={.
5e40: 20 20 20 20 20 20 20 20 20 20 24 61 64 64 43 4c $addCL
5e50: 20 28 22 20 20 20 2f 69 70 20 64 68 63 70 2d 63 (" /ip dhcp-c
5e60: 6c 69 65 6e 74 20 61 64 64 20 69 6e 74 65 72 66 lient add interf
5e70: 61 63 65 3d 24 69 20 64 69 73 61 62 6c 65 64 3d ace=$i disabled=
5e80: 6e 6f 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 no comment=\"def
5e90: 63 6f 6e 66 5c 22 3b 22 29 0a 20 20 20 20 20 20 conf\";").
5ea0: 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 }.
5eb0: 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 }.
5ec0: 20 20 20 20 20 20 20 20 20 20 23 24 61 64 64 43 #$addC
5ed0: 4c 20 28 22 20 20 20 2f 69 70 20 64 68 63 70 2d L (" /ip dhcp-
5ee0: 63 6c 69 65 6e 74 20 61 64 64 20 69 6e 74 65 72 client add inter
5ef0: 66 61 63 65 3d 65 74 68 65 72 31 20 64 69 73 61 face=ether1 disa
5f00: 62 6c 65 64 3d 6e 6f 20 63 6f 6d 6d 65 6e 74 3d bled=no comment=
5f10: 5c 22 64 65 66 63 6f 6e 66 5c 22 3b 22 29 0a 20 \"defconf\";").
5f20: 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 } els
5f30: 65 3d 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 e={.
5f40: 20 20 3a 66 6f 72 65 61 63 68 20 69 20 69 6e 3d :foreach i in=
5f50: 24 77 61 6e 50 6f 72 74 73 20 64 6f 3d 7b 0a 20 $wanPorts do={.
5f60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 $
5f70: 61 64 64 43 4c 20 28 22 20 20 20 2f 69 70 20 64 addCL (" /ip d
5f80: 68 63 70 2d 63 6c 69 65 6e 74 20 61 64 64 20 69 hcp-client add i
5f90: 6e 74 65 72 66 61 63 65 3d 24 69 20 64 69 73 61 nterface=$i disa
5fa0: 62 6c 65 64 3d 6e 6f 20 63 6f 6d 6d 65 6e 74 3d bled=no comment=
5fb0: 5c 22 64 65 66 63 6f 6e 66 5c 22 3b 22 29 0a 20 \"defconf\";").
5fc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 }.
5fd0: 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 }.
5fe0: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 }.
5ff0: 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 }. }.
6000: 20 24 61 64 64 44 4c 20 28 22 23 7c 20 20 20 20 $addDL ("#|
6010: 20 67 61 74 65 77 61 79 3a 20 20 20 20 20 20 20 gateway:
6020: 24 74 6d 70 57 61 6e 50 6f 72 74 73 22 29 0a 0a $tmpWanPorts")..
6030: 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 $addCL ("
6040: 2f 69 6e 74 65 72 66 61 63 65 20 6c 69 73 74 20 /interface list
6050: 6d 65 6d 62 65 72 20 61 64 64 20 6c 69 73 74 3d member add list=
6060: 4c 41 4e 20 69 6e 74 65 72 66 61 63 65 3d 24 6c LAN interface=$l
6070: 61 6e 50 6f 72 74 20 63 6f 6d 6d 65 6e 74 3d 5c anPort comment=\
6080: 22 64 65 66 63 6f 6e 66 5c 22 22 29 0a 20 20 20 "defconf\"").
6090: 20 20 20 3a 66 6f 72 65 61 63 68 20 69 20 69 6e :foreach i in
60a0: 3d 24 77 61 6e 50 6f 72 74 73 20 64 6f 3d 7b 0a =$wanPorts do={.
60b0: 20 20 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 $addCL (
60c0: 22 20 2f 69 6e 74 65 72 66 61 63 65 20 6c 69 73 " /interface lis
60d0: 74 20 6d 65 6d 62 65 72 20 61 64 64 20 6c 69 73 t member add lis
60e0: 74 3d 57 41 4e 20 69 6e 74 65 72 66 61 63 65 3d t=WAN interface=
60f0: 24 69 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 $i comment=\"def
6100: 63 6f 6e 66 5c 22 22 29 0a 20 20 20 20 20 20 7d conf\""). }
6110: 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 23 2d . }. }.. #-
6120: 2d 2d 2d 2d 2d 2d 2d 2d 20 53 65 74 20 46 69 72 -------- Set Fir
6130: 65 77 61 6c 6c 20 61 6e 64 20 57 41 4e 20 70 72 ewall and WAN pr
6140: 6f 74 65 63 74 69 6f 6e 20 2d 2d 2d 2d 2d 2d 2d otection -------
6150: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
6160: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 20 24 ------------. $
6170: 61 64 64 44 4c 20 22 23 7c 20 20 20 20 20 69 70 addDL "#| ip
6180: 34 20 66 69 72 65 77 61 6c 6c 3a 20 20 65 6e 61 4 firewall: ena
6190: 62 6c 65 64 3b 22 0a 20 20 3a 69 66 20 28 24 69 bled;". :if ($i
61a0: 70 76 36 45 6e 61 62 6c 65 64 20 3d 20 31 29 20 pv6Enabled = 1)
61b0: 64 6f 3d 7b 0a 20 20 20 20 24 61 64 64 44 4c 20 do={. $addDL
61c0: 22 23 7c 20 20 20 20 20 69 70 36 20 66 69 72 65 "#| ip6 fire
61d0: 77 61 6c 6c 3a 20 20 65 6e 61 62 6c 65 64 3b 22 wall: enabled;"
61e0: 0a 20 20 7d 0a 20 20 24 61 64 64 44 4c 20 22 23 . }. $addDL "#
61f0: 7c 20 20 20 20 20 4e 41 54 3a 20 20 20 65 6e 61 | NAT: ena
6200: 62 6c 65 64 3b 22 0a 20 20 3a 69 66 20 28 20 24 bled;". :if ( $
6210: 69 73 4c 74 65 20 3d 20 30 20 26 26 20 24 64 68 isLte = 0 && $dh
6220: 63 70 45 6e 61 62 6c 65 64 20 3d 20 31 29 20 64 cpEnabled = 1) d
6230: 6f 3d 7b 0a 20 20 20 20 24 61 64 64 44 4c 20 22 o={. $addDL "
6240: 23 7c 20 20 20 20 20 44 48 43 50 20 43 6c 69 65 #| DHCP Clie
6250: 6e 74 3a 20 65 6e 61 62 6c 65 64 3b 22 0a 20 20 nt: enabled;".
6260: 7d 0a 20 20 23 20 61 64 64 20 4e 41 54 0a 20 20 }. # add NAT.
6270: 24 61 64 64 43 4c 20 28 22 20 2f 69 70 20 66 69 $addCL (" /ip fi
6280: 72 65 77 61 6c 6c 20 6e 61 74 20 61 64 64 20 63 rewall nat add c
6290: 68 61 69 6e 3d 73 72 63 6e 61 74 20 6f 75 74 2d hain=srcnat out-
62a0: 69 6e 74 65 72 66 61 63 65 2d 6c 69 73 74 3d 57 interface-list=W
62b0: 41 4e 20 69 70 73 65 63 2d 70 6f 6c 69 63 79 3d AN ipsec-policy=
62c0: 6f 75 74 2c 6e 6f 6e 65 20 61 63 74 69 6f 6e 3d out,none action=
62d0: 6d 61 73 71 75 65 72 61 64 65 20 63 6f 6d 6d 65 masquerade comme
62e0: 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 3a 20 6d 61 nt=\"defconf: ma
62f0: 73 71 75 65 72 61 64 65 5c 22 22 29 0a 20 20 23 squerade\""). #
6300: 20 70 72 6f 74 65 63 74 20 57 41 4e 20 70 6f 72 protect WAN por
6310: 74 0a 20 20 24 61 64 64 43 4c 20 28 22 20 2f 69 t. $addCL (" /i
6320: 70 20 66 69 72 65 77 61 6c 6c 20 7b 22 29 0a 20 p firewall {").
6330: 20 24 61 64 64 43 4c 20 28 22 20 20 20 66 69 6c $addCL (" fil
6340: 74 65 72 20 61 64 64 20 63 68 61 69 6e 3d 69 6e ter add chain=in
6350: 70 75 74 20 61 63 74 69 6f 6e 3d 61 63 63 65 70 put action=accep
6360: 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 2d 73 74 61 t connection-sta
6370: 74 65 3d 65 73 74 61 62 6c 69 73 68 65 64 2c 72 te=established,r
6380: 65 6c 61 74 65 64 2c 75 6e 74 72 61 63 6b 65 64 elated,untracked
6390: 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f comment=\"defco
63a0: 6e 66 3a 20 61 63 63 65 70 74 20 65 73 74 61 62 nf: accept estab
63b0: 6c 69 73 68 65 64 2c 72 65 6c 61 74 65 64 2c 75 lished,related,u
63c0: 6e 74 72 61 63 6b 65 64 5c 22 22 29 0a 20 20 24 ntracked\""). $
63d0: 61 64 64 43 4c 20 28 22 20 20 20 66 69 6c 74 65 addCL (" filte
63e0: 72 20 61 64 64 20 63 68 61 69 6e 3d 69 6e 70 75 r add chain=inpu
63f0: 74 20 61 63 74 69 6f 6e 3d 64 72 6f 70 20 63 6f t action=drop co
6400: 6e 6e 65 63 74 69 6f 6e 2d 73 74 61 74 65 3d 69 nnection-state=i
6410: 6e 76 61 6c 69 64 20 63 6f 6d 6d 65 6e 74 3d 5c nvalid comment=\
6420: 22 64 65 66 63 6f 6e 66 3a 20 64 72 6f 70 20 69 "defconf: drop i
6430: 6e 76 61 6c 69 64 5c 22 22 29 0a 20 20 24 61 64 nvalid\""). $ad
6440: 64 43 4c 20 28 22 20 20 20 66 69 6c 74 65 72 20 dCL (" filter
6450: 61 64 64 20 63 68 61 69 6e 3d 69 6e 70 75 74 20 add chain=input
6460: 61 63 74 69 6f 6e 3d 61 63 63 65 70 74 20 70 72 action=accept pr
6470: 6f 74 6f 63 6f 6c 3d 69 63 6d 70 20 63 6f 6d 6d otocol=icmp comm
6480: 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 3a 20 61 ent=\"defconf: a
6490: 63 63 65 70 74 20 49 43 4d 50 5c 22 22 29 0a 20 ccept ICMP\"").
64a0: 20 24 61 64 64 43 4c 20 28 22 20 20 20 66 69 6c $addCL (" fil
64b0: 74 65 72 20 61 64 64 20 63 68 61 69 6e 3d 69 6e ter add chain=in
64c0: 70 75 74 20 61 63 74 69 6f 6e 3d 61 63 63 65 70 put action=accep
64d0: 74 20 64 73 74 2d 61 64 64 72 65 73 73 3d 31 32 t dst-address=12
64e0: 37 2e 30 2e 30 2e 31 20 63 6f 6d 6d 65 6e 74 3d 7.0.0.1 comment=
64f0: 5c 22 64 65 66 63 6f 6e 66 3a 20 61 63 63 65 70 \"defconf: accep
6500: 74 20 74 6f 20 6c 6f 63 61 6c 20 6c 6f 6f 70 62 t to local loopb
6510: 61 63 6b 20 28 66 6f 72 20 43 41 50 73 4d 41 4e ack (for CAPsMAN
6520: 29 5c 22 22 29 0a 20 20 23 24 61 64 64 43 4c 20 )\""). #$addCL
6530: 28 22 20 20 20 66 69 6c 74 65 72 20 61 64 64 20 (" filter add
6540: 63 68 61 69 6e 3d 69 6e 70 75 74 20 61 63 74 69 chain=input acti
6550: 6f 6e 3d 61 63 63 65 70 74 20 70 72 6f 74 6f 63 on=accept protoc
6560: 6f 6c 3d 74 63 70 20 64 73 74 2d 70 6f 72 74 3d ol=tcp dst-port=
6570: 38 32 39 31 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 8291 comment=\"d
6580: 65 66 63 6f 6e 66 3a 20 61 63 63 65 70 74 20 57 efconf: accept W
6590: 49 4e 42 4f 58 5c 22 22 29 0a 20 20 24 61 64 64 INBOX\""). $add
65a0: 43 4c 20 28 22 20 20 20 66 69 6c 74 65 72 20 61 CL (" filter a
65b0: 64 64 20 63 68 61 69 6e 3d 69 6e 70 75 74 20 61 dd chain=input a
65c0: 63 74 69 6f 6e 3d 64 72 6f 70 20 69 6e 2d 69 6e ction=drop in-in
65d0: 74 65 72 66 61 63 65 2d 6c 69 73 74 3d 21 4c 41 terface-list=!LA
65e0: 4e 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 N comment=\"defc
65f0: 6f 6e 66 3a 20 64 72 6f 70 20 61 6c 6c 20 6e 6f onf: drop all no
6600: 74 20 63 6f 6d 69 6e 67 20 66 72 6f 6d 20 4c 41 t coming from LA
6610: 4e 5c 22 22 29 0a 0a 20 20 23 20 61 64 64 20 66 N\"").. # add f
6620: 6f 72 77 61 72 64 20 63 68 61 69 6e 20 72 75 6c orward chain rul
6630: 65 73 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 es. $addCL ("
6640: 20 66 69 6c 74 65 72 20 61 64 64 20 63 68 61 69 filter add chai
6650: 6e 3d 66 6f 72 77 61 72 64 20 61 63 74 69 6f 6e n=forward action
6660: 3d 61 63 63 65 70 74 20 69 70 73 65 63 2d 70 6f =accept ipsec-po
6670: 6c 69 63 79 3d 69 6e 2c 69 70 73 65 63 20 63 6f licy=in,ipsec co
6680: 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 3a mment=\"defconf:
6690: 20 61 63 63 65 70 74 20 69 6e 20 69 70 73 65 63 accept in ipsec
66a0: 20 70 6f 6c 69 63 79 5c 22 22 29 0a 20 20 24 61 policy\""). $a
66b0: 64 64 43 4c 20 28 22 20 20 20 66 69 6c 74 65 72 ddCL (" filter
66c0: 20 61 64 64 20 63 68 61 69 6e 3d 66 6f 72 77 61 add chain=forwa
66d0: 72 64 20 61 63 74 69 6f 6e 3d 61 63 63 65 70 74 rd action=accept
66e0: 20 69 70 73 65 63 2d 70 6f 6c 69 63 79 3d 6f 75 ipsec-policy=ou
66f0: 74 2c 69 70 73 65 63 20 63 6f 6d 6d 65 6e 74 3d t,ipsec comment=
6700: 5c 22 64 65 66 63 6f 6e 66 3a 20 61 63 63 65 70 \"defconf: accep
6710: 74 20 6f 75 74 20 69 70 73 65 63 20 70 6f 6c 69 t out ipsec poli
6720: 63 79 5c 22 22 29 0a 20 20 24 61 64 64 43 4c 20 cy\""). $addCL
6730: 28 22 20 20 20 66 69 6c 74 65 72 20 61 64 64 20 (" filter add
6740: 63 68 61 69 6e 3d 66 6f 72 77 61 72 64 20 61 63 chain=forward ac
6750: 74 69 6f 6e 3d 66 61 73 74 74 72 61 63 6b 2d 63 tion=fasttrack-c
6760: 6f 6e 6e 65 63 74 69 6f 6e 20 63 6f 6e 6e 65 63 onnection connec
6770: 74 69 6f 6e 2d 73 74 61 74 65 3d 65 73 74 61 62 tion-state=estab
6780: 6c 69 73 68 65 64 2c 72 65 6c 61 74 65 64 20 63 lished,related c
6790: 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 omment=\"defconf
67a0: 3a 20 66 61 73 74 74 72 61 63 6b 5c 22 22 29 0a : fasttrack\"").
67b0: 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 66 69 $addCL (" fi
67c0: 6c 74 65 72 20 61 64 64 20 63 68 61 69 6e 3d 66 lter add chain=f
67d0: 6f 72 77 61 72 64 20 61 63 74 69 6f 6e 3d 61 63 orward action=ac
67e0: 63 65 70 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 2d cept connection-
67f0: 73 74 61 74 65 3d 65 73 74 61 62 6c 69 73 68 65 state=establishe
6800: 64 2c 72 65 6c 61 74 65 64 2c 75 6e 74 72 61 63 d,related,untrac
6810: 6b 65 64 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 ked comment=\"de
6820: 66 63 6f 6e 66 3a 20 61 63 63 65 70 74 20 65 73 fconf: accept es
6830: 74 61 62 6c 69 73 68 65 64 2c 72 65 6c 61 74 65 tablished,relate
6840: 64 2c 20 75 6e 74 72 61 63 6b 65 64 5c 22 22 29 d, untracked\"")
6850: 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 66 . $addCL (" f
6860: 69 6c 74 65 72 20 61 64 64 20 63 68 61 69 6e 3d ilter add chain=
6870: 66 6f 72 77 61 72 64 20 61 63 74 69 6f 6e 3d 64 forward action=d
6880: 72 6f 70 20 63 6f 6e 6e 65 63 74 69 6f 6e 2d 73 rop connection-s
6890: 74 61 74 65 3d 69 6e 76 61 6c 69 64 20 63 6f 6d tate=invalid com
68a0: 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 3a 20 ment=\"defconf:
68b0: 64 72 6f 70 20 69 6e 76 61 6c 69 64 5c 22 22 29 drop invalid\"")
68c0: 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 66 . $addCL (" f
68d0: 69 6c 74 65 72 20 61 64 64 20 63 68 61 69 6e 3d ilter add chain=
68e0: 66 6f 72 77 61 72 64 20 61 63 74 69 6f 6e 3d 64 forward action=d
68f0: 72 6f 70 20 63 6f 6e 6e 65 63 74 69 6f 6e 2d 73 rop connection-s
6900: 74 61 74 65 3d 6e 65 77 20 63 6f 6e 6e 65 63 74 tate=new connect
6910: 69 6f 6e 2d 6e 61 74 2d 73 74 61 74 65 3d 21 64 ion-nat-state=!d
6920: 73 74 6e 61 74 20 69 6e 2d 69 6e 74 65 72 66 61 stnat in-interfa
6930: 63 65 2d 6c 69 73 74 3d 57 41 4e 20 63 6f 6d 6d ce-list=WAN comm
6940: 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 3a 20 64 ent=\"defconf: d
6950: 72 6f 70 20 61 6c 6c 20 66 72 6f 6d 20 57 41 4e rop all from WAN
6960: 20 6e 6f 74 20 44 53 54 4e 41 54 65 64 5c 22 22 not DSTNATed\""
6970: 29 0a 20 20 24 61 64 64 43 4c 20 28 22 20 7d 22 ). $addCL (" }"
6980: 29 0a 0a 20 20 3a 69 66 20 28 24 69 70 76 36 45 ).. :if ($ipv6E
6990: 6e 61 62 6c 65 64 20 3d 20 31 29 20 64 6f 3d 7b nabled = 1) do={
69a0: 0a 20 20 20 20 23 20 42 61 64 20 61 64 64 72 65 . # Bad addre
69b0: 73 73 20 6c 69 73 74 0a 20 20 20 20 24 61 64 64 ss list. $add
69c0: 43 4c 20 28 22 20 2f 69 70 76 36 20 66 69 72 65 CL (" /ipv6 fire
69d0: 77 61 6c 6c 20 7b 22 29 0a 20 20 20 20 24 61 64 wall {"). $ad
69e0: 64 43 4c 20 28 22 20 20 20 61 64 64 72 65 73 73 dCL (" address
69f0: 2d 6c 69 73 74 20 61 64 64 20 6c 69 73 74 3d 62 -list add list=b
6a00: 61 64 5f 69 70 76 36 20 61 64 64 72 65 73 73 3d ad_ipv6 address=
6a10: 3a 3a 2f 31 32 38 20 63 6f 6d 6d 65 6e 74 3d 5c ::/128 comment=\
6a20: 22 64 65 66 63 6f 6e 66 3a 20 75 6e 73 70 65 63 "defconf: unspec
6a30: 69 66 69 65 64 20 61 64 64 72 65 73 73 5c 22 22 ified address\""
6a40: 29 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 ). $addCL ("
6a50: 20 20 61 64 64 72 65 73 73 2d 6c 69 73 74 20 61 address-list a
6a60: 64 64 20 6c 69 73 74 3d 62 61 64 5f 69 70 76 36 dd list=bad_ipv6
6a70: 20 61 64 64 72 65 73 73 3d 3a 3a 31 20 63 6f 6d address=::1 com
6a80: 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 3a 20 ment=\"defconf:
6a90: 6c 6f 5c 22 22 29 0a 20 20 20 20 24 61 64 64 43 lo\""). $addC
6aa0: 4c 20 28 22 20 20 20 61 64 64 72 65 73 73 2d 6c L (" address-l
6ab0: 69 73 74 20 61 64 64 20 6c 69 73 74 3d 62 61 64 ist add list=bad
6ac0: 5f 69 70 76 36 20 61 64 64 72 65 73 73 3d 66 65 _ipv6 address=fe
6ad0: 63 30 3a 3a 2f 31 30 20 63 6f 6d 6d 65 6e 74 3d c0::/10 comment=
6ae0: 5c 22 64 65 66 63 6f 6e 66 3a 20 73 69 74 65 2d \"defconf: site-
6af0: 6c 6f 63 61 6c 5c 22 22 29 0a 20 20 20 20 24 61 local\""). $a
6b00: 64 64 43 4c 20 28 22 20 20 20 61 64 64 72 65 73 ddCL (" addres
6b10: 73 2d 6c 69 73 74 20 61 64 64 20 6c 69 73 74 3d s-list add list=
6b20: 62 61 64 5f 69 70 76 36 20 61 64 64 72 65 73 73 bad_ipv6 address
6b30: 3d 3a 3a 66 66 66 66 3a 30 3a 30 2f 39 36 20 63 =::ffff:0:0/96 c
6b40: 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 omment=\"defconf
6b50: 3a 20 69 70 76 34 2d 6d 61 70 70 65 64 5c 22 22 : ipv4-mapped\""
6b60: 29 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 ). $addCL ("
6b70: 20 20 61 64 64 72 65 73 73 2d 6c 69 73 74 20 61 address-list a
6b80: 64 64 20 6c 69 73 74 3d 62 61 64 5f 69 70 76 36 dd list=bad_ipv6
6b90: 20 61 64 64 72 65 73 73 3d 3a 3a 2f 39 36 20 63 address=::/96 c
6ba0: 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 omment=\"defconf
6bb0: 3a 20 69 70 76 34 20 63 6f 6d 70 61 74 5c 22 22 : ipv4 compat\""
6bc0: 29 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 ). $addCL ("
6bd0: 20 20 61 64 64 72 65 73 73 2d 6c 69 73 74 20 61 address-list a
6be0: 64 64 20 6c 69 73 74 3d 62 61 64 5f 69 70 76 36 dd list=bad_ipv6
6bf0: 20 61 64 64 72 65 73 73 3d 31 30 30 3a 3a 2f 36 address=100::/6
6c00: 34 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 4 comment=\"defc
6c10: 6f 6e 66 3a 20 64 69 73 63 61 72 64 20 6f 6e 6c onf: discard onl
6c20: 79 20 5c 22 22 29 0a 20 20 20 20 24 61 64 64 43 y \""). $addC
6c30: 4c 20 28 22 20 20 20 61 64 64 72 65 73 73 2d 6c L (" address-l
6c40: 69 73 74 20 61 64 64 20 6c 69 73 74 3d 62 61 64 ist add list=bad
6c50: 5f 69 70 76 36 20 61 64 64 72 65 73 73 3d 32 30 _ipv6 address=20
6c60: 30 31 3a 64 62 38 3a 3a 2f 33 32 20 63 6f 6d 6d 01:db8::/32 comm
6c70: 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 3a 20 64 ent=\"defconf: d
6c80: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 5c 22 22 29 ocumentation\"")
6c90: 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 . $addCL ("
6ca0: 20 61 64 64 72 65 73 73 2d 6c 69 73 74 20 61 64 address-list ad
6cb0: 64 20 6c 69 73 74 3d 62 61 64 5f 69 70 76 36 20 d list=bad_ipv6
6cc0: 61 64 64 72 65 73 73 3d 32 30 30 31 3a 31 30 3a address=2001:10:
6cd0: 3a 2f 32 38 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 :/28 comment=\"d
6ce0: 65 66 63 6f 6e 66 3a 20 4f 52 43 48 49 44 5c 22 efconf: ORCHID\"
6cf0: 22 29 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 "). $addCL ("
6d00: 20 20 20 61 64 64 72 65 73 73 2d 6c 69 73 74 20 address-list
6d10: 61 64 64 20 6c 69 73 74 3d 62 61 64 5f 69 70 76 add list=bad_ipv
6d20: 36 20 61 64 64 72 65 73 73 3d 33 66 66 65 3a 3a 6 address=3ffe::
6d30: 2f 31 36 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 /16 comment=\"de
6d40: 66 63 6f 6e 66 3a 20 36 62 6f 6e 65 5c 22 22 29 fconf: 6bone\"")
6d50: 0a 0a 20 20 20 20 23 20 66 77 20 69 6e 70 75 74 .. # fw input
6d60: 0a 20 20 20 20 23 20 63 61 6e 20 63 61 75 73 65 . # can cause
6d70: 20 70 72 6f 62 6c 65 6d 73 2c 20 64 69 66 66 65 problems, diffe
6d80: 72 65 6e 74 20 4f 53 65 73 20 6f 72 69 67 69 6e rent OSes origin
6d90: 61 74 65 20 70 61 63 6b 65 74 20 77 69 74 68 20 ate packet with
6da0: 64 69 66 66 65 72 65 6e 74 20 74 74 6c 73 0a 20 different ttls.
6db0: 20 20 20 23 24 61 64 64 43 4c 20 28 22 20 20 20 #$addCL ("
6dc0: 66 69 6c 74 65 72 20 61 64 64 20 63 68 61 69 6e filter add chain
6dd0: 3d 69 6e 70 75 74 20 61 63 74 69 6f 6e 3d 64 72 =input action=dr
6de0: 6f 70 20 70 72 6f 74 6f 63 6f 6c 3d 69 63 6d 70 op protocol=icmp
6df0: 76 36 20 68 6f 70 2d 6c 69 6d 69 74 3d 6e 6f 74 v6 hop-limit=not
6e00: 2d 65 71 75 61 6c 3a 32 35 35 20 64 73 74 2d 61 -equal:255 dst-a
6e10: 64 64 72 65 73 73 3d 66 65 38 30 3a 3a 2f 31 30 ddress=fe80::/10
6e20: 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f comment=\"defco
6e30: 6e 66 3a 20 72 66 63 34 38 39 30 20 64 72 6f 70 nf: rfc4890 drop
6e40: 20 6c 6c 20 69 66 20 68 6f 70 2d 6c 69 6d 69 74 ll if hop-limit
6e50: 21 3d 32 35 35 5c 22 22 29 0a 20 20 20 20 24 61 !=255\""). $a
6e60: 64 64 43 4c 20 28 22 20 20 20 66 69 6c 74 65 72 ddCL (" filter
6e70: 20 61 64 64 20 63 68 61 69 6e 3d 69 6e 70 75 74 add chain=input
6e80: 20 61 63 74 69 6f 6e 3d 61 63 63 65 70 74 20 63 action=accept c
6e90: 6f 6e 6e 65 63 74 69 6f 6e 2d 73 74 61 74 65 3d onnection-state=
6ea0: 65 73 74 61 62 6c 69 73 68 65 64 2c 72 65 6c 61 established,rela
6eb0: 74 65 64 2c 75 6e 74 72 61 63 6b 65 64 20 63 6f ted,untracked co
6ec0: 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 3a mment=\"defconf:
6ed0: 20 61 63 63 65 70 74 20 65 73 74 61 62 6c 69 73 accept establis
6ee0: 68 65 64 2c 72 65 6c 61 74 65 64 2c 75 6e 74 72 hed,related,untr
6ef0: 61 63 6b 65 64 5c 22 22 29 0a 20 20 20 20 24 61 acked\""). $a
6f00: 64 64 43 4c 20 28 22 20 20 20 66 69 6c 74 65 72 ddCL (" filter
6f10: 20 61 64 64 20 63 68 61 69 6e 3d 69 6e 70 75 74 add chain=input
6f20: 20 61 63 74 69 6f 6e 3d 64 72 6f 70 20 63 6f 6e action=drop con
6f30: 6e 65 63 74 69 6f 6e 2d 73 74 61 74 65 3d 69 6e nection-state=in
6f40: 76 61 6c 69 64 20 63 6f 6d 6d 65 6e 74 3d 5c 22 valid comment=\"
6f50: 64 65 66 63 6f 6e 66 3a 20 64 72 6f 70 20 69 6e defconf: drop in
6f60: 76 61 6c 69 64 5c 22 22 29 0a 20 20 20 20 24 61 valid\""). $a
6f70: 64 64 43 4c 20 28 22 20 20 20 66 69 6c 74 65 72 ddCL (" filter
6f80: 20 61 64 64 20 63 68 61 69 6e 3d 69 6e 70 75 74 add chain=input
6f90: 20 61 63 74 69 6f 6e 3d 61 63 63 65 70 74 20 70 action=accept p
6fa0: 72 6f 74 6f 63 6f 6c 3d 69 63 6d 70 76 36 20 63 rotocol=icmpv6 c
6fb0: 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 omment=\"defconf
6fc0: 3a 20 61 63 63 65 70 74 20 49 43 4d 50 76 36 5c : accept ICMPv6\
6fd0: 22 22 29 0a 20 20 20 20 24 61 64 64 43 4c 20 28 ""). $addCL (
6fe0: 22 20 20 20 66 69 6c 74 65 72 20 61 64 64 20 63 " filter add c
6ff0: 68 61 69 6e 3d 69 6e 70 75 74 20 61 63 74 69 6f hain=input actio
7000: 6e 3d 61 63 63 65 70 74 20 70 72 6f 74 6f 63 6f n=accept protoco
7010: 6c 3d 75 64 70 20 64 73 74 2d 70 6f 72 74 3d 33 l=udp dst-port=3
7020: 33 34 33 34 2d 33 33 35 33 34 20 63 6f 6d 6d 65 3434-33534 comme
7030: 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 3a 20 61 63 nt=\"defconf: ac
7040: 63 65 70 74 20 55 44 50 20 74 72 61 63 65 72 6f cept UDP tracero
7050: 75 74 65 5c 22 22 29 0a 20 20 20 20 24 61 64 64 ute\""). $add
7060: 43 4c 20 28 22 20 20 20 66 69 6c 74 65 72 20 61 CL (" filter a
7070: 64 64 20 63 68 61 69 6e 3d 69 6e 70 75 74 20 61 dd chain=input a
7080: 63 74 69 6f 6e 3d 61 63 63 65 70 74 20 70 72 6f ction=accept pro
7090: 74 6f 63 6f 6c 3d 75 64 70 20 64 73 74 2d 70 6f tocol=udp dst-po
70a0: 72 74 3d 35 34 36 20 73 72 63 2d 61 64 64 72 65 rt=546 src-addre
70b0: 73 73 3d 66 65 38 30 3a 3a 2f 31 30 20 63 6f 6d ss=fe80::/10 com
70c0: 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 3a 20 ment=\"defconf:
70d0: 61 63 63 65 70 74 20 44 48 43 50 76 36 2d 43 6c accept DHCPv6-Cl
70e0: 69 65 6e 74 20 70 72 65 66 69 78 20 64 65 6c 65 ient prefix dele
70f0: 67 61 74 69 6f 6e 2e 5c 22 22 29 0a 20 20 20 20 gation.\"").
7100: 24 61 64 64 43 4c 20 28 22 20 20 20 66 69 6c 74 $addCL (" filt
7110: 65 72 20 61 64 64 20 63 68 61 69 6e 3d 69 6e 70 er add chain=inp
7120: 75 74 20 61 63 74 69 6f 6e 3d 61 63 63 65 70 74 ut action=accept
7130: 20 70 72 6f 74 6f 63 6f 6c 3d 75 64 70 20 64 73 protocol=udp ds
7140: 74 2d 70 6f 72 74 3d 35 30 30 2c 34 35 30 30 20 t-port=500,4500
7150: 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e comment=\"defcon
7160: 66 3a 20 61 63 63 65 70 74 20 49 4b 45 5c 22 22 f: accept IKE\""
7170: 29 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 ). $addCL ("
7180: 20 20 66 69 6c 74 65 72 20 61 64 64 20 63 68 61 filter add cha
7190: 69 6e 3d 69 6e 70 75 74 20 61 63 74 69 6f 6e 3d in=input action=
71a0: 61 63 63 65 70 74 20 70 72 6f 74 6f 63 6f 6c 3d accept protocol=
71b0: 69 70 73 65 63 2d 61 68 20 63 6f 6d 6d 65 6e 74 ipsec-ah comment
71c0: 3d 5c 22 64 65 66 63 6f 6e 66 3a 20 61 63 63 65 =\"defconf: acce
71d0: 70 74 20 69 70 73 65 63 20 41 48 5c 22 22 29 0a pt ipsec AH\"").
71e0: 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 $addCL ("
71f0: 66 69 6c 74 65 72 20 61 64 64 20 63 68 61 69 6e filter add chain
7200: 3d 69 6e 70 75 74 20 61 63 74 69 6f 6e 3d 61 63 =input action=ac
7210: 63 65 70 74 20 70 72 6f 74 6f 63 6f 6c 3d 69 70 cept protocol=ip
7220: 73 65 63 2d 65 73 70 20 63 6f 6d 6d 65 6e 74 3d sec-esp comment=
7230: 5c 22 64 65 66 63 6f 6e 66 3a 20 61 63 63 65 70 \"defconf: accep
7240: 74 20 69 70 73 65 63 20 45 53 50 5c 22 22 29 0a t ipsec ESP\"").
7250: 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 $addCL ("
7260: 66 69 6c 74 65 72 20 61 64 64 20 63 68 61 69 6e filter add chain
7270: 3d 69 6e 70 75 74 20 61 63 74 69 6f 6e 3d 61 63 =input action=ac
7280: 63 65 70 74 20 69 70 73 65 63 2d 70 6f 6c 69 63 cept ipsec-polic
7290: 79 3d 69 6e 2c 69 70 73 65 63 20 63 6f 6d 6d 65 y=in,ipsec comme
72a0: 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 3a 20 61 63 nt=\"defconf: ac
72b0: 63 65 70 74 20 61 6c 6c 20 74 68 61 74 20 6d 61 cept all that ma
72c0: 74 63 68 65 73 20 69 70 73 65 63 20 70 6f 6c 69 tches ipsec poli
72d0: 63 79 5c 22 22 29 0a 20 20 20 20 24 61 64 64 43 cy\""). $addC
72e0: 4c 20 28 22 20 20 20 66 69 6c 74 65 72 20 61 64 L (" filter ad
72f0: 64 20 63 68 61 69 6e 3d 69 6e 70 75 74 20 61 63 d chain=input ac
7300: 74 69 6f 6e 3d 64 72 6f 70 20 69 6e 2d 69 6e 74 tion=drop in-int
7310: 65 72 66 61 63 65 2d 6c 69 73 74 3d 21 4c 41 4e erface-list=!LAN
7320: 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f comment=\"defco
7330: 6e 66 3a 20 64 72 6f 70 20 65 76 65 72 79 74 68 nf: drop everyth
7340: 69 6e 67 20 65 6c 73 65 20 6e 6f 74 20 63 6f 6d ing else not com
7350: 69 6e 67 20 66 72 6f 6d 20 4c 41 4e 5c 22 22 29 ing from LAN\"")
7360: 0a 0a 20 20 20 20 23 20 66 77 20 66 6f 72 77 61 .. # fw forwa
7370: 72 64 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 rd. $addCL ("
7380: 20 20 20 66 69 6c 74 65 72 20 61 64 64 20 63 68 filter add ch
7390: 61 69 6e 3d 66 6f 72 77 61 72 64 20 61 63 74 69 ain=forward acti
73a0: 6f 6e 3d 66 61 73 74 74 72 61 63 6b 2d 63 6f 6e on=fasttrack-con
73b0: 6e 65 63 74 69 6f 6e 20 63 6f 6e 6e 65 63 74 69 nection connecti
73c0: 6f 6e 2d 73 74 61 74 65 3d 65 73 74 61 62 6c 69 on-state=establi
73d0: 73 68 65 64 2c 72 65 6c 61 74 65 64 20 63 6f 6d shed,related com
73e0: 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 3a 20 ment=\"defconf:
73f0: 66 61 73 74 74 72 61 63 6b 36 5c 22 22 29 0a 20 fasttrack6\"").
7400: 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 66 $addCL (" f
7410: 69 6c 74 65 72 20 61 64 64 20 63 68 61 69 6e 3d ilter add chain=
7420: 66 6f 72 77 61 72 64 20 61 63 74 69 6f 6e 3d 61 forward action=a
7430: 63 63 65 70 74 20 63 6f 6e 6e 65 63 74 69 6f 6e ccept connection
7440: 2d 73 74 61 74 65 3d 65 73 74 61 62 6c 69 73 68 -state=establish
7450: 65 64 2c 72 65 6c 61 74 65 64 2c 75 6e 74 72 61 ed,related,untra
7460: 63 6b 65 64 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 cked comment=\"d
7470: 65 66 63 6f 6e 66 3a 20 61 63 63 65 70 74 20 65 efconf: accept e
7480: 73 74 61 62 6c 69 73 68 65 64 2c 72 65 6c 61 74 stablished,relat
7490: 65 64 2c 75 6e 74 72 61 63 6b 65 64 5c 22 22 29 ed,untracked\"")
74a0: 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 . $addCL ("
74b0: 20 66 69 6c 74 65 72 20 61 64 64 20 63 68 61 69 filter add chai
74c0: 6e 3d 66 6f 72 77 61 72 64 20 61 63 74 69 6f 6e n=forward action
74d0: 3d 64 72 6f 70 20 63 6f 6e 6e 65 63 74 69 6f 6e =drop connection
74e0: 2d 73 74 61 74 65 3d 69 6e 76 61 6c 69 64 20 63 -state=invalid c
74f0: 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 omment=\"defconf
7500: 3a 20 64 72 6f 70 20 69 6e 76 61 6c 69 64 5c 22 : drop invalid\"
7510: 22 29 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 "). $addCL ("
7520: 20 20 20 66 69 6c 74 65 72 20 61 64 64 20 63 68 filter add ch
7530: 61 69 6e 3d 66 6f 72 77 61 72 64 20 61 63 74 69 ain=forward acti
7540: 6f 6e 3d 64 72 6f 70 20 73 72 63 2d 61 64 64 72 on=drop src-addr
7550: 65 73 73 2d 6c 69 73 74 3d 62 61 64 5f 69 70 76 ess-list=bad_ipv
7560: 36 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6 comment=\"defc
7570: 6f 6e 66 3a 20 64 72 6f 70 20 70 61 63 6b 65 74 onf: drop packet
7580: 73 20 77 69 74 68 20 62 61 64 20 73 72 63 20 69 s with bad src i
7590: 70 76 36 5c 22 22 29 0a 20 20 20 20 24 61 64 64 pv6\""). $add
75a0: 43 4c 20 28 22 20 20 20 66 69 6c 74 65 72 20 61 CL (" filter a
75b0: 64 64 20 63 68 61 69 6e 3d 66 6f 72 77 61 72 64 dd chain=forward
75c0: 20 61 63 74 69 6f 6e 3d 64 72 6f 70 20 64 73 74 action=drop dst
75d0: 2d 61 64 64 72 65 73 73 2d 6c 69 73 74 3d 62 61 -address-list=ba
75e0: 64 5f 69 70 76 36 20 63 6f 6d 6d 65 6e 74 3d 5c d_ipv6 comment=\
75f0: 22 64 65 66 63 6f 6e 66 3a 20 64 72 6f 70 20 70 "defconf: drop p
7600: 61 63 6b 65 74 73 20 77 69 74 68 20 62 61 64 20 ackets with bad
7610: 64 73 74 20 69 70 76 36 5c 22 22 29 0a 20 20 20 dst ipv6\"").
7620: 20 24 61 64 64 43 4c 20 28 22 20 20 20 66 69 6c $addCL (" fil
7630: 74 65 72 20 61 64 64 20 63 68 61 69 6e 3d 66 6f ter add chain=fo
7640: 72 77 61 72 64 20 61 63 74 69 6f 6e 3d 64 72 6f rward action=dro
7650: 70 20 70 72 6f 74 6f 63 6f 6c 3d 69 63 6d 70 76 p protocol=icmpv
7660: 36 20 68 6f 70 2d 6c 69 6d 69 74 3d 65 71 75 61 6 hop-limit=equa
7670: 6c 3a 31 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 l:1 comment=\"de
7680: 66 63 6f 6e 66 3a 20 72 66 63 34 38 39 30 20 64 fconf: rfc4890 d
7690: 72 6f 70 20 68 6f 70 2d 6c 69 6d 69 74 3d 31 5c rop hop-limit=1\
76a0: 22 22 29 0a 20 20 20 20 24 61 64 64 43 4c 20 28 ""). $addCL (
76b0: 22 20 20 20 66 69 6c 74 65 72 20 61 64 64 20 63 " filter add c
76c0: 68 61 69 6e 3d 66 6f 72 77 61 72 64 20 61 63 74 hain=forward act
76d0: 69 6f 6e 3d 61 63 63 65 70 74 20 70 72 6f 74 6f ion=accept proto
76e0: 63 6f 6c 3d 69 63 6d 70 76 36 20 63 6f 6d 6d 65 col=icmpv6 comme
76f0: 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 3a 20 61 63 nt=\"defconf: ac
7700: 63 65 70 74 20 49 43 4d 50 76 36 5c 22 22 29 0a cept ICMPv6\"").
7710: 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 $addCL ("
7720: 66 69 6c 74 65 72 20 61 64 64 20 63 68 61 69 6e filter add chain
7730: 3d 66 6f 72 77 61 72 64 20 61 63 74 69 6f 6e 3d =forward action=
7740: 61 63 63 65 70 74 20 70 72 6f 74 6f 63 6f 6c 3d accept protocol=
7750: 31 33 39 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 139 comment=\"de
7760: 66 63 6f 6e 66 3a 20 61 63 63 65 70 74 20 48 49 fconf: accept HI
7770: 50 5c 22 22 29 0a 20 20 20 20 24 61 64 64 43 4c P\""). $addCL
7780: 20 28 22 20 20 20 66 69 6c 74 65 72 20 61 64 64 (" filter add
7790: 20 63 68 61 69 6e 3d 66 6f 72 77 61 72 64 20 61 chain=forward a
77a0: 63 74 69 6f 6e 3d 61 63 63 65 70 74 20 70 72 6f ction=accept pro
77b0: 74 6f 63 6f 6c 3d 75 64 70 20 64 73 74 2d 70 6f tocol=udp dst-po
77c0: 72 74 3d 35 30 30 2c 34 35 30 30 20 63 6f 6d 6d rt=500,4500 comm
77d0: 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 3a 20 61 ent=\"defconf: a
77e0: 63 63 65 70 74 20 49 4b 45 5c 22 22 29 0a 20 20 ccept IKE\"").
77f0: 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 66 69 $addCL (" fi
7800: 6c 74 65 72 20 61 64 64 20 63 68 61 69 6e 3d 66 lter add chain=f
7810: 6f 72 77 61 72 64 20 61 63 74 69 6f 6e 3d 61 63 orward action=ac
7820: 63 65 70 74 20 70 72 6f 74 6f 63 6f 6c 3d 69 70 cept protocol=ip
7830: 73 65 63 2d 61 68 20 63 6f 6d 6d 65 6e 74 3d 5c sec-ah comment=\
7840: 22 64 65 66 63 6f 6e 66 3a 20 61 63 63 65 70 74 "defconf: accept
7850: 20 69 70 73 65 63 20 41 48 5c 22 22 29 0a 20 20 ipsec AH\"").
7860: 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 66 69 $addCL (" fi
7870: 6c 74 65 72 20 61 64 64 20 63 68 61 69 6e 3d 66 lter add chain=f
7880: 6f 72 77 61 72 64 20 61 63 74 69 6f 6e 3d 61 63 orward action=ac
7890: 63 65 70 74 20 70 72 6f 74 6f 63 6f 6c 3d 69 70 cept protocol=ip
78a0: 73 65 63 2d 65 73 70 20 63 6f 6d 6d 65 6e 74 3d sec-esp comment=
78b0: 5c 22 64 65 66 63 6f 6e 66 3a 20 61 63 63 65 70 \"defconf: accep
78c0: 74 20 69 70 73 65 63 20 45 53 50 5c 22 22 29 0a t ipsec ESP\"").
78d0: 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 $addCL ("
78e0: 66 69 6c 74 65 72 20 61 64 64 20 63 68 61 69 6e filter add chain
78f0: 3d 66 6f 72 77 61 72 64 20 61 63 74 69 6f 6e 3d =forward action=
7900: 61 63 63 65 70 74 20 69 70 73 65 63 2d 70 6f 6c accept ipsec-pol
7910: 69 63 79 3d 69 6e 2c 69 70 73 65 63 20 63 6f 6d icy=in,ipsec com
7920: 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 3a 20 ment=\"defconf:
7930: 61 63 63 65 70 74 20 61 6c 6c 20 74 68 61 74 20 accept all that
7940: 6d 61 74 63 68 65 73 20 69 70 73 65 63 20 70 6f matches ipsec po
7950: 6c 69 63 79 5c 22 22 29 0a 20 20 20 20 24 61 64 licy\""). $ad
7960: 64 43 4c 20 28 22 20 20 20 66 69 6c 74 65 72 20 dCL (" filter
7970: 61 64 64 20 63 68 61 69 6e 3d 66 6f 72 77 61 72 add chain=forwar
7980: 64 20 61 63 74 69 6f 6e 3d 64 72 6f 70 20 69 6e d action=drop in
7990: 2d 69 6e 74 65 72 66 61 63 65 2d 6c 69 73 74 3d -interface-list=
79a0: 21 4c 41 4e 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 !LAN comment=\"d
79b0: 65 66 63 6f 6e 66 3a 20 64 72 6f 70 20 65 76 65 efconf: drop eve
79c0: 72 79 74 68 69 6e 67 20 65 6c 73 65 20 6e 6f 74 rything else not
79d0: 20 63 6f 6d 69 6e 67 20 66 72 6f 6d 20 4c 41 4e coming from LAN
79e0: 5c 22 22 29 0a 0a 20 20 20 20 24 61 64 64 43 4c \"").. $addCL
79f0: 20 28 22 20 7d 22 29 0a 20 20 7d 0a 0a 20 20 24 (" }"). }.. $
7a00: 61 64 64 43 4c 20 28 22 20 20 20 2f 69 70 20 6e addCL (" /ip n
7a10: 65 69 67 68 62 6f 72 20 64 69 73 63 6f 76 65 72 eighbor discover
7a20: 79 2d 73 65 74 74 69 6e 67 73 20 73 65 74 20 64 y-settings set d
7a30: 69 73 63 6f 76 65 72 2d 69 6e 74 65 72 66 61 63 iscover-interfac
7a40: 65 2d 6c 69 73 74 3d 4c 41 4e 22 29 0a 20 20 24 e-list=LAN"). $
7a50: 61 64 64 43 4c 20 28 22 20 20 20 2f 74 6f 6f 6c addCL (" /tool
7a60: 20 6d 61 63 2d 73 65 72 76 65 72 20 73 65 74 20 mac-server set
7a70: 61 6c 6c 6f 77 65 64 2d 69 6e 74 65 72 66 61 63 allowed-interfac
7a80: 65 2d 6c 69 73 74 3d 4c 41 4e 22 29 0a 20 20 24 e-list=LAN"). $
7a90: 61 64 64 43 4c 20 28 22 20 20 20 2f 74 6f 6f 6c addCL (" /tool
7aa0: 20 6d 61 63 2d 73 65 72 76 65 72 20 6d 61 63 2d mac-server mac-
7ab0: 77 69 6e 62 6f 78 20 73 65 74 20 61 6c 6c 6f 77 winbox set allow
7ac0: 65 64 2d 69 6e 74 65 72 66 61 63 65 2d 6c 69 73 ed-interface-lis
7ad0: 74 3d 4c 41 4e 22 29 0a 7d 0a 0a 23 2d 2d 2d 2d t=LAN").}..#----
7ae0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7af0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7b00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7b10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7b20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 65 6e -----------.# en
7b30: 61 62 6c 65 20 64 6e 73 20 72 65 6d 6f 74 65 20 able dns remote
7b40: 72 65 71 75 65 73 74 20 61 6e 64 20 73 74 61 69 request and stai
7b50: 74 63 20 44 4e 53 20 6e 61 6d 65 0a 23 2d 2d 2d tc DNS name.#---
7b60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7b70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7b80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7b90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7ba0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3a 67 6c ------------.:gl
7bb0: 6f 62 61 6c 20 61 6c 6c 6f 77 44 6e 73 20 64 6f obal allowDns do
7bc0: 3d 7b 0a 20 20 23 61 63 63 65 73 73 20 74 6f 20 ={. #access to
7bd0: 67 6c 6f 62 61 6c 20 66 75 6e 63 73 0a 20 20 3a global funcs. :
7be0: 67 6c 6f 62 61 6c 20 61 64 64 43 4c 3b 0a 20 20 global addCL;.
7bf0: 3a 67 6c 6f 62 61 6c 20 61 64 64 44 4c 3b 0a 0a :global addDL;..
7c00: 20 20 24 61 64 64 44 4c 20 22 23 7c 20 20 20 20 $addDL "#|
7c10: 20 44 4e 53 3a 20 65 6e 61 62 6c 65 64 3b 22 0a DNS: enabled;".
7c20: 20 20 23 20 61 6c 6c 6f 77 20 44 4e 53 0a 20 20 # allow DNS.
7c30: 24 61 64 64 43 4c 20 28 22 20 2f 69 70 20 64 6e $addCL (" /ip dn
7c40: 73 20 7b 22 29 0a 20 20 24 61 64 64 43 4c 20 28 s {"). $addCL (
7c50: 22 20 20 20 20 20 73 65 74 20 61 6c 6c 6f 77 2d " set allow-
7c60: 72 65 6d 6f 74 65 2d 72 65 71 75 65 73 74 73 3d remote-requests=
7c70: 79 65 73 22 29 0a 20 20 24 61 64 64 43 4c 20 28 yes"). $addCL (
7c80: 22 20 20 20 20 20 73 74 61 74 69 63 20 61 64 64 " static add
7c90: 20 6e 61 6d 65 3d 72 6f 75 74 65 72 2e 6c 61 6e name=router.lan
7ca0: 20 61 64 64 72 65 73 73 3d 24 69 70 4e 65 74 77 address=$ipNetw
7cb0: 6f 72 6b 2e 31 20 63 6f 6d 6d 65 6e 74 3d 64 65 ork.1 comment=de
7cc0: 66 63 6f 6e 66 22 29 0a 20 20 24 61 64 64 43 4c fconf"). $addCL
7cd0: 20 28 22 20 7d 22 29 0a 20 20 24 61 64 64 43 4c (" }"). $addCL
7ce0: 20 28 22 22 29 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d ("").}..#------
7cf0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7d00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7d10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7d20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7d30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 20 73 65 74 ---------.# set
7d40: 20 61 64 6d 69 6e 20 70 61 73 73 77 6f 72 64 20 admin password
7d50: 69 66 20 64 65 66 63 6f 6e 66 50 61 73 73 77 6f if defconfPasswo
7d60: 72 64 20 69 73 20 73 65 74 0a 23 2d 2d 2d 2d 2d rd is set.#-----
7d70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7d80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7d90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7da0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7db0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3a 67 6c 6f 62 ----------.:glob
7dc0: 61 6c 20 73 65 74 41 64 6d 69 6e 50 61 73 73 20 al setAdminPass
7dd0: 64 6f 3d 7b 0a 20 20 23 61 63 63 65 73 73 20 74 do={. #access t
7de0: 6f 20 67 6c 6f 62 61 6c 20 66 75 6e 63 73 0a 20 o global funcs.
7df0: 20 3a 67 6c 6f 62 61 6c 20 61 64 64 43 4c 3b 0a :global addCL;.
7e00: 20 20 3a 67 6c 6f 62 61 6c 20 61 64 64 44 4c 3b :global addDL;
7e10: 0a 0a 20 20 24 61 64 64 44 4c 20 28 22 23 7c 20 .. $addDL ("#|
7e20: 4c 6f 67 69 6e 22 29 3b 0a 20 20 24 61 64 64 44 Login");. $addD
7e30: 4c 20 28 22 23 7c 20 20 20 20 20 61 64 6d 69 6e L ("#| admin
7e40: 20 75 73 65 72 20 70 72 6f 74 65 63 74 65 64 20 user protected
7e50: 62 79 20 70 61 73 73 77 6f 72 64 22 29 3b 0a 20 by password");.
7e60: 20 24 61 64 64 43 4c 20 28 22 20 3a 69 66 20 28 $addCL (" :if (
7e70: 21 28 5c 24 6b 65 65 70 55 73 65 72 73 20 3d 20 !(\$keepUsers =
7e80: 5c 22 79 65 73 5c 22 29 29 20 64 6f 3d 7b 22 29 \"yes\")) do={")
7e90: 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 3a . $addCL (" :
7ea0: 69 66 20 28 21 28 5c 24 64 65 66 63 6f 6e 66 50 if (!(\$defconfP
7eb0: 61 73 73 77 6f 72 64 20 3d 20 5c 22 5c 22 20 7c assword = \"\" |
7ec0: 7c 20 5c 24 64 65 66 63 6f 6e 66 50 61 73 73 77 | \$defconfPassw
7ed0: 6f 72 64 20 3d 20 6e 69 6c 29 29 20 64 6f 3d 7b ord = nil)) do={
7ee0: 22 29 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 "). $addCL ("
7ef0: 20 20 20 2f 75 73 65 72 20 73 65 74 20 61 64 6d /user set adm
7f00: 69 6e 20 70 61 73 73 77 6f 72 64 3d 5c 24 64 65 in password=\$de
7f10: 66 63 6f 6e 66 50 61 73 73 77 6f 72 64 22 29 0a fconfPassword").
7f20: 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 20 $addCL ("
7f30: 3a 64 65 6c 61 79 20 30 2e 35 22 29 0a 20 20 24 :delay 0.5"). $
7f40: 61 64 64 43 4c 20 28 22 20 20 20 20 20 2f 75 73 addCL (" /us
7f50: 65 72 20 65 78 70 69 72 65 2d 70 61 73 73 77 6f er expire-passwo
7f60: 72 64 20 61 64 6d 69 6e 20 22 29 0a 20 20 24 61 rd admin "). $a
7f70: 64 64 43 4c 20 28 22 20 20 20 7d 22 29 0a 20 20 ddCL (" }").
7f80: 24 61 64 64 43 4c 20 28 22 20 7d 22 29 0a 7d 0a $addCL (" }").}.
7f90: 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .#--------------
7fa0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7fb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7fc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7fd0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
7fe0: 2d 0a 23 20 73 65 74 20 77 36 30 67 20 63 6f 6e -.# set w60g con
7ff0: 66 69 67 20 66 72 6f 6d 20 70 61 72 73 65 64 20 fig from parsed
8000: 77 69 72 65 6c 73 73 20 66 65 61 74 75 72 65 20 wirelss feature
8010: 61 72 72 61 79 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d array.#---------
8020: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
8030: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
8040: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
8050: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
8060: 2d 2d 2d 2d 2d 2d 0a 3a 67 6c 6f 62 61 6c 20 73 ------.:global s
8070: 65 74 57 36 30 47 20 64 6f 3d 7b 0a 20 20 23 61 etW60G do={. #a
8080: 63 63 65 73 73 20 74 6f 20 67 6c 6f 62 61 6c 20 ccess to global
8090: 66 75 6e 63 73 0a 20 20 3a 67 6c 6f 62 61 6c 20 funcs. :global
80a0: 61 64 64 43 4c 3b 0a 20 20 3a 67 6c 6f 62 61 6c addCL;. :global
80b0: 20 61 64 64 44 4c 3b 0a 20 20 3a 67 6c 6f 62 61 addDL;. :globa
80c0: 6c 20 77 69 72 65 6c 65 73 73 45 6e 61 62 6c 65 l wirelessEnable
80d0: 64 3b 0a 0a 20 20 3a 6c 6f 63 61 6c 20 6c 61 6e d;.. :local lan
80e0: 50 6f 72 74 20 22 62 72 69 64 67 65 22 0a 0a 20 Port "bridge"..
80f0: 20 24 61 64 64 43 4c 20 28 22 20 2f 69 6e 74 65 $addCL (" /inte
8100: 72 66 61 63 65 20 62 72 69 64 67 65 22 29 0a 20 rface bridge").
8110: 20 24 61 64 64 43 4c 20 28 22 20 20 20 61 64 64 $addCL (" add
8120: 20 6e 61 6d 65 3d 24 6c 61 6e 50 6f 72 74 20 64 name=$lanPort d
8130: 69 73 61 62 6c 65 64 3d 6e 6f 20 70 72 6f 74 6f isabled=no proto
8140: 63 6f 6c 2d 6d 6f 64 65 3d 72 73 74 70 20 63 6f col-mode=rstp co
8150: 6d 6d 65 6e 74 3d 64 65 66 63 6f 6e 66 20 61 75 mment=defconf au
8160: 74 6f 2d 6d 61 63 3d 6e 6f 20 61 64 6d 69 6e 2d to-mac=no admin-
8170: 6d 61 63 3d 5b 2f 69 6e 74 65 72 66 61 63 65 20 mac=[/interface
8180: 65 74 68 65 72 6e 65 74 20 67 65 74 20 65 74 68 ethernet get eth
8190: 65 72 31 20 6d 61 63 2d 61 64 64 72 65 73 73 5d er1 mac-address]
81a0: 3b 22 29 0a 0a 20 20 24 61 64 64 43 4c 20 28 22 ;").. $addCL ("
81b0: 20 20 20 2f 69 6e 74 65 72 66 61 63 65 20 62 72 /interface br
81c0: 69 64 67 65 20 70 6f 72 74 22 29 0a 20 20 24 61 idge port"). $a
81d0: 64 64 43 4c 20 28 22 20 20 20 20 20 61 64 64 20 ddCL (" add
81e0: 62 72 69 64 67 65 3d 24 6c 61 6e 50 6f 72 74 20 bridge=$lanPort
81f0: 69 6e 74 65 72 66 61 63 65 3d 65 74 68 65 72 31 interface=ether1
8200: 20 63 6f 6d 6d 65 6e 74 3d 64 65 66 63 6f 6e 66 comment=defconf
8210: 3b 22 29 0a 0a 20 20 3a 69 66 20 28 24 77 69 72 ;").. :if ($wir
8220: 65 6c 65 73 73 45 6e 61 62 6c 65 64 20 3d 20 31 elessEnabled = 1
8230: 29 20 64 6f 3d 7b 0a 20 20 20 20 24 61 64 64 44 ) do={. $addD
8240: 4c 20 28 22 23 7c 20 77 6c 61 6e 36 30 2d 31 20 L ("#| wlan60-1
8250: 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3a 22 29 Configuration:")
8260: 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 . $addCL ("
8270: 2f 69 6e 74 65 72 66 61 63 65 20 77 36 30 67 22 /interface w60g"
8280: 29 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 ). $addCL ("
8290: 20 20 20 73 65 74 20 77 6c 61 6e 36 30 2d 31 20 set wlan60-1
82a0: 64 69 73 61 62 6c 65 64 3d 6e 6f 22 29 0a 20 20 disabled=no").
82b0: 20 20 3a 69 66 20 28 24 73 73 69 64 20 3d 20 22 :if ($ssid = "
82c0: 22 20 7c 7c 20 24 73 73 69 64 20 3d 20 6e 69 6c " || $ssid = nil
82d0: 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 24 61 64 ) do={. $ad
82e0: 64 44 4c 20 28 22 23 7c 20 20 20 20 20 73 73 69 dDL ("#| ssi
82f0: 64 3a 20 20 20 20 20 20 20 20 20 20 4d 69 6b 72 d: Mikr
8300: 6f 54 69 6b 3b 22 29 0a 20 20 20 20 7d 20 65 6c oTik;"). } el
8310: 73 65 3d 7b 0a 20 20 20 20 20 20 24 61 64 64 44 se={. $addD
8320: 4c 20 28 22 23 7c 20 20 20 20 20 73 73 69 64 3a L ("#| ssid:
8330: 20 20 20 20 20 20 20 20 20 20 24 73 73 69 64 3b $ssid;
8340: 22 29 0a 20 20 20 20 20 20 24 61 64 64 43 4c 20 "). $addCL
8350: 28 22 20 20 20 20 73 65 74 20 77 6c 61 6e 36 30 (" set wlan60
8360: 2d 31 20 73 73 69 64 3d 24 73 73 69 64 22 29 0a -1 ssid=$ssid").
8370: 20 20 20 20 7d 0a 20 20 20 20 3a 69 66 20 28 24 }. :if ($
8380: 6d 6f 64 65 20 3d 20 22 22 20 7c 7c 20 24 6d 6f mode = "" || $mo
8390: 64 65 20 3d 20 6e 69 6c 29 20 64 6f 3d 7b 0a 20 de = nil) do={.
83a0: 20 20 20 20 20 3a 69 66 20 28 24 6c 69 63 65 6e :if ($licen
83b0: 73 65 20 3d 20 34 29 20 64 6f 3d 7b 0a 20 20 20 se = 4) do={.
83c0: 20 20 20 20 20 24 61 64 64 44 4c 20 28 22 23 7c $addDL ("#|
83d0: 20 20 20 20 20 6d 6f 64 65 3a 20 20 20 20 20 20 mode:
83e0: 20 20 20 20 61 70 2d 62 72 69 64 67 65 3b 22 29 ap-bridge;")
83f0: 0a 20 20 20 20 20 20 20 20 24 61 64 64 43 4c 20 . $addCL
8400: 28 22 20 20 20 20 73 65 74 20 77 6c 61 6e 36 30 (" set wlan60
8410: 2d 31 20 6d 6f 64 65 3d 61 70 2d 62 72 69 64 67 -1 mode=ap-bridg
8420: 65 22 29 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 e"). } else
8430: 3d 7b 0a 20 20 20 20 20 20 20 20 24 61 64 64 44 ={. $addD
8440: 4c 20 28 22 23 7c 20 20 20 20 20 6d 6f 64 65 3a L ("#| mode:
8450: 20 20 20 20 20 20 20 20 20 20 73 74 61 74 69 6f statio
8460: 6e 2d 62 72 69 64 67 65 3b 22 29 0a 20 20 20 20 n-bridge;").
8470: 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 $addCL ("
8480: 20 73 65 74 20 77 6c 61 6e 36 30 2d 31 20 6d 6f set wlan60-1 mo
8490: 64 65 3d 73 74 61 74 69 6f 6e 2d 62 72 69 64 67 de=station-bridg
84a0: 65 22 29 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 e"). }.
84b0: 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 20 20 3a } else={. :
84c0: 69 66 20 28 24 6d 6f 64 65 20 3d 20 22 6d 61 73 if ($mode = "mas
84d0: 74 65 72 22 29 20 64 6f 3d 7b 0a 20 20 20 20 20 ter") do={.
84e0: 20 20 20 24 61 64 64 44 4c 20 28 22 23 7c 20 20 $addDL ("#|
84f0: 20 20 20 6d 6f 64 65 3a 20 20 20 20 20 20 20 20 mode:
8500: 20 20 62 72 69 64 67 65 3b 22 29 0a 20 20 20 20 bridge;").
8510: 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 $addCL ("
8520: 20 73 65 74 20 77 6c 61 6e 36 30 2d 31 20 6d 6f set wlan60-1 mo
8530: 64 65 3d 62 72 69 64 67 65 22 29 0a 20 20 20 20 de=bridge").
8540: 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 20 } else={.
8550: 20 20 20 24 61 64 64 44 4c 20 28 22 23 7c 20 20 $addDL ("#|
8560: 20 20 20 6d 6f 64 65 3a 20 20 20 20 20 20 20 20 mode:
8570: 20 20 73 74 61 74 69 6f 6e 2d 62 72 69 64 67 65 station-bridge
8580: 3b 22 29 0a 20 20 20 20 20 20 20 20 24 61 64 64 ;"). $add
8590: 43 4c 20 28 22 20 20 20 20 73 65 74 20 77 6c 61 CL (" set wla
85a0: 6e 36 30 2d 31 20 6d 6f 64 65 3d 73 74 61 74 69 n60-1 mode=stati
85b0: 6f 6e 2d 62 72 69 64 67 65 22 29 0a 20 20 20 20 on-bridge").
85c0: 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3a }. }.. :
85d0: 69 66 20 28 21 28 24 70 61 73 73 20 3d 20 22 22 if (!($pass = ""
85e0: 20 7c 7c 20 24 70 61 73 73 20 3d 20 6e 69 6c 29 || $pass = nil)
85f0: 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 24 61 64 ) do={. $ad
8600: 64 44 4c 20 28 22 23 7c 20 20 20 20 20 70 61 73 dDL ("#| pas
8610: 73 77 6f 72 64 3a 20 20 20 20 20 20 79 65 73 3b sword: yes;
8620: 22 29 0a 20 20 20 20 20 20 24 61 64 64 43 4c 20 "). $addCL
8630: 28 22 20 20 20 20 73 65 74 20 77 6c 61 6e 36 30 (" set wlan60
8640: 2d 31 20 70 61 73 73 77 6f 72 64 3d 5c 24 64 65 -1 password=\$de
8650: 66 63 6f 6e 66 50 61 73 73 77 6f 72 64 22 29 0a fconfPassword").
8660: 20 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 } else={.
8670: 20 20 20 24 61 64 64 44 4c 20 28 22 23 7c 20 20 $addDL ("#|
8680: 20 20 20 70 61 73 73 77 6f 72 64 3a 20 20 20 20 password:
8690: 20 20 6e 6f 3b 22 29 0a 20 20 20 20 7d 0a 0a 20 no;"). }..
86a0: 20 20 20 3a 69 66 20 28 24 6d 6f 64 65 20 3d 20 :if ($mode =
86b0: 22 22 20 7c 7c 20 24 6d 6f 64 65 20 3d 20 6e 69 "" || $mode = ni
86c0: 6c 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 3a 69 l) do={. :i
86d0: 66 20 28 24 6c 69 63 65 6e 73 65 20 3d 20 34 29 f ($license = 4)
86e0: 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 24 61 do={. $a
86f0: 64 64 43 4c 20 28 22 20 20 20 20 73 65 74 20 77 ddCL (" set w
8700: 6c 61 6e 36 30 2d 31 20 70 75 74 2d 73 74 61 74 lan60-1 put-stat
8710: 69 6f 6e 73 2d 69 6e 2d 62 72 69 64 67 65 3d 24 ions-in-bridge=$
8720: 6c 61 6e 50 6f 72 74 20 69 73 6f 6c 61 74 65 2d lanPort isolate-
8730: 73 74 61 74 69 6f 6e 73 3d 6e 6f 22 29 0a 20 20 stations=no").
8740: 20 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 } else={.
8750: 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 2f $addCL (" /
8760: 69 6e 74 65 72 66 61 63 65 20 62 72 69 64 67 65 interface bridge
8770: 20 70 6f 72 74 22 29 0a 20 20 20 20 20 20 20 20 port").
8780: 24 61 64 64 43 4c 20 28 22 20 20 20 61 64 64 20 $addCL (" add
8790: 62 72 69 64 67 65 3d 24 6c 61 6e 50 6f 72 74 20 bridge=$lanPort
87a0: 69 6e 74 65 72 66 61 63 65 3d 77 6c 61 6e 36 30 interface=wlan60
87b0: 2d 31 20 63 6f 6d 6d 65 6e 74 3d 64 65 66 63 6f -1 comment=defco
87c0: 6e 66 3b 22 29 0a 20 20 20 20 20 20 7d 0a 20 20 nf;"). }.
87d0: 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 20 } else={.
87e0: 20 3a 69 66 20 28 24 6d 6f 64 65 20 3d 20 22 6d :if ($mode = "m
87f0: 61 73 74 65 72 22 29 20 64 6f 3d 7b 0a 20 20 20 aster") do={.
8800: 20 20 20 20 20 3a 69 66 20 28 24 62 61 63 6b 75 :if ($backu
8810: 70 20 3d 20 30 20 7c 7c 20 24 62 61 63 6b 75 70 p = 0 || $backup
8820: 20 3d 20 6e 69 6c 29 20 64 6f 3d 7b 0a 20 20 20 = nil) do={.
8830: 20 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 $addCL ("
8840: 20 20 20 20 73 65 74 20 77 6c 61 6e 36 30 2d 31 set wlan60-1
8850: 20 70 75 74 2d 73 74 61 74 69 6f 6e 73 2d 69 6e put-stations-in
8860: 2d 62 72 69 64 67 65 3d 24 6c 61 6e 50 6f 72 74 -bridge=$lanPort
8870: 22 29 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 "). }.
8880: 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 } else={.
8890: 20 20 20 20 3a 69 66 20 28 24 62 61 63 6b 75 70 :if ($backup
88a0: 20 3d 20 30 20 7c 7c 20 24 62 61 63 6b 75 70 20 = 0 || $backup
88b0: 3d 20 6e 69 6c 29 20 64 6f 3d 7b 0a 20 20 20 20 = nil) do={.
88c0: 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 $addCL ("
88d0: 2f 69 6e 74 65 72 66 61 63 65 20 62 72 69 64 67 /interface bridg
88e0: 65 20 70 6f 72 74 22 29 0a 20 20 20 20 20 20 20 e port").
88f0: 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 61 $addCL (" a
8900: 64 64 20 62 72 69 64 67 65 3d 24 6c 61 6e 50 6f dd bridge=$lanPo
8910: 72 74 20 69 6e 74 65 72 66 61 63 65 3d 77 6c 61 rt interface=wla
8920: 6e 36 30 2d 31 20 63 6f 6d 6d 65 6e 74 3d 64 65 n60-1 comment=de
8930: 66 63 6f 6e 66 3b 22 29 0a 20 20 20 20 20 20 20 fconf;").
8940: 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d }. }. }
8950: 0a 20 20 7d 0a 0a 20 20 23 20 73 65 74 20 49 50 . }.. # set IP
8960: 73 20 66 6f 72 20 77 36 30 47 20 6b 69 74 0a 20 s for w60G kit.
8970: 20 20 20 3a 69 66 20 28 24 6d 6f 64 65 20 3d 20 :if ($mode =
8980: 22 22 20 7c 7c 20 24 6d 6f 64 65 20 3d 20 6e 69 "" || $mode = ni
8990: 6c 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 3a 69 l) do={. :i
89a0: 66 20 28 24 6c 69 63 65 6e 73 65 20 3d 20 34 29 f ($license = 4)
89b0: 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 24 61 do={. $a
89c0: 64 64 44 4c 20 28 22 23 7c 20 20 20 20 20 49 50 ddDL ("#| IP
89d0: 20 61 64 64 72 65 73 73 20 24 69 70 4e 65 74 77 address $ipNetw
89e0: 6f 72 6b 2e 31 2f 32 34 20 69 73 20 73 65 74 20 ork.1/24 is set
89f0: 6f 6e 20 24 6c 61 6e 50 6f 72 74 20 22 29 0a 20 on $lanPort ").
8a00: 20 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 $addCL ("
8a10: 20 20 2f 69 70 20 61 64 64 72 65 73 73 20 61 64 /ip address ad
8a20: 64 20 61 64 64 72 65 73 73 3d 24 69 70 4e 65 74 d address=$ipNet
8a30: 77 6f 72 6b 2e 31 2f 32 34 20 69 6e 74 65 72 66 work.1/24 interf
8a40: 61 63 65 3d 24 6c 61 6e 50 6f 72 74 20 63 6f 6d ace=$lanPort com
8a50: 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 5c 22 ment=\"defconf\"
8a60: 3b 22 29 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 ;"). } else
8a70: 3d 7b 0a 20 20 20 20 20 20 20 20 24 61 64 64 44 ={. $addD
8a80: 4c 20 28 22 23 7c 20 20 20 20 20 49 50 20 61 64 L ("#| IP ad
8a90: 64 72 65 73 73 20 24 69 70 4e 65 74 77 6f 72 6b dress $ipNetwork
8aa0: 2e 31 2f 32 34 20 69 73 20 73 65 74 20 6f 6e 20 .1/24 is set on
8ab0: 24 6c 61 6e 50 6f 72 74 20 22 29 0a 20 20 20 20 $lanPort ").
8ac0: 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 2f $addCL (" /
8ad0: 69 70 20 61 64 64 72 65 73 73 20 61 64 64 20 61 ip address add a
8ae0: 64 64 72 65 73 73 3d 24 69 70 4e 65 74 77 6f 72 ddress=$ipNetwor
8af0: 6b 2e 31 2f 32 34 20 69 6e 74 65 72 66 61 63 65 k.1/24 interface
8b00: 3d 24 6c 61 6e 50 6f 72 74 20 63 6f 6d 6d 65 6e =$lanPort commen
8b10: 74 3d 5c 22 64 65 66 63 6f 6e 66 5c 22 3b 22 29 t=\"defconf\";")
8b20: 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 20 65 . }. } e
8b30: 6c 73 65 3d 7b 0a 20 20 20 20 20 20 3a 69 66 20 lse={. :if
8b40: 28 24 6d 6f 64 65 20 3d 20 22 6d 61 73 74 65 72 ($mode = "master
8b50: 22 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 ") do={.
8b60: 24 61 64 64 44 4c 20 28 22 23 7c 20 20 20 20 20 $addDL ("#|
8b70: 49 50 20 61 64 64 72 65 73 73 20 24 69 70 4e 65 IP address $ipNe
8b80: 74 77 6f 72 6b 2e 32 2f 32 34 20 69 73 20 73 65 twork.2/24 is se
8b90: 74 20 6f 6e 20 24 6c 61 6e 50 6f 72 74 20 22 29 t on $lanPort ")
8ba0: 0a 20 20 20 20 20 20 20 20 24 61 64 64 43 4c 20 . $addCL
8bb0: 28 22 20 20 2f 69 70 20 61 64 64 72 65 73 73 20 (" /ip address
8bc0: 61 64 64 20 61 64 64 72 65 73 73 3d 24 69 70 4e add address=$ipN
8bd0: 65 74 77 6f 72 6b 2e 32 2f 32 34 20 69 6e 74 65 etwork.2/24 inte
8be0: 72 66 61 63 65 3d 24 6c 61 6e 50 6f 72 74 20 63 rface=$lanPort c
8bf0: 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 omment=\"defconf
8c00: 5c 22 3b 22 29 0a 20 20 20 20 20 20 7d 20 65 6c \";"). } el
8c10: 73 65 3d 7b 0a 20 20 20 20 20 20 20 20 24 61 64 se={. $ad
8c20: 64 44 4c 20 28 22 23 7c 20 20 20 20 20 49 50 20 dDL ("#| IP
8c30: 61 64 64 72 65 73 73 20 24 69 70 4e 65 74 77 6f address $ipNetwo
8c40: 72 6b 2e 33 2f 32 34 20 69 73 20 73 65 74 20 6f rk.3/24 is set o
8c50: 6e 20 24 6c 61 6e 50 6f 72 74 20 22 29 0a 20 20 n $lanPort ").
8c60: 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 $addCL ("
8c70: 20 2f 69 70 20 61 64 64 72 65 73 73 20 61 64 64 /ip address add
8c80: 20 61 64 64 72 65 73 73 3d 24 69 70 4e 65 74 77 address=$ipNetw
8c90: 6f 72 6b 2e 33 2f 32 34 20 69 6e 74 65 72 66 61 ork.3/24 interfa
8ca0: 63 65 3d 24 6c 61 6e 50 6f 72 74 20 63 6f 6d 6d ce=$lanPort comm
8cb0: 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 5c 22 3b ent=\"defconf\";
8cc0: 22 29 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d "). }. }
8cd0: 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .}..#-----------
8ce0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
8cf0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
8d00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
8d10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
8d20: 2d 2d 2d 2d 0a 23 20 73 65 74 20 77 36 30 67 20 ----.# set w60g
8d30: 63 6f 6e 66 69 67 20 61 73 20 73 69 6d 70 6c 65 config as simple
8d40: 20 61 63 63 65 73 73 20 70 6f 69 6e 74 0a 23 2d access point.#-
8d50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
8d60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
8d70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
8d80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
8d90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3a --------------.:
8da0: 67 6c 6f 62 61 6c 20 73 65 74 57 36 30 47 61 70 global setW60Gap
8db0: 20 64 6f 3d 7b 0a 20 20 23 61 63 63 65 73 73 20 do={. #access
8dc0: 74 6f 20 67 6c 6f 62 61 6c 20 66 75 6e 63 73 0a to global funcs.
8dd0: 20 20 3a 67 6c 6f 62 61 6c 20 61 64 64 43 4c 3b :global addCL;
8de0: 0a 20 20 3a 67 6c 6f 62 61 6c 20 61 64 64 44 4c . :global addDL
8df0: 3b 0a 20 20 3a 67 6c 6f 62 61 6c 20 77 69 72 65 ;. :global wire
8e00: 6c 65 73 73 45 6e 61 62 6c 65 64 3b 0a 0a 0a 20 lessEnabled;...
8e10: 20 3a 69 66 20 28 24 77 69 72 65 6c 65 73 73 45 :if ($wirelessE
8e20: 6e 61 62 6c 65 64 20 3d 20 31 29 20 64 6f 3d 7b nabled = 1) do={
8e30: 0a 20 20 20 20 24 61 64 64 44 4c 20 28 22 23 7c . $addDL ("#|
8e40: 20 77 6c 61 6e 36 30 2d 31 20 43 6f 6e 66 69 67 wlan60-1 Config
8e50: 75 72 61 74 69 6f 6e 3a 22 29 0a 20 20 20 20 24 uration:"). $
8e60: 61 64 64 43 4c 20 28 22 20 20 2f 69 6e 74 65 72 addCL (" /inter
8e70: 66 61 63 65 20 77 36 30 67 22 29 0a 20 20 20 20 face w60g").
8e80: 24 61 64 64 43 4c 20 28 22 20 20 20 20 73 65 74 $addCL (" set
8e90: 20 77 6c 61 6e 36 30 2d 31 20 64 69 73 61 62 6c wlan60-1 disabl
8ea0: 65 64 3d 6e 6f 22 29 0a 0a 20 20 20 20 24 61 64 ed=no").. $ad
8eb0: 64 43 4c 20 28 22 20 20 20 20 3a 6c 6f 63 61 6c dCL (" :local
8ec0: 20 77 6c 61 6e 4d 61 63 20 20 5b 67 65 74 20 77 wlanMac [get w
8ed0: 6c 61 6e 36 30 2d 31 20 6d 61 63 2d 61 64 64 72 lan60-1 mac-addr
8ee0: 65 73 73 5d 3b 22 29 0a 20 20 20 20 24 61 64 64 ess];"). $add
8ef0: 43 4c 20 28 22 20 20 20 20 3a 73 65 74 20 73 73 CL (" :set ss
8f00: 69 64 20 5c 22 4d 69 6b 72 6f 54 69 6b 2d 5c 24 id \"MikroTik-\$
8f10: 5b 3a 70 69 63 6b 20 5c 24 77 6c 61 6e 4d 61 63 [:pick \$wlanMac
8f20: 20 39 20 31 31 5d 5c 24 5b 3a 70 69 63 6b 20 5c 9 11]\$[:pick \
8f30: 24 77 6c 61 6e 4d 61 63 20 31 32 20 31 34 5d 5c $wlanMac 12 14]\
8f40: 24 5b 3a 70 69 63 6b 20 5c 24 77 6c 61 6e 4d 61 $[:pick \$wlanMa
8f50: 63 20 31 35 20 31 37 5d 5c 22 22 29 0a 20 20 20 c 15 17]\"").
8f60: 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 73 65 $addCL (" se
8f70: 74 20 77 6c 61 6e 36 30 2d 31 20 73 73 69 64 3d t wlan60-1 ssid=
8f80: 5c 24 73 73 69 64 22 29 0a 0a 20 20 20 20 24 61 \$ssid").. $a
8f90: 64 64 44 4c 20 28 22 23 7c 20 20 20 20 20 6d 6f ddDL ("#| mo
8fa0: 64 65 3a 20 20 20 20 20 20 20 20 20 20 61 70 2d de: ap-
8fb0: 62 72 69 64 67 65 3b 22 29 0a 20 20 20 20 24 61 bridge;"). $a
8fc0: 64 64 43 4c 20 28 22 20 20 20 20 73 65 74 20 77 ddCL (" set w
8fd0: 6c 61 6e 36 30 2d 31 20 6d 6f 64 65 3d 61 70 2d lan60-1 mode=ap-
8fe0: 62 72 69 64 67 65 22 29 0a 20 20 7d 0a 7d 0a 0a bridge"). }.}..
8ff0: 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d #---------------
9000: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9010: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9020: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9030: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9040: 0a 23 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .#.#------------
9050: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9060: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9070: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9080: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9090: 2d 2d 2d 0a 3a 67 6c 6f 62 61 6c 20 73 65 74 4d ---.:global setM
90a0: 6f 64 65 42 75 74 74 6f 6e 20 64 6f 3d 7b 0a 20 odeButton do={.
90b0: 20 3a 67 6c 6f 62 61 6c 20 61 64 64 43 4c 3b 0a :global addCL;.
90c0: 20 20 3a 67 6c 6f 62 61 6c 20 61 64 64 44 4c 3b :global addDL;
90d0: 0a 20 20 24 61 64 64 43 4c 20 28 22 20 2f 73 79 . $addCL (" /sy
90e0: 73 74 65 6d 20 72 6f 75 74 65 72 62 6f 61 72 64 stem routerboard
90f0: 20 6d 6f 64 65 2d 62 75 74 74 6f 6e 20 73 65 74 mode-button set
9100: 20 65 6e 61 62 6c 65 64 3d 79 65 73 22 29 0a 20 enabled=yes").
9110: 20 24 61 64 64 43 4c 20 28 22 20 2f 73 79 73 74 $addCL (" /syst
9120: 65 6d 20 72 6f 75 74 65 72 62 6f 61 72 64 20 6d em routerboard m
9130: 6f 64 65 2d 62 75 74 74 6f 6e 20 73 65 74 20 6f ode-button set o
9140: 6e 2d 65 76 65 6e 74 3d 64 61 72 6b 2d 6d 6f 64 n-event=dark-mod
9150: 65 22 29 0a 20 20 24 61 64 64 43 4c 20 28 22 20 e"). $addCL ("
9160: 2f 73 79 73 74 65 6d 20 73 63 72 69 70 74 20 61 /system script a
9170: 64 64 20 6e 61 6d 65 3d 64 61 72 6b 2d 6d 6f 64 dd name=dark-mod
9180: 65 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 e comment=\"defc
9190: 6f 6e 66 5c 22 20 73 6f 75 72 63 65 3d 7b 22 29 onf\" source={")
91a0: 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 3a . $addCL (" :
91b0: 69 66 20 28 5b 73 79 73 74 65 6d 20 6c 65 64 73 if ([system leds
91c0: 20 73 65 74 74 69 6e 67 73 20 67 65 74 20 61 6c settings get al
91d0: 6c 2d 6c 65 64 73 2d 6f 66 66 5d 20 3d 20 5c 22 l-leds-off] = \"
91e0: 6e 65 76 65 72 5c 22 29 20 64 6f 3d 7b 22 29 0a never\") do={").
91f0: 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 20 $addCL ("
9200: 2f 73 79 73 74 65 6d 20 6c 65 64 73 20 73 65 74 /system leds set
9210: 74 69 6e 67 73 20 73 65 74 20 61 6c 6c 2d 6c 65 tings set all-le
9220: 64 73 2d 6f 66 66 3d 69 6d 6d 65 64 69 61 74 65 ds-off=immediate
9230: 20 22 29 0a 20 20 24 61 64 64 43 4c 20 28 22 20 "). $addCL ("
9240: 20 20 7d 20 65 6c 73 65 3d 7b 22 29 0a 20 20 24 } else={"). $
9250: 61 64 64 43 4c 20 28 22 20 20 20 20 20 2f 73 79 addCL (" /sy
9260: 73 74 65 6d 20 6c 65 64 73 20 73 65 74 74 69 6e stem leds settin
9270: 67 73 20 73 65 74 20 61 6c 6c 2d 6c 65 64 73 2d gs set all-leds-
9280: 6f 66 66 3d 6e 65 76 65 72 20 22 29 0a 20 20 24 off=never "). $
9290: 61 64 64 43 4c 20 28 22 20 20 20 7d 22 29 0a 20 addCL (" }").
92a0: 20 24 61 64 64 43 4c 20 28 22 20 7d 22 29 0a 7d $addCL (" }").}
92b0: 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..#-------------
92c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
92d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
92e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
92f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9300: 2d 2d 0a 23 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --.#.#----------
9310: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9320: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9330: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9340: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9350: 2d 2d 2d 2d 2d 0a 3a 67 6c 6f 62 61 6c 20 73 65 -----.:global se
9360: 74 57 70 73 42 75 74 74 6f 6e 20 64 6f 3d 7b 0a tWpsButton do={.
9370: 20 20 3a 67 6c 6f 62 61 6c 20 61 64 64 43 4c 3b :global addCL;
9380: 0a 20 20 3a 67 6c 6f 62 61 6c 20 61 64 64 44 4c . :global addDL
9390: 3b 0a 20 20 24 61 64 64 43 4c 20 28 22 20 2f 73 ;. $addCL (" /s
93a0: 79 73 74 65 6d 20 72 6f 75 74 65 72 62 6f 61 72 ystem routerboar
93b0: 64 20 77 70 73 2d 62 75 74 74 6f 6e 20 73 65 74 d wps-button set
93c0: 20 65 6e 61 62 6c 65 64 3d 79 65 73 22 29 0a 20 enabled=yes").
93d0: 20 24 61 64 64 43 4c 20 28 22 20 2f 73 79 73 74 $addCL (" /syst
93e0: 65 6d 20 72 6f 75 74 65 72 62 6f 61 72 64 20 77 em routerboard w
93f0: 70 73 2d 62 75 74 74 6f 6e 20 73 65 74 20 6f 6e ps-button set on
9400: 2d 65 76 65 6e 74 3d 77 70 73 2d 61 63 63 65 70 -event=wps-accep
9410: 74 22 29 0a 20 20 24 61 64 64 43 4c 20 28 22 20 t"). $addCL ("
9420: 2f 73 79 73 74 65 6d 20 73 63 72 69 70 74 20 61 /system script a
9430: 64 64 20 6e 61 6d 65 3d 77 70 73 2d 61 63 63 65 dd name=wps-acce
9440: 70 74 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 pt comment=\"def
9450: 63 6f 6e 66 5c 22 20 73 6f 75 72 63 65 3d 7b 22 conf\" source={"
9460: 29 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 ). $addCL ("
9470: 3a 66 6f 72 65 61 63 68 20 69 66 61 63 65 20 69 :foreach iface i
9480: 6e 3d 5b 2f 69 6e 74 65 72 66 61 63 65 2f 77 69 n=[/interface/wi
9490: 66 69 20 66 69 6e 64 20 77 68 65 72 65 20 28 63 fi find where (c
94a0: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 6d 6f 64 onfiguration.mod
94b0: 65 3d 5c 22 61 70 5c 22 20 26 26 20 64 69 73 61 e=\"ap\" && disa
94c0: 62 6c 65 64 3d 6e 6f 29 5d 20 64 6f 3d 7b 22 29 bled=no)] do={")
94d0: 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 . $addCL ("
94e0: 20 2f 69 6e 74 65 72 66 61 63 65 2f 77 69 66 69 /interface/wifi
94f0: 20 77 70 73 2d 70 75 73 68 2d 62 75 74 74 6f 6e wps-push-button
9500: 20 5c 24 69 66 61 63 65 3b 7d 22 29 0a 20 20 24 \$iface;}"). $
9510: 61 64 64 43 4c 20 28 22 20 7d 22 29 0a 7d 0a 0a addCL (" }").}..
9520: 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d #---------------
9530: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9540: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9550: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9560: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9570: 0a 23 20 61 64 64 20 69 6e 74 65 72 66 61 63 65 .# add interface
9580: 20 6c 69 73 74 73 0a 23 2d 2d 2d 2d 2d 2d 2d 2d lists.#--------
9590: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
95a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
95b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
95c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
95d0: 2d 2d 2d 2d 2d 2d 2d 0a 3a 67 6c 6f 62 61 6c 20 -------.:global
95e0: 73 65 74 49 6e 74 65 72 66 61 63 65 4c 69 73 74 setInterfaceList
95f0: 73 20 64 6f 3d 7b 0a 20 20 3a 67 6c 6f 62 61 6c s do={. :global
9600: 20 61 64 64 43 4c 3b 0a 20 20 3a 67 6c 6f 62 61 addCL;. :globa
9610: 6c 20 61 64 64 44 4c 3b 0a 0a 20 20 24 61 64 64 l addDL;.. $add
9620: 43 4c 20 28 22 20 2f 69 6e 74 65 72 66 61 63 65 CL (" /interface
9630: 20 6c 69 73 74 20 61 64 64 20 6e 61 6d 65 3d 57 list add name=W
9640: 41 4e 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 AN comment=\"def
9650: 63 6f 6e 66 5c 22 22 29 0a 20 20 24 61 64 64 43 conf\""). $addC
9660: 4c 20 28 22 20 2f 69 6e 74 65 72 66 61 63 65 20 L (" /interface
9670: 6c 69 73 74 20 61 64 64 20 6e 61 6d 65 3d 4c 41 list add name=LA
9680: 4e 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 N comment=\"defc
9690: 6f 6e 66 5c 22 22 29 0a 7d 0a 0a 23 2d 2d 2d 2d onf\"").}..#----
96a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
96b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
96c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
96d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
96e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 73 65 -----------.# se
96f0: 74 20 77 6c 61 6e 33 20 61 73 20 77 70 73 2d 73 t wlan3 as wps-s
9700: 79 6e 63 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ync.#-----------
9710: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9720: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9730: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9740: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9750: 2d 2d 2d 2d 0a 3a 67 6c 6f 62 61 6c 20 73 65 74 ----.:global set
9760: 57 70 73 53 79 6e 63 20 64 6f 3d 7b 0a 20 20 3a WpsSync do={. :
9770: 67 6c 6f 62 61 6c 20 61 64 64 43 4c 3b 0a 20 20 global addCL;.
9780: 3a 67 6c 6f 62 61 6c 20 61 64 64 44 4c 3b 0a 20 :global addDL;.
9790: 20 3a 67 6c 6f 62 61 6c 20 77 69 72 65 6c 65 73 :global wireles
97a0: 73 45 6e 61 62 6c 65 64 3b 0a 0a 20 20 3a 69 66 sEnabled;.. :if
97b0: 20 28 24 77 69 72 65 6c 65 73 73 45 6e 61 62 6c ($wirelessEnabl
97c0: 65 64 20 3d 20 31 29 20 64 6f 3d 7b 0a 20 20 20 ed = 1) do={.
97d0: 20 24 61 64 64 44 4c 20 28 22 23 7c 20 57 50 53 $addDL ("#| WPS
97e0: 20 53 79 6e 63 3a 22 29 0a 20 20 20 20 24 61 64 Sync:"). $ad
97f0: 64 44 4c 20 28 22 23 7c 20 20 20 20 20 6d 6f 64 dDL ("#| mod
9800: 65 3a 20 20 20 20 20 20 20 20 20 20 61 70 2d 62 e: ap-b
9810: 72 69 64 67 65 3b 22 29 0a 0a 20 20 20 20 24 61 ridge;").. $a
9820: 64 64 43 4c 20 28 22 20 20 2f 69 6e 74 65 72 66 ddCL (" /interf
9830: 61 63 65 20 77 69 72 65 6c 65 73 73 20 73 65 63 ace wireless sec
9840: 75 72 69 74 79 2d 70 72 6f 66 69 6c 65 73 20 7b urity-profiles {
9850: 22 29 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 "). $addCL ("
9860: 20 20 20 20 61 64 64 20 6e 61 6d 65 3d 77 70 73 add name=wps
9870: 53 79 6e 63 20 63 6f 6d 6d 65 6e 74 3d 64 65 66 Sync comment=def
9880: 63 6f 6e 66 20 22 29 0a 20 20 20 20 3a 69 66 20 conf "). :if
9890: 28 21 28 24 70 61 73 73 20 3d 20 22 22 20 7c 7c (!($pass = "" ||
98a0: 20 24 70 61 73 73 20 3d 20 6e 69 6c 29 29 20 64 $pass = nil)) d
98b0: 6f 3d 7b 0a 20 20 20 20 20 20 24 61 64 64 44 4c o={. $addDL
98c0: 20 28 22 23 7c 20 20 20 20 20 77 70 61 32 3a 20 ("#| wpa2:
98d0: 20 20 20 20 20 20 20 20 20 79 65 73 3b 22 29 0a yes;").
98e0: 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 $addCL ("
98f0: 20 20 20 73 65 74 20 77 70 73 53 79 6e 63 20 6d set wpsSync m
9900: 6f 64 65 3d 64 79 6e 61 6d 69 63 2d 6b 65 79 73 ode=dynamic-keys
9910: 20 67 72 6f 75 70 2d 63 69 70 68 65 72 73 3d 61 group-ciphers=a
9920: 65 73 2d 63 63 6d 20 75 6e 69 63 61 73 74 2d 63 es-ccm unicast-c
9930: 69 70 68 65 72 73 3d 61 65 73 2d 63 63 6d 20 5c iphers=aes-ccm \
9940: 5c 22 29 0a 20 20 20 20 20 20 24 61 64 64 43 4c \"). $addCL
9950: 20 28 22 20 20 20 20 20 20 61 75 74 68 65 6e 74 (" authent
9960: 69 63 61 74 69 6f 6e 2d 74 79 70 65 73 3d 77 70 ication-types=wp
9970: 61 32 2d 70 73 6b 20 64 69 73 61 62 6c 65 2d 70 a2-psk disable-p
9980: 6d 6b 69 64 3d 79 65 73 20 77 70 61 32 2d 70 72 mkid=yes wpa2-pr
9990: 65 2d 73 68 61 72 65 64 2d 6b 65 79 3d 24 70 61 e-shared-key=$pa
99a0: 73 73 20 22 29 0a 20 20 20 20 7d 0a 20 20 20 20 ss "). }.
99b0: 24 61 64 64 43 4c 20 28 22 20 20 7d 3b 22 29 0a $addCL (" };").
99c0: 0a 20 20 20 20 23 20 77 61 69 74 20 77 6c 61 6e . # wait wlan
99d0: 33 20 69 74 20 74 61 6b 65 73 20 37 73 65 63 20 3 it takes 7sec
99e0: 73 6c 6f 77 65 72 20 74 6f 20 6c 6f 61 64 20 74 slower to load t
99f0: 68 61 6e 20 77 6c 61 6e 31 2f 32 20 6f 6e 20 41 han wlan1/2 on A
9a00: 75 64 69 65 6e 63 65 0a 20 20 20 20 24 61 64 64 udience. $add
9a10: 43 4c 20 28 22 20 20 3a 6c 6f 63 61 6c 20 63 6f CL (" :local co
9a20: 75 6e 74 20 30 3b 22 29 0a 20 20 20 20 24 61 64 unt 0;"). $ad
9a30: 64 43 4c 20 28 22 20 20 3a 77 68 69 6c 65 20 28 dCL (" :while (
9a40: 5b 2f 69 6e 74 65 72 66 61 63 65 20 77 69 72 65 [/interface wire
9a50: 6c 65 73 73 20 66 69 6e 64 20 64 65 66 61 75 6c less find defaul
9a60: 74 2d 6e 61 6d 65 3d 5c 22 77 6c 61 6e 33 5c 22 t-name=\"wlan3\"
9a70: 5d 20 3d 20 5c 22 5c 22 29 20 64 6f 3d 7b 20 22 ] = \"\") do={ "
9a80: 29 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 ). $addCL ("
9a90: 20 20 20 3a 69 66 20 28 5c 24 63 6f 75 6e 74 20 :if (\$count
9aa0: 3d 20 31 35 29 20 64 6f 3d 7b 22 29 0a 20 20 20 = 15) do={").
9ab0: 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 20 20 $addCL ("
9ac0: 3a 6c 6f 67 20 77 61 72 6e 69 6e 67 20 5c 22 44 :log warning \"D
9ad0: 65 66 43 6f 6e 66 3a 20 55 6e 61 62 6c 65 20 74 efConf: Unable t
9ae0: 6f 20 66 69 6e 64 20 77 6c 61 6e 33 20 69 6e 74 o find wlan3 int
9af0: 65 72 66 61 63 65 5c 22 3b 22 29 0a 20 20 20 20 erface\";").
9b00: 24 61 64 64 43 4c 20 28 22 20 20 20 20 20 20 2f $addCL (" /
9b10: 71 75 69 74 22 29 0a 20 20 20 20 24 61 64 64 43 quit"). $addC
9b20: 4c 20 28 22 20 20 20 20 7d 22 29 0a 20 20 20 20 L (" }").
9b30: 24 61 64 64 43 4c 20 28 22 20 20 20 20 3a 64 65 $addCL (" :de
9b40: 6c 61 79 20 31 73 3b 20 3a 73 65 74 20 63 6f 75 lay 1s; :set cou
9b50: 6e 74 20 28 5c 24 63 6f 75 6e 74 20 2b 31 29 3b nt (\$count +1);
9b60: 22 29 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 "). $addCL ("
9b70: 20 20 7d 3b 22 29 0a 0a 20 20 20 20 23 20 54 4f };").. # TO
9b80: 44 4f 3a 20 73 65 74 20 62 61 6e 64 20 61 6e 64 DO: set band and
9b90: 20 65 78 74 2c 20 70 72 6f 62 61 62 6c 79 20 75 ext, probably u
9ba0: 73 65 20 73 65 74 57 6c 61 6e 20 66 75 6e 63 74 se setWlan funct
9bb0: 69 6f 6e 0a 20 20 20 20 24 61 64 64 43 4c 20 28 ion. $addCL (
9bc0: 22 20 20 2f 69 6e 74 65 72 66 61 63 65 20 77 69 " /interface wi
9bd0: 72 65 6c 65 73 73 20 7b 22 29 0a 20 20 20 20 24 reless {"). $
9be0: 61 64 64 43 4c 20 28 22 20 20 20 20 3a 6c 6f 63 addCL (" :loc
9bf0: 61 6c 20 77 6c 33 20 5b 66 69 6e 64 20 64 65 66 al wl3 [find def
9c00: 61 75 6c 74 2d 6e 61 6d 65 3d 5c 22 77 6c 61 6e ault-name=\"wlan
9c10: 33 5c 22 5d 22 29 0a 20 20 20 20 24 61 64 64 43 3\"]"). $addC
9c20: 4c 20 28 22 20 20 20 20 3a 6c 6f 63 61 6c 20 77 L (" :local w
9c30: 6c 61 6e 4d 61 63 20 20 5b 67 65 74 20 5c 24 77 lanMac [get \$w
9c40: 6c 33 20 6d 61 63 2d 61 64 64 72 65 73 73 5d 3b l3 mac-address];
9c50: 22 29 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 "). $addCL ("
9c60: 20 20 20 20 3a 73 65 74 20 73 73 69 64 20 5c 22 :set ssid \"
9c70: 53 59 4e 43 2d 5c 24 5b 3a 70 69 63 6b 20 5c 24 SYNC-\$[:pick \$
9c80: 77 6c 61 6e 4d 61 63 20 39 20 31 31 5d 5c 24 5b wlanMac 9 11]\$[
9c90: 3a 70 69 63 6b 20 5c 24 77 6c 61 6e 4d 61 63 20 :pick \$wlanMac
9ca0: 31 32 20 31 34 5d 5c 24 5b 3a 70 69 63 6b 20 5c 12 14]\$[:pick \
9cb0: 24 77 6c 61 6e 4d 61 63 20 31 35 20 31 37 5d 5c $wlanMac 15 17]\
9cc0: 22 22 29 0a 20 20 20 20 24 61 64 64 43 4c 20 28 ""). $addCL (
9cd0: 22 20 20 20 20 73 65 74 20 5c 24 77 6c 33 20 64 " set \$wl3 d
9ce0: 69 73 61 62 6c 65 64 3d 6e 6f 20 6d 6f 64 65 3d isabled=no mode=
9cf0: 61 70 2d 62 72 69 64 67 65 20 62 61 6e 64 3d 35 ap-bridge band=5
9d00: 67 68 7a 2d 61 2f 6e 2f 61 63 20 73 73 69 64 3d ghz-a/n/ac ssid=
9d10: 5c 24 73 73 69 64 20 73 65 63 75 72 69 74 79 2d \$ssid security-
9d20: 70 72 6f 66 69 6c 65 3d 77 70 73 53 79 6e 63 20 profile=wpsSync
9d30: 77 70 73 2d 6d 6f 64 65 3d 70 75 73 68 2d 62 75 wps-mode=push-bu
9d40: 74 74 6f 6e 22 29 0a 20 20 20 20 23 20 73 65 74 tton"). # set
9d50: 20 63 68 61 6e 6e 6e 65 6c 20 77 69 64 74 68 20 channnel width
9d60: 32 30 2f 34 30 2f 38 30 6d 68 7a 2d 58 58 58 58 20/40/80mhz-XXXX
9d70: 20 28 72 75 73 73 69 61 20 32 30 2f 34 30 6d 68 (russia 20/40mh
9d80: 7a 2d 58 58 29 0a 0a 0a 20 20 20 20 23 20 77 61 z-XX)... # wa
9d90: 69 74 20 77 6c 61 6e 33 20 69 74 20 74 61 6b 65 it wlan3 it take
9da0: 73 20 37 73 65 63 20 73 6c 6f 77 65 72 20 74 6f s 7sec slower to
9db0: 20 6c 6f 61 64 20 74 68 61 6e 20 77 6c 61 6e 31 load than wlan1
9dc0: 2f 32 20 6f 6e 20 41 75 64 69 65 6e 63 65 0a 20 /2 on Audience.
9dd0: 20 20 20 3a 6c 6f 63 61 6c 20 63 6f 75 6e 74 20 :local count
9de0: 30 3b 0a 20 20 20 20 3a 77 68 69 6c 65 20 28 5b 0;. :while ([
9df0: 2f 69 6e 74 65 72 66 61 63 65 20 77 69 72 65 6c /interface wirel
9e00: 65 73 73 20 66 69 6e 64 20 64 65 66 61 75 6c 74 ess find default
9e10: 2d 6e 61 6d 65 3d 22 77 6c 61 6e 33 22 5d 20 3d -name="wlan3"] =
9e20: 20 22 22 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 "") do={.
9e30: 3a 69 66 20 28 24 63 6f 75 6e 74 20 3d 20 33 30 :if ($count = 30
9e40: 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 3a ) do={. :
9e50: 6c 6f 67 20 77 61 72 6e 69 6e 67 20 22 44 65 66 log warning "Def
9e60: 43 6f 6e 66 3a 20 55 6e 61 62 6c 65 20 74 6f 20 Conf: Unable to
9e70: 66 69 6e 64 20 77 6c 61 6e 33 20 69 6e 74 65 72 find wlan3 inter
9e80: 66 61 63 65 22 3b 0a 20 20 20 20 20 20 20 20 2f face";. /
9e90: 71 75 69 74 0a 20 20 20 20 20 20 7d 0a 20 20 20 quit. }.
9ea0: 20 20 20 3a 64 65 6c 61 79 20 31 73 3b 20 3a 73 :delay 1s; :s
9eb0: 65 74 20 63 6f 75 6e 74 20 28 24 63 6f 75 6e 74 et count ($count
9ec0: 20 2b 31 29 3b 0a 20 20 20 20 7d 3b 0a 0a 20 20 +1);. };..
9ed0: 20 20 3a 6c 6f 63 61 6c 20 68 77 49 6e 66 6f 20 :local hwInfo
9ee0: 5b 2f 69 6e 74 65 72 66 61 63 65 20 77 69 72 65 [/interface wire
9ef0: 6c 65 73 73 20 69 6e 66 6f 20 68 77 2d 69 6e 66 less info hw-inf
9f00: 6f 20 5b 2e 2e 20 66 69 6e 64 20 77 68 65 72 65 o [.. find where
9f10: 20 64 65 66 61 75 6c 74 2d 6e 61 6d 65 3d 22 77 default-name="w
9f20: 6c 61 6e 33 22 5d 20 61 73 2d 76 61 6c 75 65 5d lan3"] as-value]
9f30: 3b 0a 20 20 20 20 20 20 24 61 64 64 44 4c 20 28 ;. $addDL (
9f40: 22 23 7c 20 20 20 20 20 63 68 61 6e 6e 65 6c 2d "#| channel-
9f50: 77 69 64 74 68 3a 20 32 30 2f 34 30 6d 68 7a 2d width: 20/40mhz-
9f60: 58 58 3b 22 29 0a 20 20 20 20 20 20 24 61 64 64 XX;"). $add
9f70: 43 4c 20 28 22 20 20 20 20 73 65 74 20 5c 24 77 CL (" set \$w
9f80: 6c 33 20 63 68 61 6e 6e 65 6c 2d 77 69 64 74 68 l3 channel-width
9f90: 3d 32 30 2f 34 30 6d 68 7a 2d 58 58 22 29 0a 20 =20/40mhz-XX").
9fa0: 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 7d 3b $addCL (" };
9fb0: 22 29 0a 20 20 7d 0a 7d 0a 0a 23 2d 2d 2d 2d 2d "). }.}..#-----
9fc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9fd0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9fe0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
9ff0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
a000: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 73 65 74 ----------.# set
a010: 20 73 65 74 20 75 70 20 72 6f 75 74 65 72 20 74 set up router t
a020: 6f 20 62 65 20 61 20 43 41 50 73 4d 41 4e 0a 23 o be a CAPsMAN.#
a030: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
a040: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
a050: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
a060: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
a070: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a ---------------.
a080: 3a 67 6c 6f 62 61 6c 20 73 65 74 43 61 70 73 4d :global setCapsM
a090: 61 6e 20 64 6f 3d 7b 0a 20 20 3a 67 6c 6f 62 61 an do={. :globa
a0a0: 6c 20 61 64 64 43 4c 3b 0a 20 20 3a 67 6c 6f 62 l addCL;. :glob
a0b0: 61 6c 20 61 64 64 44 4c 3b 0a 20 20 3a 67 6c 6f al addDL;. :glo
a0c0: 62 61 6c 20 61 64 64 44 43 4c 3b 0a 20 20 3a 67 bal addDCL;. :g
a0d0: 6c 6f 62 61 6c 20 77 69 72 65 6c 65 73 73 45 6e lobal wirelessEn
a0e0: 61 62 6c 65 64 3b 0a 0a 20 20 3a 69 66 20 28 24 abled;.. :if ($
a0f0: 77 69 72 65 6c 65 73 73 45 6e 61 62 6c 65 64 20 wirelessEnabled
a100: 3d 20 31 29 20 64 6f 3d 7b 0a 20 20 20 20 24 61 = 1) do={. $a
a110: 64 64 44 4c 20 28 22 23 7c 20 43 41 50 73 4d 41 ddDL ("#| CAPsMA
a120: 4e 3a 22 29 0a 20 20 20 20 24 61 64 64 44 4c 20 N:"). $addDL
a130: 28 22 23 7c 20 20 20 20 20 62 61 6e 64 73 3a 20 ("#| bands:
a140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 2f b/
a150: 67 2f 6e 2c 20 61 2f 6e 2c 20 61 2f 6e 2f 61 63 g/n, a/n, a/n/ac
a160: 3b 22 29 0a 20 20 20 20 24 61 64 64 44 4c 20 28 ;"). $addDL (
a170: 22 23 7c 20 20 20 20 20 69 6e 73 74 61 6c 6c 61 "#| installa
a180: 74 69 6f 6e 3a 20 20 20 20 20 20 20 20 24 69 6e tion: $in
a190: 73 74 61 6c 6c 61 74 69 6f 6e 3b 22 29 0a 20 20 stallation;").
a1a0: 20 20 24 61 64 64 44 4c 20 28 22 23 7c 20 20 20 $addDL ("#|
a1b0: 20 20 63 68 61 6e 6e 65 6c 2d 77 69 64 74 68 3a channel-width:
a1c0: 20 20 20 20 20 20 20 32 30 4d 48 7a 3b 22 29 0a 20MHz;").
a1d0: 20 20 20 20 24 61 64 64 44 4c 20 28 22 23 7c 20 $addDL ("#|
a1e0: 20 20 20 20 66 6f 72 77 61 72 64 69 6e 67 3a 20 forwarding:
a1f0: 20 20 20 20 20 20 20 20 20 6c 6f 63 61 6c 3b 22 local;"
a200: 29 0a 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 ).. $addCL ("
a210: 20 20 2f 63 61 70 73 2d 6d 61 6e 20 73 65 63 75 /caps-man secu
a220: 72 69 74 79 20 7b 22 29 0a 20 20 20 20 24 61 64 rity {"). $ad
a230: 64 43 4c 20 28 22 20 20 20 20 61 64 64 20 6e 61 dCL (" add na
a240: 6d 65 3d 63 61 70 53 65 63 20 63 6f 6d 6d 65 6e me=capSec commen
a250: 74 3d 64 65 66 63 6f 6e 66 22 29 0a 20 20 20 20 t=defconf").
a260: 3a 69 66 20 28 21 28 24 70 61 73 73 20 3d 20 22 :if (!($pass = "
a270: 22 20 7c 7c 20 24 70 61 73 73 20 3d 20 6e 69 6c " || $pass = nil
a280: 29 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 24 61 )) do={. $a
a290: 64 64 44 4c 20 28 22 23 7c 20 20 20 20 20 77 70 ddDL ("#| wp
a2a0: 61 32 3a 20 20 20 20 20 20 20 20 20 20 79 65 73 a2: yes
a2b0: 3b 22 29 0a 20 20 20 20 20 20 24 61 64 64 43 4c ;"). $addCL
a2c0: 20 28 22 20 20 20 20 73 65 74 20 63 61 70 53 65 (" set capSe
a2d0: 63 20 65 6e 63 72 79 70 74 69 6f 6e 3d 61 65 73 c encryption=aes
a2e0: 2d 63 63 6d 20 67 72 6f 75 70 2d 65 6e 63 72 79 -ccm group-encry
a2f0: 70 74 69 6f 6e 3d 61 65 73 2d 63 63 6d 20 5c 5c ption=aes-ccm \\
a300: 22 29 0a 20 20 20 20 20 20 24 61 64 64 43 4c 20 "). $addCL
a310: 28 22 20 20 20 20 20 20 61 75 74 68 65 6e 74 69 (" authenti
a320: 63 61 74 69 6f 6e 2d 74 79 70 65 73 3d 77 70 61 cation-types=wpa
a330: 32 2d 70 73 6b 20 64 69 73 61 62 6c 65 2d 70 6d 2-psk disable-pm
a340: 6b 69 64 3d 79 65 73 20 70 61 73 73 70 68 72 61 kid=yes passphra
a350: 73 65 3d 24 70 61 73 73 22 29 0a 20 20 20 20 7d se=$pass"). }
a360: 20 65 6c 73 65 3d 7b 0a 20 20 20 20 20 20 24 61 else={. $a
a370: 64 64 44 4c 20 28 22 23 7c 20 20 20 20 20 77 70 ddDL ("#| wp
a380: 61 32 3a 20 20 20 20 20 20 6e 6f 3b 22 29 0a 20 a2: no;").
a390: 20 20 20 7d 0a 20 20 20 20 24 61 64 64 43 4c 20 }. $addCL
a3a0: 28 22 20 20 7d 3b 22 29 0a 0a 20 20 20 20 24 61 (" };").. $a
a3b0: 64 64 43 4c 20 28 22 20 20 2f 63 61 70 73 2d 6d ddCL (" /caps-m
a3c0: 61 6e 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e an configuration
a3d0: 20 7b 22 29 0a 20 20 20 20 24 61 64 64 43 4c 20 {"). $addCL
a3e0: 28 22 20 20 20 20 61 64 64 20 6e 61 6d 65 3d 63 (" add name=c
a3f0: 66 67 2d 32 67 68 7a 20 73 73 69 64 3d 24 73 73 fg-2ghz ssid=$ss
a400: 69 64 50 72 65 66 69 78 2d 32 20 63 68 61 6e 6e idPrefix-2 chann
a410: 65 6c 2e 62 61 6e 64 3d 32 67 68 7a 2d 62 2f 67 el.band=2ghz-b/g
a420: 2f 6e 20 63 68 61 6e 6e 65 6c 2e 63 6f 6e 74 72 /n channel.contr
a430: 6f 6c 2d 63 68 61 6e 6e 65 6c 2d 77 69 64 74 68 ol-channel-width
a440: 3d 32 30 6d 68 7a 20 5c 5c 22 29 0a 20 20 20 20 =20mhz \\").
a450: 24 61 64 64 43 4c 20 28 22 20 20 20 20 20 20 63 $addCL (" c
a460: 68 61 6e 6e 65 6c 2e 65 78 74 65 6e 73 69 6f 6e hannel.extension
a470: 2d 63 68 61 6e 6e 65 6c 3d 58 58 20 64 69 73 74 -channel=XX dist
a480: 61 6e 63 65 3d 24 64 69 73 74 61 6e 63 65 20 69 ance=$distance i
a490: 6e 73 74 61 6c 6c 61 74 69 6f 6e 3d 24 69 6e 73 nstallation=$ins
a4a0: 74 61 6c 6c 61 74 69 6f 6e 20 73 65 63 75 72 69 tallation securi
a4b0: 74 79 3d 63 61 70 53 65 63 20 5c 5c 22 29 0a 20 ty=capSec \\").
a4c0: 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 $addCL ("
a4d0: 20 20 64 61 74 61 70 61 74 68 2e 63 6c 69 65 6e datapath.clien
a4e0: 74 2d 74 6f 2d 63 6c 69 65 6e 74 2d 66 6f 72 77 t-to-client-forw
a4f0: 61 72 64 69 6e 67 3d 79 65 73 20 64 61 74 61 70 arding=yes datap
a500: 61 74 68 2e 6c 6f 63 61 6c 2d 66 6f 72 77 61 72 ath.local-forwar
a510: 64 69 6e 67 3d 79 65 73 20 63 6f 6d 6d 65 6e 74 ding=yes comment
a520: 3d 64 65 66 63 6f 6e 66 22 29 0a 0a 20 20 20 20 =defconf")..
a530: 24 61 64 64 43 4c 20 28 22 20 20 20 20 61 64 64 $addCL (" add
a540: 20 6e 61 6d 65 3d 63 66 67 2d 35 67 68 7a 2d 61 name=cfg-5ghz-a
a550: 63 20 73 73 69 64 3d 24 73 73 69 64 50 72 65 66 c ssid=$ssidPref
a560: 69 78 2d 35 20 63 68 61 6e 6e 65 6c 2e 62 61 6e ix-5 channel.ban
a570: 64 3d 35 67 68 7a 2d 61 2f 6e 2f 61 63 20 63 68 d=5ghz-a/n/ac ch
a580: 61 6e 6e 65 6c 2e 63 6f 6e 74 72 6f 6c 2d 63 68 annel.control-ch
a590: 61 6e 6e 65 6c 2d 77 69 64 74 68 3d 32 30 6d 68 annel-width=20mh
a5a0: 7a 20 5c 5c 22 29 0a 20 20 20 20 24 61 64 64 43 z \\"). $addC
a5b0: 4c 20 28 22 20 20 20 20 20 20 63 68 61 6e 6e 65 L (" channe
a5c0: 6c 2e 65 78 74 65 6e 73 69 6f 6e 2d 63 68 61 6e l.extension-chan
a5d0: 6e 65 6c 3d 58 58 58 58 20 64 69 73 74 61 6e 63 nel=XXXX distanc
a5e0: 65 3d 24 64 69 73 74 61 6e 63 65 20 69 6e 73 74 e=$distance inst
a5f0: 61 6c 6c 61 74 69 6f 6e 3d 24 69 6e 73 74 61 6c allation=$instal
a600: 6c 61 74 69 6f 6e 20 73 65 63 75 72 69 74 79 3d lation security=
a610: 63 61 70 53 65 63 20 5c 5c 22 29 0a 20 20 20 20 capSec \\").
a620: 24 61 64 64 43 4c 20 28 22 20 20 20 20 20 20 64 $addCL (" d
a630: 61 74 61 70 61 74 68 2e 63 6c 69 65 6e 74 2d 74 atapath.client-t
a640: 6f 2d 63 6c 69 65 6e 74 2d 66 6f 72 77 61 72 64 o-client-forward
a650: 69 6e 67 3d 79 65 73 20 64 61 74 61 70 61 74 68 ing=yes datapath
a660: 2e 6c 6f 63 61 6c 2d 66 6f 72 77 61 72 64 69 6e .local-forwardin
a670: 67 3d 79 65 73 20 63 6f 6d 6d 65 6e 74 3d 64 65 g=yes comment=de
a680: 66 63 6f 6e 66 22 29 0a 0a 20 20 20 20 24 61 64 fconf").. $ad
a690: 64 43 4c 20 28 22 20 20 20 20 61 64 64 20 6e 61 dCL (" add na
a6a0: 6d 65 3d 63 66 67 2d 35 67 68 7a 2d 61 6e 20 73 me=cfg-5ghz-an s
a6b0: 73 69 64 3d 24 73 73 69 64 50 72 65 66 69 78 2d sid=$ssidPrefix-
a6c0: 35 20 63 68 61 6e 6e 65 6c 2e 62 61 6e 64 3d 35 5 channel.band=5
a6d0: 67 68 7a 2d 61 2f 6e 20 63 68 61 6e 6e 65 6c 2e ghz-a/n channel.
a6e0: 63 6f 6e 74 72 6f 6c 2d 63 68 61 6e 6e 65 6c 2d control-channel-
a6f0: 77 69 64 74 68 3d 32 30 6d 68 7a 20 5c 5c 22 29 width=20mhz \\")
a700: 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 . $addCL ("
a710: 20 20 20 20 63 68 61 6e 6e 65 6c 2e 65 78 74 65 channel.exte
a720: 6e 73 69 6f 6e 2d 63 68 61 6e 6e 65 6c 3d 58 58 nsion-channel=XX
a730: 20 64 69 73 74 61 6e 63 65 3d 24 64 69 73 74 61 distance=$dista
a740: 6e 63 65 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e nce installation
a750: 3d 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 73 =$installation s
a760: 65 63 75 72 69 74 79 3d 63 61 70 53 65 63 20 5c ecurity=capSec \
a770: 5c 22 29 0a 20 20 20 20 24 61 64 64 43 4c 20 28 \"). $addCL (
a780: 22 20 20 20 20 20 20 64 61 74 61 70 61 74 68 2e " datapath.
a790: 63 6c 69 65 6e 74 2d 74 6f 2d 63 6c 69 65 6e 74 client-to-client
a7a0: 2d 66 6f 72 77 61 72 64 69 6e 67 3d 79 65 73 20 -forwarding=yes
a7b0: 64 61 74 61 70 61 74 68 2e 6c 6f 63 61 6c 2d 66 datapath.local-f
a7c0: 6f 72 77 61 72 64 69 6e 67 3d 79 65 73 20 63 6f orwarding=yes co
a7d0: 6d 6d 65 6e 74 3d 64 65 66 63 6f 6e 66 22 29 0a mment=defconf").
a7e0: 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 7d $addCL (" }
a7f0: 3b 22 29 0a 0a 20 20 20 20 23 20 54 4f 44 4f 3a ;").. # TODO:
a800: 20 6d 61 6b 65 20 69 74 20 6d 6f 72 65 20 75 6e make it more un
a810: 69 76 65 72 73 61 6c 20 74 6f 20 73 75 70 70 6f iversal to suppo
a820: 72 74 20 6f 6c 64 20 61 20 61 6e 64 20 62 2f 67 rt old a and b/g
a830: 3f 3f 3f 3f 3f 0a 20 20 20 20 24 61 64 64 43 4c ?????. $addCL
a840: 20 28 22 20 20 2f 63 61 70 73 2d 6d 61 6e 20 70 (" /caps-man p
a850: 72 6f 76 69 73 69 6f 6e 69 6e 67 20 7b 22 29 0a rovisioning {").
a860: 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 $addCL ("
a870: 20 61 64 64 20 61 63 74 69 6f 6e 3d 63 72 65 61 add action=crea
a880: 74 65 2d 64 79 6e 61 6d 69 63 2d 65 6e 61 62 6c te-dynamic-enabl
a890: 65 64 20 68 77 2d 73 75 70 70 6f 72 74 65 64 2d ed hw-supported-
a8a0: 6d 6f 64 65 73 3d 67 6e 20 6d 61 73 74 65 72 2d modes=gn master-
a8b0: 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3d 63 66 configuration=cf
a8c0: 67 2d 32 67 68 7a 20 5c 5c 22 29 0a 20 20 20 20 g-2ghz \\").
a8d0: 24 61 64 64 43 4c 20 28 22 20 20 20 20 20 20 6e $addCL (" n
a8e0: 61 6d 65 2d 66 6f 72 6d 61 74 3d 70 72 65 66 69 ame-format=prefi
a8f0: 78 2d 69 64 65 6e 74 69 74 79 20 6e 61 6d 65 2d x-identity name-
a900: 70 72 65 66 69 78 3d 32 67 68 7a 20 63 6f 6d 6d prefix=2ghz comm
a910: 65 6e 74 3d 64 65 66 63 6f 6e 66 22 29 0a 20 20 ent=defconf").
a920: 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 61 $addCL (" a
a930: 64 64 20 61 63 74 69 6f 6e 3d 63 72 65 61 74 65 dd action=create
a940: 2d 64 79 6e 61 6d 69 63 2d 65 6e 61 62 6c 65 64 -dynamic-enabled
a950: 20 68 77 2d 73 75 70 70 6f 72 74 65 64 2d 6d 6f hw-supported-mo
a960: 64 65 73 3d 61 63 20 6d 61 73 74 65 72 2d 63 6f des=ac master-co
a970: 6e 66 69 67 75 72 61 74 69 6f 6e 3d 63 66 67 2d nfiguration=cfg-
a980: 35 67 68 7a 2d 61 63 20 5c 5c 22 29 0a 20 20 20 5ghz-ac \\").
a990: 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 20 20 $addCL ("
a9a0: 6e 61 6d 65 2d 66 6f 72 6d 61 74 3d 70 72 65 66 name-format=pref
a9b0: 69 78 2d 69 64 65 6e 74 69 74 79 20 6e 61 6d 65 ix-identity name
a9c0: 2d 70 72 65 66 69 78 3d 35 67 68 7a 2d 61 63 20 -prefix=5ghz-ac
a9d0: 63 6f 6d 6d 65 6e 74 3d 64 65 66 63 6f 6e 66 22 comment=defconf"
a9e0: 29 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 ). $addCL ("
a9f0: 20 20 20 61 64 64 20 61 63 74 69 6f 6e 3d 63 72 add action=cr
aa00: 65 61 74 65 2d 64 79 6e 61 6d 69 63 2d 65 6e 61 eate-dynamic-ena
aa10: 62 6c 65 64 20 68 77 2d 73 75 70 70 6f 72 74 65 bled hw-supporte
aa20: 64 2d 6d 6f 64 65 73 3d 61 6e 20 6d 61 73 74 65 d-modes=an maste
aa30: 72 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3d r-configuration=
aa40: 63 66 67 2d 35 67 68 7a 2d 61 6e 20 5c 5c 22 29 cfg-5ghz-an \\")
aa50: 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 . $addCL ("
aa60: 20 20 20 20 6e 61 6d 65 2d 66 6f 72 6d 61 74 3d name-format=
aa70: 70 72 65 66 69 78 2d 69 64 65 6e 74 69 74 79 20 prefix-identity
aa80: 6e 61 6d 65 2d 70 72 65 66 69 78 3d 35 67 68 7a name-prefix=5ghz
aa90: 2d 61 6e 20 63 6f 6d 6d 65 6e 74 3d 64 65 66 63 -an comment=defc
aaa0: 6f 6e 66 20 22 29 0a 20 20 20 20 24 61 64 64 43 onf "). $addC
aab0: 4c 20 28 22 20 20 7d 3b 22 29 0a 0a 20 20 20 20 L (" };")..
aac0: 24 61 64 64 43 4c 20 28 22 20 20 2f 63 61 70 73 $addCL (" /caps
aad0: 2d 6d 61 6e 20 6d 61 6e 61 67 65 72 20 69 6e 74 -man manager int
aae0: 65 72 66 61 63 65 20 7b 22 29 0a 20 20 20 20 24 erface {"). $
aaf0: 61 64 64 43 4c 20 28 22 20 20 20 20 73 65 74 20 addCL (" set
ab00: 5b 20 66 69 6e 64 20 64 65 66 61 75 6c 74 3d 79 [ find default=y
ab10: 65 73 20 5d 20 66 6f 72 62 69 64 3d 79 65 73 22 es ] forbid=yes"
ab20: 29 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 ). $addCL ("
ab30: 20 20 20 61 64 64 20 64 69 73 61 62 6c 65 64 3d add disabled=
ab40: 6e 6f 20 69 6e 74 65 72 66 61 63 65 3d 24 6c 61 no interface=$la
ab50: 6e 50 6f 72 74 20 63 6f 6d 6d 65 6e 74 3d 64 65 nPort comment=de
ab60: 66 63 6f 6e 66 22 29 0a 20 20 20 20 24 61 64 64 fconf"). $add
ab70: 43 4c 20 28 22 20 20 7d 3b 22 29 0a 0a 20 20 20 CL (" };")..
ab80: 20 24 61 64 64 43 4c 20 28 22 20 20 2f 63 61 70 $addCL (" /cap
ab90: 73 2d 6d 61 6e 20 6d 61 6e 61 67 65 72 20 73 65 s-man manager se
aba0: 74 20 65 6e 61 62 6c 65 64 3d 79 65 73 22 29 0a t enabled=yes").
abb0: 20 20 7d 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d }.}..#--------
abc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
abd0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
abe0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
abf0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
ac00: 2d 2d 2d 2d 2d 2d 2d 0a 23 20 53 65 74 20 62 6f -------.# Set bo
ac10: 6e 64 69 6e 67 20 66 6f 72 20 77 36 30 67 20 62 nding for w60g b
ac20: 61 63 6b 75 70 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d ackup.#---------
ac30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
ac40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
ac50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
ac60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
ac70: 2d 2d 2d 2d 2d 2d 0a 3a 67 6c 6f 62 61 6c 20 73 ------.:global s
ac80: 65 74 42 6f 6e 64 69 6e 67 20 64 6f 3d 7b 0a 20 etBonding do={.
ac90: 20 3a 67 6c 6f 62 61 6c 20 61 64 64 43 4c 3b 0a :global addCL;.
aca0: 20 20 3a 67 6c 6f 62 61 6c 20 61 64 64 44 4c 3b :global addDL;
acb0: 0a 0a 20 20 3a 69 66 20 28 21 28 24 6d 6f 64 65 .. :if (!($mode
acc0: 20 3d 20 22 22 20 7c 7c 20 24 6d 6f 64 65 20 3d = "" || $mode =
acd0: 20 6e 69 6c 29 29 20 64 6f 3d 7b 0a 20 20 20 20 nil)) do={.
ace0: 3a 69 66 20 28 24 6d 6f 64 65 20 3d 20 22 73 6c :if ($mode = "sl
acf0: 61 76 65 22 29 20 64 6f 3d 7b 0a 20 20 20 20 20 ave") do={.
ad00: 20 24 61 64 64 43 4c 20 28 22 20 20 2f 69 6e 74 $addCL (" /int
ad10: 65 72 66 61 63 65 20 62 6f 6e 64 69 6e 67 20 61 erface bonding a
ad20: 64 64 20 6e 61 6d 65 3d 62 6f 6e 64 31 20 6d 6f dd name=bond1 mo
ad30: 64 65 3d 61 63 74 69 76 65 2d 62 61 63 6b 75 70 de=active-backup
ad40: 20 70 72 69 6d 61 72 79 3d 77 6c 61 6e 36 30 2d primary=wlan60-
ad50: 31 20 73 6c 61 76 65 73 3d 77 6c 61 6e 36 30 2d 1 slaves=wlan60-
ad60: 31 2c 77 6c 61 6e 31 20 63 6f 6d 6d 65 6e 74 3d 1,wlan1 comment=
ad70: 5c 22 64 65 66 63 6f 6e 66 5c 22 22 29 0a 20 20 \"defconf\"").
ad80: 20 20 7d 0a 20 20 20 20 3a 69 66 20 28 24 6d 6f }. :if ($mo
ad90: 64 65 20 3d 20 22 6d 61 73 74 65 72 22 29 20 64 de = "master") d
ada0: 6f 3d 7b 0a 20 20 20 20 20 20 24 61 64 64 43 4c o={. $addCL
adb0: 20 28 22 20 20 2f 69 6e 74 65 72 66 61 63 65 20 (" /interface
adc0: 77 36 30 67 20 73 74 61 74 69 6f 6e 20 61 64 64 w60g station add
add0: 20 70 61 72 65 6e 74 3d 77 6c 61 6e 36 30 2d 31 parent=wlan60-1
ade0: 20 6e 61 6d 65 3d 77 6c 61 6e 36 30 2d 73 74 61 name=wlan60-sta
adf0: 74 69 6f 6e 2d 31 20 20 72 65 6d 6f 74 65 2d 61 tion-1 remote-a
ae00: 64 64 72 65 73 73 3d 24 72 65 6d 6f 74 65 4d 61 ddress=$remoteMa
ae10: 63 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 c comment=\"defc
ae20: 6f 6e 66 5c 22 22 29 0a 20 20 20 20 20 20 24 61 onf\""). $a
ae30: 64 64 43 4c 20 28 22 20 20 2f 69 6e 74 65 72 66 ddCL (" /interf
ae40: 61 63 65 20 62 6f 6e 64 69 6e 67 20 61 64 64 20 ace bonding add
ae50: 6e 61 6d 65 3d 62 6f 6e 64 31 20 6d 6f 64 65 3d name=bond1 mode=
ae60: 61 63 74 69 76 65 2d 62 61 63 6b 75 70 20 70 72 active-backup pr
ae70: 69 6d 61 72 79 3d 77 6c 61 6e 36 30 2d 73 74 61 imary=wlan60-sta
ae80: 74 69 6f 6e 2d 31 20 73 6c 61 76 65 73 3d 77 6c tion-1 slaves=wl
ae90: 61 6e 36 30 2d 73 74 61 74 69 6f 6e 2d 31 2c 77 an60-station-1,w
aea0: 6c 61 6e 31 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 lan1 comment=\"d
aeb0: 65 66 63 6f 6e 66 5c 22 22 29 0a 20 20 20 20 7d efconf\""). }
aec0: 0a 20 20 7d 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d . }.}..#-------
aed0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
aee0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
aef0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
af00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
af10: 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 53 65 74 20 74 --------.# Set t
af20: 79 70 65 3d 6d 69 6e 69 2d 50 43 49 65 20 66 6f ype=mini-PCIe fo
af30: 72 20 4c 52 38 2f 4c 52 39 20 6b 69 74 73 0a 23 r LR8/LR9 kits.#
af40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
af50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
af60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
af70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
af80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a ---------------.
af90: 3a 67 6c 6f 62 61 6c 20 73 65 74 50 43 49 54 79 :global setPCITy
afa0: 70 65 20 64 6f 3d 7b 0a 20 20 3a 67 6c 6f 62 61 pe do={. :globa
afb0: 6c 20 61 64 64 43 4c 3b 0a 20 20 3a 67 6c 6f 62 l addCL;. :glob
afc0: 61 6c 20 61 64 64 44 4c 3b 0a 0a 20 20 20 20 24 al addDL;.. $
afd0: 61 64 64 44 4c 20 28 22 23 7c 20 55 53 42 3a 22 addDL ("#| USB:"
afe0: 29 0a 20 20 20 20 24 61 64 64 44 4c 20 28 22 23 ). $addDL ("#
aff0: 7c 20 20 20 20 20 73 65 74 20 55 53 42 20 74 79 | set USB ty
b000: 70 65 20 61 73 20 6d 69 6e 69 2d 50 43 49 65 22 pe as mini-PCIe"
b010: 29 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 ). $addCL ("
b020: 20 2f 73 79 73 74 65 6d 20 72 6f 75 74 65 72 62 /system routerb
b030: 6f 61 72 64 20 75 73 62 20 73 65 74 20 74 79 70 oard usb set typ
b040: 65 3d 6d 69 6e 69 2d 50 43 49 65 22 29 0a 7d 0a e=mini-PCIe").}.
b050: 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .#--------------
b060: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b070: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b080: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b090: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b0a0: 2d 0a 23 20 53 65 74 20 50 50 50 2d 4f 75 74 20 -.# Set PPP-Out
b0b0: 69 6e 74 65 72 66 61 63 65 20 73 65 74 74 69 6e interface settin
b0c0: 67 73 20 66 6f 72 20 4b 4e 4f 54 20 62 6f 61 72 gs for KNOT boar
b0d0: 64 73 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ds.#------------
b0e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b0f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b100: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b110: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b120: 2d 2d 2d 0a 3a 67 6c 6f 62 61 6c 20 73 65 74 50 ---.:global setP
b130: 50 50 4f 55 54 56 61 72 73 20 64 6f 3d 7b 0a 20 PPOUTVars do={.
b140: 20 3a 67 6c 6f 62 61 6c 20 61 64 64 43 4c 3b 0a :global addCL;.
b150: 20 20 3a 67 6c 6f 62 61 6c 20 61 64 64 44 4c 3b :global addDL;
b160: 0a 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 3a .. $addCL (" :
b170: 6c 6f 63 61 6c 20 63 6f 75 6e 74 20 30 3b 22 29 local count 0;")
b180: 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 3a 77 . $addCL (" :w
b190: 68 69 6c 65 20 28 5b 2f 69 6e 74 65 72 66 61 63 hile ([/interfac
b1a0: 65 20 66 69 6e 64 20 77 68 65 72 65 20 74 79 70 e find where typ
b1b0: 65 3d 5c 22 70 70 70 2d 6f 75 74 5c 22 5d 20 3d e=\"ppp-out\"] =
b1c0: 20 5c 22 5c 22 29 20 64 6f 3d 7b 22 29 0a 20 20 \"\") do={").
b1d0: 24 61 64 64 43 4c 20 28 22 20 20 20 20 3a 69 66 $addCL (" :if
b1e0: 20 28 5c 24 63 6f 75 6e 74 20 3d 20 31 30 29 20 (\$count = 10)
b1f0: 64 6f 3d 7b 22 29 0a 20 20 24 61 64 64 43 4c 20 do={"). $addCL
b200: 28 22 20 20 20 20 20 20 3a 6c 6f 67 20 77 61 72 (" :log war
b210: 6e 69 6e 67 20 5c 22 44 65 66 43 6f 6e 66 3a 20 ning \"DefConf:
b220: 55 6e 61 62 6c 65 20 74 6f 20 66 69 6e 64 20 70 Unable to find p
b230: 70 70 20 69 6e 74 65 72 66 61 63 65 73 5c 22 3b pp interfaces\";
b240: 22 29 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 "). $addCL ("
b250: 20 20 20 20 2f 71 75 69 74 3b 22 29 0a 20 20 24 /quit;"). $
b260: 61 64 64 43 4c 20 28 22 20 20 20 20 7d 22 29 0a addCL (" }").
b270: 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 3a $addCL (" :
b280: 64 65 6c 61 79 20 31 73 3b 20 3a 73 65 74 20 63 delay 1s; :set c
b290: 6f 75 6e 74 20 28 5c 24 63 6f 75 6e 74 20 2b 31 ount (\$count +1
b2a0: 29 3b 20 22 29 0a 20 20 24 61 64 64 43 4c 20 28 ); "). $addCL (
b2b0: 22 20 20 7d 3b 22 29 0a 20 20 24 61 64 64 43 4c " };"). $addCL
b2c0: 20 28 22 20 20 2f 69 6e 74 65 72 66 61 63 65 20 (" /interface
b2d0: 70 70 70 2d 63 6c 69 65 6e 74 20 73 65 74 20 70 ppp-client set p
b2e0: 70 70 2d 6f 75 74 31 20 64 65 66 61 75 6c 74 2d pp-out1 default-
b2f0: 72 6f 75 74 65 2d 64 69 73 74 61 6e 63 65 3d 32 route-distance=2
b300: 20 64 69 73 61 62 6c 65 64 3d 6e 6f 22 29 0a 7d disabled=no").}
b310: 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..#-------------
b320: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b330: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b340: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b350: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b360: 2d 2d 0a 23 20 53 65 74 20 77 69 72 65 64 20 69 --.# Set wired i
b370: 6e 74 65 72 66 61 63 65 20 71 75 65 75 65 20 74 nterface queue t
b380: 79 70 65 20 74 6f 20 46 51 20 43 6f 44 65 6c 0a ype to FQ CoDel.
b390: 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d #---------------
b3a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b3b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b3c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b3d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b3e0: 0a 3a 67 6c 6f 62 61 6c 20 73 65 74 46 71 43 6f .:global setFqCo
b3f0: 64 65 6c 51 75 65 75 65 73 20 64 6f 3d 7b 0a 20 delQueues do={.
b400: 20 3a 67 6c 6f 62 61 6c 20 61 64 64 43 4c 3b 0a :global addCL;.
b410: 20 20 3a 67 6c 6f 62 61 6c 20 61 64 64 44 4c 3b :global addDL;
b420: 0a 20 20 20 20 24 61 64 64 44 4c 20 28 22 23 7c . $addDL ("#|
b430: 20 51 75 65 75 65 3a 22 29 0a 20 20 20 20 24 61 Queue:"). $a
b440: 64 64 44 4c 20 28 22 23 7c 20 20 20 20 20 73 65 ddDL ("#| se
b450: 74 20 77 69 72 65 64 20 69 6e 74 65 72 66 61 63 t wired interfac
b460: 65 20 71 75 65 75 65 20 74 79 70 65 20 74 6f 20 e queue type to
b470: 46 51 20 43 6f 44 65 6c 22 29 0a 20 20 20 20 24 FQ CoDel"). $
b480: 61 64 64 43 4c 20 28 22 2f 71 75 65 75 65 20 74 addCL ("/queue t
b490: 79 70 65 20 61 64 64 20 6e 61 6d 65 3d 66 71 2d ype add name=fq-
b4a0: 63 6f 64 65 6c 2d 65 74 68 65 72 6e 65 74 2d 64 codel-ethernet-d
b4b0: 65 66 61 75 6c 74 20 6b 69 6e 64 3d 66 71 2d 63 efault kind=fq-c
b4c0: 6f 64 65 6c 20 66 71 2d 63 6f 64 65 6c 2d 65 63 odel fq-codel-ec
b4d0: 6e 3d 6e 6f 22 29 0a 20 20 20 20 24 61 64 64 43 n=no"). $addC
b4e0: 4c 20 28 22 2f 71 75 65 75 65 20 69 6e 74 65 72 L ("/queue inter
b4f0: 66 61 63 65 20 73 65 74 20 5b 66 69 6e 64 20 64 face set [find d
b500: 65 66 61 75 6c 74 2d 71 75 65 75 65 3d 6f 6e 6c efault-queue=onl
b510: 79 2d 68 61 72 64 77 61 72 65 2d 71 75 65 75 65 y-hardware-queue
b520: 5d 20 71 75 65 75 65 3d 66 71 2d 63 6f 64 65 6c ] queue=fq-codel
b530: 2d 65 74 68 65 72 6e 65 74 2d 64 65 66 61 75 6c -ethernet-defaul
b540: 74 22 29 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d t").}..#--------
b550: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b560: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b570: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b580: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b590: 2d 2d 2d 2d 2d 2d 2d 0a 23 20 53 65 74 20 64 69 -------.# Set di
b5a0: 73 6b 20 73 68 61 72 69 6e 67 0a 23 2d 2d 2d 2d sk sharing.#----
b5b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b5c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b5d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b5e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b5f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3a 67 6c 6f -----------.:glo
b600: 62 61 6c 20 73 65 74 44 69 73 6b 53 68 61 72 69 bal setDiskShari
b610: 6e 67 20 64 6f 3d 7b 0a 20 20 3a 67 6c 6f 62 61 ng do={. :globa
b620: 6c 20 61 64 64 43 4c 3b 0a 20 20 24 61 64 64 43 l addCL;. $addC
b630: 4c 20 28 22 2f 64 69 73 6b 20 73 65 74 74 69 6e L ("/disk settin
b640: 67 73 22 29 0a 20 20 24 61 64 64 43 4c 20 28 22 gs"). $addCL ("
b650: 20 20 73 65 74 20 61 75 74 6f 2d 73 6d 62 2d 73 set auto-smb-s
b660: 68 61 72 69 6e 67 3d 79 65 73 20 61 75 74 6f 2d haring=yes auto-
b670: 6d 65 64 69 61 2d 73 68 61 72 69 6e 67 3d 79 65 media-sharing=ye
b680: 73 20 61 75 74 6f 2d 6d 65 64 69 61 2d 69 6e 74 s auto-media-int
b690: 65 72 66 61 63 65 3d 24 6c 61 6e 50 6f 72 74 22 erface=$lanPort"
b6a0: 29 0a 7d 0a 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d ).}...#---------
b6b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b6c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b6d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b6e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b6f0: 2d 2d 2d 2d 2d 2d 0a 23 20 52 42 20 43 6f 6e 66 ------.# RB Conf
b700: 69 67 75 72 61 74 69 6f 6e 20 56 61 72 69 61 62 iguration Variab
b710: 6c 65 20 44 65 66 73 0a 23 2d 2d 2d 2d 2d 2d 2d le Defs.#-------
b720: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b730: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b740: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b750: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
b760: 2d 2d 2d 2d 2d 2d 2d 2d 0a 3a 6c 6f 63 61 6c 20 --------.:local
b770: 62 6f 61 72 64 4e 61 6d 65 3b 0a 3a 6c 6f 63 61 boardName;.:loca
b780: 6c 20 6d 61 72 6b 65 74 69 6e 67 4e 61 6d 65 3b l marketingName;
b790: 0a 3a 6c 6f 63 61 6c 20 6c 69 63 65 6e 73 65 4c .:local licenseL
b7a0: 65 76 65 6c 3b 0a 0a 23 20 67 65 74 20 62 6f 61 evel;..# get boa
b7b0: 72 64 20 6e 61 6d 65 0a 3a 73 65 74 20 62 6f 61 rd name.:set boa
b7c0: 72 64 4e 61 6d 65 20 5b 2f 73 79 73 74 65 6d 20 rdName [/system
b7d0: 72 6f 75 74 65 72 62 6f 61 72 64 20 67 65 74 20 routerboard get
b7e0: 6d 6f 64 65 6c 5d 3b 0a 3a 73 65 74 20 6d 61 72 model];.:set mar
b7f0: 6b 65 74 69 6e 67 4e 61 6d 65 20 5b 2f 73 79 73 ketingName [/sys
b800: 74 65 6d 20 72 65 73 6f 75 72 63 65 20 67 65 74 tem resource get
b810: 20 62 6f 61 72 64 2d 6e 61 6d 65 5d 3b 0a 3a 73 board-name];.:s
b820: 65 74 20 6c 69 63 65 6e 73 65 4c 65 76 65 6c 20 et licenseLevel
b830: 5b 2f 73 79 73 74 65 6d 20 6c 69 63 65 6e 73 65 [/system license
b840: 20 67 65 74 20 6e 6c 65 76 65 6c 5d 3b 0a 0a 3a get nlevel];..:
b850: 6c 6f 63 61 6c 20 75 73 65 44 65 74 4e 65 74 20 local useDetNet
b860: 30 3b 0a 3a 6c 6f 63 61 6c 20 70 70 70 41 73 57 0;.:local pppAsW
b870: 41 4e 20 30 3b 0a 3a 6c 6f 63 61 6c 20 77 61 6e AN 0;.:local wan
b880: 50 6f 72 74 73 20 22 22 3b 0a 3a 6c 6f 63 61 6c Ports "";.:local
b890: 20 6c 61 6e 50 6f 72 74 20 22 62 72 69 64 67 65 lanPort "bridge
b8a0: 22 3b 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ";.#------------
b8b0: 77 69 72 65 6c 65 73 73 2d 2d 2d 2d 2d 2d 2d 2d wireless--------
b8c0: 2d 2d 2d 2d 0a 3a 6c 6f 63 61 6c 20 75 73 65 57 ----.:local useW
b8d0: 69 72 65 6c 65 73 73 41 63 20 30 3b 0a 3a 6c 6f irelessAc 0;.:lo
b8e0: 63 61 6c 20 6e 75 6d 57 6c 61 6e 73 20 30 3b 0a cal numWlans 0;.
b8f0: 3a 6c 6f 63 61 6c 20 6e 75 6d 57 69 6c 73 20 30 :local numWils 0
b900: 3b 0a 23 20 73 74 61 74 69 6f 6e 20 6f 72 20 41 ;.# station or A
b910: 50 0a 3a 6c 6f 63 61 6c 20 6d 6f 64 65 31 20 22 P.:local mode1 "
b920: 22 3b 0a 3a 6c 6f 63 61 6c 20 6d 6f 64 65 32 20 ";.:local mode2
b930: 22 22 3b 0a 3a 6c 6f 63 61 6c 20 66 72 65 71 75 "";.:local frequ
b940: 65 6e 63 79 20 22 61 75 74 6f 22 3b 0a 3a 6c 6f ency "auto";.:lo
b950: 63 61 6c 20 64 69 73 74 61 6e 63 65 20 22 64 79 cal distance "dy
b960: 6e 61 6d 69 63 22 3b 0a 23 20 62 79 20 64 65 66 namic";.# by def
b970: 61 75 6c 74 20 73 65 74 20 61 6c 6c 20 74 6f 20 ault set all to
b980: 6f 75 74 64 6f 6f 72 20 74 6f 20 63 6f 6d 70 6c outdoor to compl
b990: 79 20 45 55 20 72 65 67 75 6c 61 74 69 6f 6e 73 y EU regulations
b9a0: 0a 3a 6c 6f 63 61 6c 20 69 6e 73 74 61 6c 6c 61 .:local installa
b9b0: 74 69 6f 6e 20 22 6f 75 74 64 6f 6f 72 22 0a 3a tion "outdoor".:
b9c0: 6c 6f 63 61 6c 20 77 50 72 6f 74 6f 20 22 61 6e local wProto "an
b9d0: 79 22 3b 0a 3a 6c 6f 63 61 6c 20 73 65 63 6f 6e y";.:local secon
b9e0: 64 61 72 79 43 68 61 6e 6e 65 6c 20 30 3b 0a 3a daryChannel 0;.:
b9f0: 6c 6f 63 61 6c 20 73 65 63 75 72 65 57 41 4e 20 local secureWAN
ba00: 31 3b 0a 0a 3a 6c 6f 63 61 6c 20 6e 65 65 64 41 1;..:local needA
ba10: 64 6d 69 6e 50 61 73 73 20 31 3b 0a 3a 6c 6f 63 dminPass 1;.:loc
ba20: 61 6c 20 6e 65 65 64 57 70 73 53 79 6e 63 20 30 al needWpsSync 0
ba30: 3b 0a 3a 6c 6f 63 61 6c 20 61 64 64 44 61 72 6b ;.:local addDark
ba40: 4d 6f 64 65 20 30 3b 0a 3a 6c 6f 63 61 6c 20 68 Mode 0;.:local h
ba50: 61 73 57 70 73 42 75 74 74 6f 6e 20 30 3b 0a 3a asWpsButton 0;.:
ba60: 6c 6f 63 61 6c 20 61 64 64 43 61 70 73 4d 61 6e local addCapsMan
ba70: 20 30 3b 0a 3a 6c 6f 63 61 6c 20 73 73 69 64 50 0;.:local ssidP
ba80: 72 65 66 69 78 20 22 4d 69 6b 72 6f 54 69 6b 22 refix "MikroTik"
ba90: 0a 3a 6c 6f 63 61 6c 20 62 61 63 6b 75 70 4c 69 .:local backupLi
baa0: 6e 6b 20 30 3b 0a 0a 3a 6c 6f 63 61 6c 20 75 73 nk 0;..:local us
bab0: 69 6e 67 57 69 66 69 50 61 63 6b 20 30 3b 0a 3a ingWifiPack 0;.:
bac0: 6c 6f 63 61 6c 20 77 6c 61 6e 50 72 65 66 69 78 local wlanPrefix
bad0: 20 22 77 6c 61 6e 22 3b 0a 3a 6c 6f 63 61 6c 20 "wlan";.:local
bae0: 77 6c 61 6e 4d 6f 64 65 20 22 61 70 2d 62 72 69 wlanMode "ap-bri
baf0: 64 67 65 22 3b 0a 0a 3a 6c 6f 63 61 6c 20 69 70 dge";..:local ip
bb00: 4e 65 74 77 6f 72 6b 20 22 31 39 32 2e 31 36 38 Network "192.168
bb10: 2e 38 38 22 3b 0a 23 20 66 6f 72 20 6f 6c 64 20 .88";.# for old
bb20: 62 61 63 6b 77 61 72 64 73 20 63 6f 6d 70 61 74 backwards compat
bb30: 0a 3a 6c 6f 63 61 6c 20 77 70 73 50 61 73 73 4e .:local wpsPassN
bb40: 61 6d 65 20 22 22 0a 23 20 66 6f 72 20 6f 6c 64 ame "".# for old
bb50: 65 72 20 62 6f 61 72 64 73 20 75 73 65 20 64 65 er boards use de
bb60: 66 63 6f 6e 66 50 61 73 73 77 6f 72 64 0a 69 66 fconfPassword.if
bb70: 20 28 24 64 65 66 63 6f 6e 66 57 70 73 50 61 73 ($defconfWpsPas
bb80: 73 77 6f 72 64 20 3d 20 22 22 20 7c 7c 20 24 64 sword = "" || $d
bb90: 65 66 63 6f 6e 66 57 70 73 50 61 73 73 77 6f 72 efconfWpsPasswor
bba0: 64 20 3d 20 6e 69 6c 29 20 64 6f 3d 7b 0a 20 20 d = nil) do={.
bbb0: 69 66 20 28 21 28 24 64 65 66 63 6f 6e 66 50 61 if (!($defconfPa
bbc0: 73 73 77 6f 72 64 20 3d 20 22 22 20 7c 7c 20 24 ssword = "" || $
bbd0: 64 65 66 63 6f 6e 66 50 61 73 73 77 6f 72 64 20 defconfPassword
bbe0: 3d 20 6e 69 6c 29 29 20 64 6f 3d 7b 0a 20 20 20 = nil)) do={.
bbf0: 20 3a 73 65 74 20 77 70 73 50 61 73 73 4e 61 6d :set wpsPassNam
bc00: 65 20 22 5c 24 64 65 66 63 6f 6e 66 50 61 73 73 e "\$defconfPass
bc10: 77 6f 72 64 22 0a 20 20 7d 0a 7d 20 65 6c 73 65 word". }.} else
bc20: 20 7b 0a 20 20 3a 73 65 74 20 77 70 73 50 61 73 {. :set wpsPas
bc30: 73 4e 61 6d 65 20 22 5c 24 64 65 66 63 6f 6e 66 sName "\$defconf
bc40: 57 70 73 50 61 73 73 77 6f 72 64 22 0a 7d 0a 0a WpsPassword".}..
bc50: 3a 6c 6f 63 61 6c 20 77 69 66 69 50 61 73 73 4e :local wifiPassN
bc60: 61 6d 65 20 22 22 0a 69 66 20 28 24 64 65 66 63 ame "".if ($defc
bc70: 6f 6e 66 57 69 66 69 50 61 73 73 77 6f 72 64 20 onfWifiPassword
bc80: 3d 20 22 22 20 7c 7c 20 24 64 65 66 63 6f 6e 66 = "" || $defconf
bc90: 57 69 66 69 50 61 73 73 77 6f 72 64 20 3d 20 6e WifiPassword = n
bca0: 69 6c 29 20 64 6f 3d 7b 0a 20 20 69 66 20 28 21 il) do={. if (!
bcb0: 28 24 64 65 66 63 6f 6e 66 50 61 73 73 77 6f 72 ($defconfPasswor
bcc0: 64 20 3d 20 22 22 20 7c 7c 20 24 64 65 66 63 6f d = "" || $defco
bcd0: 6e 66 50 61 73 73 77 6f 72 64 20 3d 20 6e 69 6c nfPassword = nil
bce0: 29 29 20 64 6f 3d 7b 0a 20 20 20 20 3a 73 65 74 )) do={. :set
bcf0: 20 77 69 66 69 50 61 73 73 4e 61 6d 65 20 22 5c wifiPassName "\
bd00: 24 64 65 66 63 6f 6e 66 50 61 73 73 77 6f 72 64 $defconfPassword
bd10: 22 0a 20 20 7d 0a 7d 20 65 6c 73 65 20 7b 0a 20 ". }.} else {.
bd20: 20 3a 73 65 74 20 77 69 66 69 50 61 73 73 4e 61 :set wifiPassNa
bd30: 6d 65 20 22 5c 24 64 65 66 63 6f 6e 66 57 69 66 me "\$defconfWif
bd40: 69 50 61 73 73 77 6f 72 64 22 0a 7d 0a 0a 23 50 iPassword".}..#P
bd50: 65 72 66 6f 72 6d 20 61 64 64 69 74 69 6f 6e 61 erform additiona
bd60: 6c 20 63 68 65 63 6b 73 20 6f 6e 20 69 6e 73 74 l checks on inst
bd70: 61 6c 6c 65 64 20 70 61 63 6b 61 67 65 73 0a 3a alled packages.:
bd80: 69 66 20 28 5b 3a 6c 65 6e 20 5b 2f 73 79 73 74 if ([:len [/syst
bd90: 65 6d 20 70 61 63 6b 61 67 65 20 66 69 6e 64 20 em package find
bda0: 6e 61 6d 65 3d 22 69 70 76 36 22 20 21 64 69 73 name="ipv6" !dis
bdb0: 61 62 6c 65 64 5d 5d 20 21 3d 20 30 29 20 64 6f abled]] != 0) do
bdc0: 3d 7b 0a 20 20 3a 73 65 74 20 69 70 76 36 45 6e ={. :set ipv6En
bdd0: 61 62 6c 65 64 20 31 3b 0a 7d 0a 3a 69 66 20 28 abled 1;.}.:if (
bde0: 5b 3a 6c 65 6e 20 5b 2f 73 79 73 74 65 6d 20 70 [:len [/system p
bdf0: 61 63 6b 61 67 65 20 66 69 6e 64 20 6e 61 6d 65 ackage find name
be00: 3d 22 64 68 63 70 22 20 21 64 69 73 61 62 6c 65 ="dhcp" !disable
be10: 64 5d 5d 20 21 3d 20 30 29 20 64 6f 3d 7b 0a 20 d]] != 0) do={.
be20: 20 3a 73 65 74 20 64 68 63 70 45 6e 61 62 6c 65 :set dhcpEnable
be30: 64 20 31 3b 0a 7d 0a 3a 69 66 20 28 5b 3a 6c 65 d 1;.}.:if ([:le
be40: 6e 20 5b 2f 73 79 73 74 65 6d 20 70 61 63 6b 61 n [/system packa
be50: 67 65 20 66 69 6e 64 20 6e 61 6d 65 3d 22 77 69 ge find name="wi
be60: 72 65 6c 65 73 73 22 20 21 64 69 73 61 62 6c 65 reless" !disable
be70: 64 5d 5d 20 21 3d 20 30 29 20 64 6f 3d 7b 0a 20 d]] != 0) do={.
be80: 20 3a 73 65 74 20 77 69 72 65 6c 65 73 73 45 6e :set wirelessEn
be90: 61 62 6c 65 64 20 31 3b 0a 7d 0a 3a 69 66 20 28 abled 1;.}.:if (
bea0: 5b 3a 6c 65 6e 20 5b 2f 73 79 73 74 65 6d 20 70 [:len [/system p
beb0: 61 63 6b 61 67 65 20 66 69 6e 64 20 6e 61 6d 65 ackage find name
bec0: 7e 22 77 69 66 69 22 20 21 64 69 73 61 62 6c 65 ~"wifi" !disable
bed0: 64 5d 5d 20 21 3d 20 30 29 20 64 6f 3d 7b 0a 20 d]] != 0) do={.
bee0: 20 3a 73 65 74 20 77 69 72 65 6c 65 73 73 45 6e :set wirelessEn
bef0: 61 62 6c 65 64 20 31 3b 0a 20 20 3a 73 65 74 20 abled 1;. :set
bf00: 75 73 69 6e 67 57 69 66 69 50 61 63 6b 20 31 3b usingWifiPack 1;
bf10: 0a 20 20 3a 73 65 74 20 77 6c 61 6e 50 72 65 66 . :set wlanPref
bf20: 69 78 20 22 77 69 66 69 22 3b 0a 20 20 3a 73 65 ix "wifi";. :se
bf30: 74 20 77 6c 61 6e 4d 6f 64 65 20 22 61 70 22 3b t wlanMode "ap";
bf40: 0a 7d 0a 3a 69 66 20 28 5b 3a 70 69 63 6b 20 5b .}.:if ([:pick [
bf50: 2f 73 79 73 74 65 6d 20 72 65 73 6f 75 72 63 65 /system resource
bf60: 20 67 65 74 20 76 65 72 73 69 6f 6e 20 5d 20 30 get version ] 0
bf70: 20 31 5d 20 3d 20 37 29 20 64 6f 3d 7b 0a 20 20 1] = 7) do={.
bf80: 3a 73 65 74 20 69 70 76 36 45 6e 61 62 6c 65 64 :set ipv6Enabled
bf90: 20 31 3b 0a 20 20 3a 73 65 74 20 64 68 63 70 45 1;. :set dhcpE
bfa0: 6e 61 62 6c 65 64 20 31 3b 0a 7d 0a 0a 23 2d 2d nabled 1;.}..#--
bfb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
bfc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
bfd0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
bfe0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
bff0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 -------------.#
c000: 4d 61 74 63 68 20 52 42 73 0a 23 2d 2d 2d 2d 2d Match RBs.#-----
c010: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
c020: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
c030: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
c040: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
c050: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3a 6c 6f 63 61 ----------.:loca
c060: 6c 20 62 6f 61 72 64 20 5b 24 67 65 74 46 65 61 l board [$getFea
c070: 74 75 72 65 53 74 72 69 6e 67 20 62 6f 61 72 64 tureString board
c080: 53 74 72 3d 24 62 6f 61 72 64 4e 61 6d 65 5d 0a Str=$boardName].
c090: 3a 6c 6f 63 61 6c 20 77 6c 61 6e 4f 70 74 3b 0a :local wlanOpt;.
c0a0: 0a 24 70 72 69 6e 74 44 65 62 75 67 20 28 24 62 .$printDebug ($b
c0b0: 6f 61 72 64 29 0a 24 70 72 69 6e 74 44 65 62 75 oard).$printDebu
c0c0: 67 20 28 22 57 69 72 65 6c 65 73 73 20 45 6e 61 g ("Wireless Ena
c0d0: 62 6c 65 64 3a 20 24 77 69 72 65 6c 65 73 73 45 bled: $wirelessE
c0e0: 6e 61 62 6c 65 64 22 29 0a 3a 69 66 20 28 24 62 nabled").:if ($b
c0f0: 6f 61 72 64 2d 3e 22 77 69 72 65 6c 65 73 73 22 oard->"wireless"
c100: 20 21 3d 20 22 22 20 26 26 20 24 62 6f 61 72 64 != "" && $board
c110: 2d 3e 22 69 73 4c 74 65 22 20 21 3d 20 31 20 26 ->"isLte" != 1 &
c120: 26 20 24 77 69 72 65 6c 65 73 73 45 6e 61 62 6c & $wirelessEnabl
c130: 65 64 20 3d 20 31 29 20 64 6f 3d 7b 0a 20 20 3a ed = 1) do={. :
c140: 73 65 74 20 77 6c 61 6e 4f 70 74 20 5b 24 70 61 set wlanOpt [$pa
c150: 72 73 65 57 69 72 65 6c 65 73 73 46 65 61 74 75 rseWirelessFeatu
c160: 72 65 73 20 6c 69 73 74 3d 28 24 62 6f 61 72 64 res list=($board
c170: 2d 3e 22 77 69 72 65 6c 65 73 73 22 29 5d 0a 0a ->"wireless")]..
c180: 20 20 24 70 72 69 6e 74 44 65 62 75 67 20 28 24 $printDebug ($
c190: 77 6c 61 6e 4f 70 74 29 0a 0a 20 20 23 20 64 65 wlanOpt).. # de
c1a0: 74 65 72 6d 69 6e 65 20 6e 75 6d 57 69 6c 73 20 termine numWils
c1b0: 61 6e 64 20 6e 75 6d 57 6c 61 6e 73 0a 20 20 3a and numWlans. :
c1c0: 66 6f 72 65 61 63 68 20 69 20 69 6e 3d 24 77 6c foreach i in=$wl
c1d0: 61 6e 4f 70 74 20 64 6f 3d 7b 0a 20 20 20 20 3a anOpt do={. :
c1e0: 69 66 20 28 24 69 2d 3e 22 69 73 41 64 22 20 3d if ($i->"isAd" =
c1f0: 20 31 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 3a 1) do={. :
c200: 73 65 74 20 6e 75 6d 57 69 6c 73 20 28 24 6e 75 set numWils ($nu
c210: 6d 57 69 6c 73 2b 31 29 3b 0a 20 20 20 20 7d 20 mWils+1);. }
c220: 65 6c 73 65 3d 7b 0a 20 20 20 20 20 20 3a 69 66 else={. :if
c230: 20 28 24 69 2d 3e 22 69 73 41 79 22 20 3d 20 31 ($i->"isAy" = 1
c240: 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 3a 73 65 ) do={. :se
c250: 74 20 6e 75 6d 57 69 6c 73 20 28 24 6e 75 6d 57 t numWils ($numW
c260: 69 6c 73 2b 31 29 3b 0a 20 20 20 20 20 20 7d 20 ils+1);. }
c270: 65 6c 73 65 3d 7b 0a 20 20 20 20 20 20 3a 73 65 else={. :se
c280: 74 20 6e 75 6d 57 6c 61 6e 73 20 28 24 6e 75 6d t numWlans ($num
c290: 57 6c 61 6e 73 2b 31 29 3b 0a 20 20 20 20 20 20 Wlans+1);.
c2a0: 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 0a 0a 23 }. }. }.}..#
c2b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
c2c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
c2d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
c2e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
c2f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a ---------------.
c300: 23 20 52 6f 75 74 65 72 42 6f 61 72 64 20 63 6f # RouterBoard co
c310: 6e 66 69 67 73 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d nfigs.#---------
c320: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
c330: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
c340: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
c350: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
c360: 2d 2d 2d 2d 2d 2d 0a 3a 69 66 20 28 24 62 6f 61 ------.:if ($boa
c370: 72 64 2d 3e 22 70 72 65 66 69 78 22 7e 22 52 6f rd->"prefix"~"Ro
c380: 75 74 65 72 42 4f 41 52 44 22 29 20 64 6f 3d 7b uterBOARD") do={
c390: 0a 0a 20 20 23 20 67 65 74 20 66 69 72 73 74 20 .. # get first
c3a0: 34 20 63 68 61 72 73 20 6f 66 20 53 4e 0a 20 20 4 chars of SN.
c3b0: 23 20 63 68 65 63 6b 20 69 66 20 69 74 20 69 73 # check if it is
c3c0: 20 52 6f 75 74 65 72 42 6f 61 72 64 0a 20 20 3a RouterBoard. :
c3d0: 6c 6f 63 61 6c 20 53 4e 20 5b 2f 73 79 73 74 65 local SN [/syste
c3e0: 6d 20 72 6f 75 74 65 72 62 6f 61 72 64 20 67 65 m routerboard ge
c3f0: 74 20 73 65 72 69 61 6c 2d 6e 75 6d 62 65 72 5d t serial-number]
c400: 0a 20 20 3a 73 65 74 20 73 73 69 64 50 72 65 66 . :set ssidPref
c410: 69 78 20 22 24 73 73 69 64 50 72 65 66 69 78 24 ix "$ssidPrefix$
c420: 5b 3a 70 69 63 6b 20 24 53 4e 20 36 20 31 32 5d [:pick $SN 6 12]
c430: 22 0a 0a 20 20 23 2d 2d 2d 2d 2d 48 4f 4d 45 20 ".. #-----HOME
c440: 41 50 0a 20 20 3a 69 66 20 28 24 62 6f 61 72 64 AP. :if ($board
c450: 2d 3e 22 6d 6f 64 65 6c 22 7e 22 34 35 30 7c 37 ->"model"~"450|7
c460: 35 30 7c 38 35 30 7c 6d 69 6e 69 52 4f 55 54 45 50|850|miniROUTE
c470: 52 7c 37 35 31 7c 39 35 31 7c 39 34 31 7c 39 33 R|751|951|941|93
c480: 31 7c 39 35 33 7c 39 36 30 7c 37 36 30 7c 32 30 1|953|960|760|20
c490: 31 31 7c 33 30 31 31 7c 34 30 31 31 7c 4f 6d 6e 11|3011|4011|Omn
c4a0: 69 54 49 4b 7c 4f 6d 6e 69 54 69 6b 7c 0a 20 20 iTIK|OmniTik|.
c4b0: 20 20 20 20 68 41 50 7c 39 35 32 7c 39 36 32 7c hAP|952|962|
c4c0: 44 35 32 7c 6d 41 50 7c 44 32 34 7c 44 32 35 7c D52|mAP|D24|D25|
c4d0: 63 41 50 7c 44 35 33 7c 39 32 34 7c 35 30 30 39 cAP|D53|924|5009
c4e0: 7c 43 35 33 7c 48 35 33 7c 53 35 33 7c 4c 34 31 |C53|H53|S53|L41
c4f0: 7c 43 35 32 7c 43 4d 45 7c 4c 30 30 39 7c 45 35 |C52|CME|L009|E5
c500: 30 7c 45 36 30 7c 45 36 32 22 29 20 64 6f 3d 7b 0|E60|E62") do={
c510: 0a 20 20 20 20 3a 69 66 20 28 21 28 24 62 6f 61 . :if (!($boa
c520: 72 64 2d 3e 22 6d 6f 64 65 6c 22 7e 22 4f 6d 6e rd->"model"~"Omn
c530: 69 54 49 4b 7c 4f 6d 6e 69 54 69 6b 7c 39 35 33 iTIK|OmniTik|953
c540: 22 29 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 3a ")) do={. :
c550: 73 65 74 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e set installation
c560: 20 22 61 6e 79 22 0a 20 20 20 20 7d 0a 0a 20 20 "any". }..
c570: 20 20 3a 69 66 20 28 24 62 6f 61 72 64 2d 3e 22 :if ($board->"
c580: 6d 6f 64 65 6c 22 7e 22 6d 41 50 32 6e 44 7c 63 model"~"mAP2nD|c
c590: 41 50 32 6e 44 22 29 20 64 6f 3d 7b 0a 20 20 20 AP2nD") do={.
c5a0: 20 20 20 3a 73 65 74 20 6e 75 6d 57 6c 61 6e 73 :set numWlans
c5b0: 20 31 3b 0a 20 20 20 20 20 20 3a 73 65 74 20 77 1;. :set w
c5c0: 69 72 65 6c 65 73 73 45 6e 61 62 6c 65 64 20 31 irelessEnabled 1
c5d0: 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3a 69 66 ;. }.. :if
c5e0: 20 28 21 28 24 64 65 66 63 6f 6e 66 4c 74 65 3d (!($defconfLte=
c5f0: 22 22 20 7c 7c 20 5b 3a 74 79 70 65 6f 66 20 24 "" || [:typeof $
c600: 64 65 66 63 6f 6e 66 4c 74 65 5d 3d 20 22 6e 6f defconfLte]= "no
c610: 74 68 69 6e 67 22 29 20 7c 7c 20 24 6d 61 72 6b thing") || $mark
c620: 65 74 69 6e 67 4e 61 6d 65 7e 22 4c 54 45 22 29 etingName~"LTE")
c630: 20 64 6f 3d 7b 0a 20 20 20 20 20 20 3a 73 65 74 do={. :set
c640: 20 28 24 62 6f 61 72 64 2d 3e 22 69 73 4c 74 65 ($board->"isLte
c650: 22 29 20 31 0a 20 20 20 20 20 20 3a 73 65 74 20 ") 1. :set
c660: 63 6f 6e 66 69 67 4d 6f 64 65 20 22 6c 74 65 5f configMode "lte_
c670: 63 70 65 5f 61 70 5f 72 6f 75 74 65 72 22 3b 0a cpe_ap_router";.
c680: 20 20 20 20 20 20 3a 69 66 20 28 24 6d 61 72 6b :if ($mark
c690: 65 74 69 6e 67 4e 61 6d 65 7e 22 41 75 64 69 65 etingName~"Audie
c6a0: 6e 63 65 22 20 7c 7c 20 24 62 6f 61 72 64 2d 3e nce" || $board->
c6b0: 22 6d 6f 64 65 6c 22 7e 22 44 32 35 22 29 20 64 "model"~"D25") d
c6c0: 6f 3d 7b 0a 20 20 20 20 20 20 20 20 3a 73 65 74 o={. :set
c6d0: 20 77 61 6e 50 6f 72 74 73 20 7b 22 65 74 68 65 wanPorts {"ethe
c6e0: 72 31 22 3b 22 6c 74 65 31 22 7d 3b 0a 20 20 20 r1";"lte1"};.
c6f0: 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 } else={.
c700: 20 20 20 20 3a 73 65 74 20 77 61 6e 50 6f 72 74 :set wanPort
c710: 73 20 7b 22 6c 74 65 31 22 7d 3b 0a 20 20 20 20 s {"lte1"};.
c720: 20 20 7d 0a 20 20 20 20 7d 20 65 6c 73 65 3d 7b }. } else={
c730: 0a 20 20 20 20 20 20 3a 73 65 74 20 63 6f 6e 66 . :set conf
c740: 69 67 4d 6f 64 65 20 22 61 70 5f 72 6f 75 74 65 igMode "ap_route
c750: 72 22 3b 0a 20 20 20 20 20 20 3a 73 65 74 20 75 r";. :set u
c760: 73 65 44 65 74 4e 65 74 20 30 3b 0a 20 20 20 20 seDetNet 0;.
c770: 20 20 3a 69 66 20 28 24 62 6f 61 72 64 2d 3e 22 :if ($board->"
c780: 6d 6f 64 65 6c 22 7e 22 39 32 34 7c 43 4d 45 22 model"~"924|CME"
c790: 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 3a ) do={. :
c7a0: 73 65 74 20 77 61 6e 50 6f 72 74 73 20 7b 22 65 set wanPorts {"e
c7b0: 74 68 65 72 31 22 3b 22 70 70 70 2d 6f 75 74 31 ther1";"ppp-out1
c7c0: 22 7d 3b 0a 20 20 20 20 20 20 20 20 3a 73 65 74 "};. :set
c7d0: 20 69 73 50 50 50 6e 65 65 64 65 64 20 31 3b 0a isPPPneeded 1;.
c7e0: 20 20 20 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 } else={.
c7f0: 20 20 20 20 20 3a 73 65 74 20 77 61 6e 50 6f 72 :set wanPor
c800: 74 73 20 7b 22 65 74 68 65 72 31 22 7d 3b 0a 20 ts {"ether1"};.
c810: 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 }. }..
c820: 20 20 3a 69 66 20 28 24 62 6f 61 72 64 2d 3e 22 :if ($board->"
c830: 6d 6f 64 65 6c 22 7e 22 34 30 31 31 22 29 20 64 model"~"4011") d
c840: 6f 3d 7b 0a 20 20 20 20 20 20 3a 73 65 74 20 73 o={. :set s
c850: 65 63 6f 6e 64 61 72 79 43 68 61 6e 6e 65 6c 20 econdaryChannel
c860: 30 3b 0a 20 20 20 20 20 20 69 66 20 28 24 6e 75 0;. if ($nu
c870: 6d 57 6c 61 6e 73 20 3e 20 30 20 26 26 20 24 75 mWlans > 0 && $u
c880: 73 69 6e 67 57 69 66 69 50 61 63 6b 20 3d 20 31 singWifiPack = 1
c890: 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 3a ) do={. :
c8a0: 73 65 74 20 6e 75 6d 57 6c 61 6e 73 20 31 3b 0a set numWlans 1;.
c8b0: 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 }. }.
c8c0: 20 20 3a 69 66 20 28 24 6d 61 72 6b 65 74 69 6e :if ($marketin
c8d0: 67 4e 61 6d 65 7e 22 41 75 64 69 65 6e 63 65 22 gName~"Audience"
c8e0: 20 7c 7c 20 24 62 6f 61 72 64 2d 3e 22 6d 6f 64 || $board->"mod
c8f0: 65 6c 22 7e 22 44 32 35 22 29 20 64 6f 3d 7b 0a el"~"D25") do={.
c900: 20 20 20 20 20 20 23 20 64 6f 20 6e 6f 74 20 73 # do not s
c910: 65 74 20 61 64 6d 69 6e 20 70 61 73 73 20 66 6f et admin pass fo
c920: 72 20 6f 6c 64 20 62 6f 61 72 64 73 20 74 68 61 r old boards tha
c930: 74 20 64 6f 20 6e 6f 74 20 68 61 76 65 0a 20 20 t do not have.
c940: 20 20 20 20 23 20 64 65 66 63 6f 6e 66 57 70 73 # defconfWps
c950: 50 61 73 73 77 6f 72 64 20 70 61 72 61 6d 65 74 Password paramet
c960: 65 72 20 61 6e 64 20 75 6e 73 65 74 20 77 69 66 er and unset wif
c970: 69 50 61 73 73 4e 61 6d 65 0a 20 20 20 20 20 20 iPassName.
c980: 69 66 20 28 28 28 24 64 65 66 63 6f 6e 66 50 61 if ((($defconfPa
c990: 73 73 77 6f 72 64 20 3d 20 22 22 20 7c 7c 20 24 ssword = "" || $
c9a0: 64 65 66 63 6f 6e 66 50 61 73 73 77 6f 72 64 20 defconfPassword
c9b0: 3d 20 6e 69 6c 29 20 26 26 20 21 28 24 64 65 66 = nil) && !($def
c9c0: 63 6f 6e 66 57 70 73 50 61 73 73 77 6f 72 64 20 confWpsPassword
c9d0: 3d 20 22 22 20 7c 7c 20 24 64 65 66 63 6f 6e 66 = "" || $defconf
c9e0: 57 70 73 50 61 73 73 77 6f 72 64 20 3d 20 6e 69 WpsPassword = ni
c9f0: 6c 29 29 20 5c 0a 20 20 20 20 20 20 20 20 7c 7c l)) \. ||
ca00: 20 28 21 28 24 64 65 66 63 6f 6e 66 50 61 73 73 (!($defconfPass
ca10: 77 6f 72 64 20 3d 20 22 22 20 7c 7c 20 24 64 65 word = "" || $de
ca20: 66 63 6f 6e 66 50 61 73 73 77 6f 72 64 20 3d 20 fconfPassword =
ca30: 6e 69 6c 29 20 26 26 20 28 24 64 65 66 63 6f 6e nil) && ($defcon
ca40: 66 57 70 73 50 61 73 73 77 6f 72 64 20 3d 20 22 fWpsPassword = "
ca50: 22 20 7c 7c 20 24 64 65 66 63 6f 6e 66 57 70 73 " || $defconfWps
ca60: 50 61 73 73 77 6f 72 64 20 3d 20 6e 69 6c 29 29 Password = nil))
ca70: 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 3a ) do={. :
ca80: 73 65 74 20 6e 65 65 64 41 64 6d 69 6e 50 61 73 set needAdminPas
ca90: 73 20 30 3b 0a 20 20 20 20 20 20 20 20 3a 73 65 s 0;. :se
caa0: 74 20 77 69 66 69 50 61 73 73 4e 61 6d 65 20 22 t wifiPassName "
cab0: 22 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 ". }..
cac0: 20 3a 73 65 74 20 6e 65 65 64 57 70 73 53 79 6e :set needWpsSyn
cad0: 63 20 31 3b 0a 20 20 20 20 20 20 3a 73 65 74 20 c 1;. :set
cae0: 61 64 64 43 61 70 73 4d 61 6e 20 31 3b 0a 20 20 addCapsMan 1;.
caf0: 20 20 7d 0a 20 20 20 20 3a 69 66 20 28 24 62 6f }. :if ($bo
cb00: 61 72 64 2d 3e 22 6d 6f 64 65 6c 22 7e 22 63 41 ard->"model"~"cA
cb10: 50 47 69 7c 44 35 33 7c 43 35 33 7c 53 35 33 7c PGi|D53|C53|S53|
cb20: 48 35 33 22 29 20 64 6f 3d 7b 0a 20 20 20 20 20 H53") do={.
cb30: 20 3a 73 65 74 20 61 64 64 44 61 72 6b 4d 6f 64 :set addDarkMod
cb40: 65 20 31 3b 0a 20 20 20 20 7d 0a 20 20 20 20 3a e 1;. }. :
cb50: 69 66 20 28 5b 2f 73 79 73 74 65 6d 2f 72 65 73 if ([/system/res
cb60: 6f 75 72 63 65 2f 67 65 74 20 61 72 63 68 69 74 ource/get archit
cb70: 65 63 74 75 72 65 2d 6e 61 6d 65 5d 20 21 3d 20 ecture-name] !=
cb80: 22 73 6d 69 70 73 22 29 20 64 6f 3d 7b 0a 20 20 "smips") do={.
cb90: 20 20 20 20 3a 73 65 74 20 6e 65 65 64 44 69 73 :set needDis
cba0: 6b 53 68 61 72 69 6e 67 20 31 3b 0a 20 20 20 20 kSharing 1;.
cbb0: 7d 0a 20 20 20 20 3a 69 66 20 28 24 75 73 69 6e }. :if ($usin
cbc0: 67 57 69 66 69 50 61 63 6b 20 3d 20 31 20 26 26 gWifiPack = 1 &&
cbd0: 20 5b 3a 6c 65 6e 20 5b 2f 73 79 73 74 65 6d 20 [:len [/system
cbe0: 72 6f 75 74 65 72 62 6f 61 72 64 20 77 70 73 2d routerboard wps-
cbf0: 62 75 74 74 6f 6e 20 67 65 74 20 65 6e 61 62 6c button get enabl
cc00: 65 64 5d 5d 20 21 3d 20 30 29 20 64 6f 3d 7b 0a ed]] != 0) do={.
cc10: 20 20 20 20 20 20 3a 73 65 74 20 68 61 73 57 70 :set hasWp
cc20: 73 42 75 74 74 6f 6e 20 31 3b 0a 20 20 20 20 7d sButton 1;. }
cc30: 0a 20 20 7d 0a 0a 20 20 3a 69 66 20 28 24 62 6f . }.. :if ($bo
cc40: 61 72 64 2d 3e 22 6d 6f 64 65 6c 22 7e 22 77 41 ard->"model"~"wA
cc50: 50 22 29 20 64 6f 3d 7b 0a 20 20 20 20 3a 69 66 P") do={. :if
cc60: 20 28 24 6e 75 6d 57 69 6c 73 20 3e 20 30 29 20 ($numWils > 0)
cc70: 64 6f 3d 7b 0a 20 20 20 20 20 20 3a 73 65 74 20 do={. :set
cc80: 63 6f 6e 66 69 67 4d 6f 64 65 20 22 77 36 30 67 configMode "w60g
cc90: 5f 62 72 69 64 67 65 22 3b 0a 20 20 20 20 20 20 _bridge";.
cca0: 3a 73 65 74 20 6e 65 65 64 41 64 6d 69 6e 50 61 :set needAdminPa
ccb0: 73 73 20 31 3b 0a 20 20 20 20 7d 20 65 6c 73 65 ss 1;. } else
ccc0: 3d 7b 0a 20 20 20 20 20 20 23 20 61 6c 73 6f 20 ={. # also
ccd0: 66 6f 72 20 6f 6c 64 20 77 41 50 20 4c 54 45 20 for old wAP LTE
cce0: 6b 69 74 20 62 6f 61 72 64 73 20 74 68 61 74 20 kit boards that
ccf0: 64 6f 20 6e 6f 74 20 68 61 76 65 20 22 64 65 66 do not have "def
cd00: 63 6f 6e 66 4c 74 65 22 20 66 72 6f 6d 20 66 61 confLte" from fa
cd10: 63 74 6f 72 74 79 0a 20 20 20 20 20 20 3a 69 66 ctorty. :if
cd20: 20 28 21 28 24 64 65 66 63 6f 6e 66 4c 74 65 3d (!($defconfLte=
cd30: 22 22 20 7c 7c 20 5b 3a 74 79 70 65 6f 66 20 24 "" || [:typeof $
cd40: 64 65 66 63 6f 6e 66 4c 74 65 5d 3d 20 22 6e 6f defconfLte]= "no
cd50: 74 68 69 6e 67 22 29 20 7c 7c 20 24 6d 61 72 6b thing") || $mark
cd60: 65 74 69 6e 67 4e 61 6d 65 7e 22 4c 54 45 22 29 etingName~"LTE")
cd70: 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 3a 73 do={. :s
cd80: 65 74 20 28 24 62 6f 61 72 64 2d 3e 22 69 73 4c et ($board->"isL
cd90: 74 65 22 29 20 31 0a 20 20 20 20 20 20 20 20 3a te") 1. :
cda0: 73 65 74 20 63 6f 6e 66 69 67 4d 6f 64 65 20 22 set configMode "
cdb0: 6c 74 65 5f 63 70 65 5f 61 70 5f 72 6f 75 74 65 lte_cpe_ap_route
cdc0: 72 22 3b 0a 20 20 20 20 20 20 20 20 3a 73 65 74 r";. :set
cdd0: 20 77 61 6e 50 6f 72 74 73 20 7b 22 6c 74 65 31 wanPorts {"lte1
cde0: 22 7d 3b 0a 20 20 20 20 20 20 20 20 3a 73 65 74 "};. :set
cdf0: 20 64 69 73 74 61 6e 63 65 20 22 69 6e 64 6f 6f distance "indoo
ce00: 72 73 22 3b 0a 20 20 20 20 20 20 7d 20 65 6c 73 rs";. } els
ce10: 65 3d 7b 0a 20 20 20 20 20 20 20 20 3a 69 66 20 e={. :if
ce20: 28 24 62 6f 61 72 64 2d 3e 22 6d 6f 64 65 6c 22 ($board->"model"
ce30: 7e 22 77 41 50 32 6e 44 22 29 20 64 6f 3d 7b 0a ~"wAP2nD") do={.
ce40: 20 20 20 20 20 20 20 20 20 20 3a 73 65 74 20 6e :set n
ce50: 75 6d 57 6c 61 6e 73 20 31 3b 0a 20 20 20 20 20 umWlans 1;.
ce60: 20 20 20 20 20 3a 73 65 74 20 77 69 72 65 6c 65 :set wirele
ce70: 73 73 45 6e 61 62 6c 65 64 20 31 3b 0a 20 20 20 ssEnabled 1;.
ce80: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 3a }. :
ce90: 73 65 74 20 63 6f 6e 66 69 67 4d 6f 64 65 20 22 set configMode "
cea0: 61 70 5f 72 6f 75 74 65 72 22 3b 0a 20 20 20 20 ap_router";.
ceb0: 20 20 20 20 3a 73 65 74 20 77 61 6e 50 6f 72 74 :set wanPort
cec0: 73 20 7b 22 65 74 68 65 72 31 22 7d 3b 0a 20 20 s {"ether1"};.
ced0: 20 20 20 20 20 20 69 66 20 28 24 6e 75 6d 57 6c if ($numWl
cee0: 61 6e 73 20 3c 20 32 29 20 64 6f 3d 7b 0a 20 20 ans < 2) do={.
cef0: 20 20 20 20 20 20 20 20 3a 73 65 74 20 6c 61 6e :set lan
cf00: 50 6f 72 74 20 22 77 6c 61 6e 31 22 3b 0a 20 20 Port "wlan1";.
cf10: 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a }. }.
cf20: 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 3a 69 66 }. }.. :if
cf30: 20 28 24 62 6f 61 72 64 2d 3e 22 6d 6f 64 65 6c ($board->"model
cf40: 22 7e 22 4c 74 41 50 22 29 20 64 6f 3d 7b 0a 20 "~"LtAP") do={.
cf50: 20 23 20 3a 6c 6f 67 20 69 6e 66 6f 20 24 64 65 # :log info $de
cf60: 66 63 6f 6e 66 4c 74 65 0a 20 20 20 20 3a 69 66 fconfLte. :if
cf70: 20 28 21 28 24 64 65 66 63 6f 6e 66 4c 74 65 3d (!($defconfLte=
cf80: 22 22 20 7c 7c 20 5b 3a 74 79 70 65 6f 66 20 24 "" || [:typeof $
cf90: 64 65 66 63 6f 6e 66 4c 74 65 5d 3d 20 22 6e 6f defconfLte]= "no
cfa0: 74 68 69 6e 67 22 29 29 20 64 6f 3d 7b 0a 20 20 thing")) do={.
cfb0: 20 20 20 20 3a 73 65 74 20 28 24 62 6f 61 72 64 :set ($board
cfc0: 2d 3e 22 69 73 4c 74 65 22 29 20 31 0a 20 20 20 ->"isLte") 1.
cfd0: 20 20 20 3a 73 65 74 20 63 6f 6e 66 69 67 4d 6f :set configMo
cfe0: 64 65 20 22 6c 74 65 5f 63 70 65 5f 61 70 5f 72 de "lte_cpe_ap_r
cff0: 6f 75 74 65 72 22 3b 0a 20 20 20 20 20 20 3a 73 outer";. :s
d000: 65 74 20 77 61 6e 50 6f 72 74 73 20 7b 22 6c 74 et wanPorts {"lt
d010: 65 31 22 7d 3b 0a 20 20 20 20 7d 20 65 6c 73 65 e1"};. } else
d020: 3d 7b 0a 20 20 20 20 20 20 3a 73 65 74 20 63 6f ={. :set co
d030: 6e 66 69 67 4d 6f 64 65 20 22 77 69 73 70 5f 62 nfigMode "wisp_b
d040: 72 69 64 67 65 22 3b 0a 20 20 20 20 7d 0a 20 20 ridge";. }.
d050: 20 20 3a 69 66 20 28 21 28 24 64 65 66 63 6f 6e :if (!($defcon
d060: 66 4c 52 3d 22 22 20 7c 7c 20 5b 3a 74 79 70 65 fLR="" || [:type
d070: 6f 66 20 24 64 65 66 63 6f 6e 66 4c 52 5d 3d 20 of $defconfLR]=
d080: 22 6e 6f 74 68 69 6e 67 22 29 29 20 64 6f 3d 7b "nothing")) do={
d090: 0a 20 20 20 20 20 20 3a 73 65 74 20 69 73 50 43 . :set isPC
d0a0: 49 6e 65 65 64 65 64 20 31 3b 0a 20 20 20 20 7d Ineeded 1;. }
d0b0: 0a 20 20 7d 0a 0a 20 20 3a 69 66 20 28 24 62 6f . }.. :if ($bo
d0c0: 61 72 64 2d 3e 22 6d 6f 64 65 6c 22 7e 22 77 73 ard->"model"~"ws
d0d0: 41 50 22 29 20 64 6f 3d 7b 0a 20 20 20 20 3a 73 AP") do={. :s
d0e0: 65 74 20 63 6f 6e 66 69 67 4d 6f 64 65 20 22 61 et configMode "a
d0f0: 70 5f 72 6f 75 74 65 72 22 3b 0a 20 20 20 20 3a p_router";. :
d100: 73 65 74 20 77 61 6e 50 6f 72 74 73 20 7b 22 65 set wanPorts {"e
d110: 74 68 65 72 31 22 7d 3b 0a 20 20 20 20 3a 73 65 ther1"};. :se
d120: 74 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 22 t installation "
d130: 61 6e 79 22 0a 20 20 20 20 69 66 20 28 24 6e 75 any". if ($nu
d140: 6d 57 6c 61 6e 73 20 3c 20 32 29 20 64 6f 3d 7b mWlans < 2) do={
d150: 0a 20 20 20 20 20 20 3a 73 65 74 20 6c 61 6e 50 . :set lanP
d160: 6f 72 74 20 22 77 6c 61 6e 31 22 3b 0a 20 20 20 ort "wlan1";.
d170: 20 7d 0a 20 20 7d 0a 0a 20 20 23 2d 2d 2d 2d 2d }. }.. #-----
d180: 43 50 45 20 2e 2e 0a 20 20 3a 69 66 20 28 24 62 CPE ... :if ($b
d190: 6f 61 72 64 2d 3e 22 6d 6f 64 65 6c 22 7e 22 53 oard->"model"~"S
d1a0: 58 54 7c 45 43 32 35 7c 45 47 32 35 22 29 20 64 XT|EC25|EG25") d
d1b0: 6f 3d 7b 0a 20 20 20 20 23 20 48 41 43 4b 20 66 o={. # HACK f
d1c0: 6f 72 20 62 72 6f 6b 65 6e 20 66 61 63 74 6f 72 or broken factor
d1d0: 79 20 6e 61 6d 69 6e 67 0a 20 20 20 20 3a 69 66 y naming. :if
d1e0: 20 28 24 62 6f 61 72 64 2d 3e 22 6d 6f 64 65 6c ($board->"model
d1f0: 22 20 3d 20 22 52 42 53 58 54 73 71 35 6e 44 22 " = "RBSXTsq5nD"
d200: 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 3a 73 65 ) do={. :se
d210: 74 20 6e 75 6d 57 6c 61 6e 73 20 31 3b 0a 20 20 t numWlans 1;.
d220: 20 20 7d 0a 20 20 20 20 3a 69 66 20 28 24 6e 75 }. :if ($nu
d230: 6d 57 69 6c 73 20 3e 20 30 29 20 64 6f 3d 7b 0a mWils > 0) do={.
d240: 20 20 20 20 20 20 3a 73 65 74 20 63 6f 6e 66 69 :set confi
d250: 67 4d 6f 64 65 20 22 77 36 30 67 5f 62 72 69 64 gMode "w60g_brid
d260: 67 65 22 3b 0a 20 20 20 20 20 20 3a 73 65 74 20 ge";. :set
d270: 6e 65 65 64 41 64 6d 69 6e 50 61 73 73 20 31 3b needAdminPass 1;
d280: 0a 20 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 . } else={.
d290: 20 20 20 20 20 20 3a 73 65 74 20 63 6f 6e 66 69 :set confi
d2a0: 67 4d 6f 64 65 20 22 63 70 65 5f 72 6f 75 74 65 gMode "cpe_route
d2b0: 72 22 3b 0a 20 20 20 20 20 20 20 20 3a 69 66 20 r";. :if
d2c0: 28 24 6e 75 6d 57 6c 61 6e 73 20 3e 20 31 29 20 ($numWlans > 1)
d2d0: 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 20 20 3a do={. :
d2e0: 73 65 74 20 77 61 6e 50 6f 72 74 73 20 28 22 24 set wanPorts ("$
d2f0: 22 77 6c 61 6e 50 72 65 66 69 78 22 32 22 29 3b "wlanPrefix"2");
d300: 0a 20 20 20 20 20 20 20 20 20 20 3a 73 65 74 20 . :set
d310: 6d 6f 64 65 31 20 22 64 69 73 61 62 6c 65 64 22 mode1 "disabled"
d320: 3b 0a 20 20 20 20 20 20 20 20 20 20 3a 73 65 74 ;. :set
d330: 20 6d 6f 64 65 32 20 22 73 74 61 74 69 6f 6e 22 mode2 "station"
d340: 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 ;. } else
d350: 3d 7b 0a 20 20 20 20 20 20 20 20 20 20 3a 69 66 ={. :if
d360: 20 28 21 28 24 64 65 66 63 6f 6e 66 4c 74 65 3d (!($defconfLte=
d370: 22 22 20 7c 7c 20 5b 3a 74 79 70 65 6f 66 20 24 "" || [:typeof $
d380: 64 65 66 63 6f 6e 66 4c 74 65 5d 3d 20 22 6e 6f defconfLte]= "no
d390: 74 68 69 6e 67 22 29 20 7c 7c 20 24 6d 61 72 6b thing") || $mark
d3a0: 65 74 69 6e 67 4e 61 6d 65 7e 22 4c 54 45 22 29 etingName~"LTE")
d3b0: 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 20 20 do={.
d3c0: 20 20 3a 73 65 74 20 28 24 62 6f 61 72 64 2d 3e :set ($board->
d3d0: 22 69 73 4c 74 65 22 29 20 31 0a 20 20 20 20 20 "isLte") 1.
d3e0: 20 20 20 20 20 20 20 3a 73 65 74 20 77 61 6e 50 :set wanP
d3f0: 6f 72 74 73 20 7b 22 6c 74 65 31 22 7d 3b 0a 20 orts {"lte1"};.
d400: 20 20 20 20 20 20 20 20 20 20 20 3a 73 65 74 20 :set
d410: 69 70 4e 65 74 77 6f 72 6b 20 22 31 39 32 2e 31 ipNetwork "192.1
d420: 36 38 2e 31 38 38 22 3b 0a 20 20 20 20 20 20 20 68.188";.
d430: 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 } else={.
d440: 20 20 20 20 20 20 20 20 3a 73 65 74 20 77 61 6e :set wan
d450: 50 6f 72 74 73 20 28 22 24 22 77 6c 61 6e 50 72 Ports ("$"wlanPr
d460: 65 66 69 78 22 31 22 29 3b 0a 20 20 20 20 20 20 efix"1");.
d470: 20 20 20 20 20 20 3a 73 65 74 20 6c 61 6e 50 6f :set lanPo
d480: 72 74 20 22 65 74 68 65 72 31 22 3b 0a 20 20 20 rt "ether1";.
d490: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 }.
d4a0: 20 7d 0a 20 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 }. }. }..
d4b0: 20 3a 69 66 20 28 24 62 6f 61 72 64 2d 3e 22 6d :if ($board->"m
d4c0: 6f 64 65 6c 22 7e 22 51 52 54 22 29 20 64 6f 3d odel"~"QRT") do=
d4d0: 7b 0a 20 20 20 20 3a 73 65 74 20 63 6f 6e 66 69 {. :set confi
d4e0: 67 4d 6f 64 65 20 22 63 70 65 5f 72 6f 75 74 65 gMode "cpe_route
d4f0: 72 22 3b 0a 20 20 20 20 3a 73 65 74 20 77 61 6e r";. :set wan
d500: 50 6f 72 74 73 20 28 22 24 22 77 6c 61 6e 50 72 Ports ("$"wlanPr
d510: 65 66 69 78 22 31 22 29 3b 0a 20 20 20 20 3a 73 efix"1");. :s
d520: 65 74 20 6c 61 6e 50 6f 72 74 20 22 65 74 68 65 et lanPort "ethe
d530: 72 31 22 3b 0a 20 20 7d 0a 0a 20 20 3a 69 66 20 r1";. }.. :if
d540: 28 24 62 6f 61 72 64 2d 3e 22 6d 6f 64 65 6c 22 ($board->"model"
d550: 7e 22 39 31 31 7c 39 31 32 7c 4c 31 31 22 29 20 ~"911|912|L11")
d560: 64 6f 3d 7b 0a 20 20 20 20 3a 69 66 20 28 21 28 do={. :if (!(
d570: 24 64 65 66 63 6f 6e 66 4c 74 65 3d 22 22 20 7c $defconfLte="" |
d580: 7c 20 5b 3a 74 79 70 65 6f 66 20 24 64 65 66 63 | [:typeof $defc
d590: 6f 6e 66 4c 74 65 5d 3d 20 22 6e 6f 74 68 69 6e onfLte]= "nothin
d5a0: 67 22 29 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 g")) do={.
d5b0: 3a 73 65 74 20 28 24 62 6f 61 72 64 2d 3e 22 69 :set ($board->"i
d5c0: 73 4c 74 65 22 29 20 31 0a 20 20 20 20 20 20 3a sLte") 1. :
d5d0: 73 65 74 20 63 6f 6e 66 69 67 4d 6f 64 65 20 22 set configMode "
d5e0: 6c 74 65 5f 63 70 65 5f 61 70 5f 72 6f 75 74 65 lte_cpe_ap_route
d5f0: 72 22 3b 0a 20 20 20 20 20 20 3a 73 65 74 20 77 r";. :set w
d600: 61 6e 50 6f 72 74 73 20 7b 22 6c 74 65 31 22 7d anPorts {"lte1"}
d610: 3b 0a 20 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 ;. } else={.
d620: 20 20 20 20 20 3a 69 66 20 28 24 6d 61 72 6b 65 :if ($marke
d630: 74 69 6e 67 4e 61 6d 65 7e 22 5e 4c 74 41 50 20 tingName~"^LtAP
d640: 6d 69 6e 69 22 29 20 64 6f 3d 7b 0a 20 20 20 20 mini") do={.
d650: 20 20 20 20 3a 73 65 74 20 63 6f 6e 66 69 67 4d :set configM
d660: 6f 64 65 20 22 77 69 73 70 5f 62 72 69 64 67 65 ode "wisp_bridge
d670: 22 3b 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 3d ";. } else=
d680: 7b 0a 20 20 20 20 20 20 20 20 3a 69 66 20 28 24 {. :if ($
d690: 6c 69 63 65 6e 73 65 4c 65 76 65 6c 20 3d 20 33 licenseLevel = 3
d6a0: 20 7c 7c 20 24 6d 61 72 6b 65 74 69 6e 67 4e 61 || $marketingNa
d6b0: 6d 65 7e 22 5e 51 52 54 22 29 20 64 6f 3d 7b 0a me~"^QRT") do={.
d6c0: 20 20 20 20 20 20 20 20 20 20 3a 73 65 74 20 63 :set c
d6d0: 6f 6e 66 69 67 4d 6f 64 65 20 22 63 70 65 5f 72 onfigMode "cpe_r
d6e0: 6f 75 74 65 72 22 3b 0a 20 20 20 20 20 20 20 20 outer";.
d6f0: 20 20 3a 73 65 74 20 77 61 6e 50 6f 72 74 73 20 :set wanPorts
d700: 28 22 24 22 77 6c 61 6e 50 72 65 66 69 78 22 31 ("$"wlanPrefix"1
d710: 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 3a 73 ");. :s
d720: 65 74 20 6c 61 6e 50 6f 72 74 20 22 65 74 68 65 et lanPort "ethe
d730: 72 31 22 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 r1";. } e
d740: 6c 73 65 3d 7b 20 69 66 20 28 24 6c 69 63 65 6e lse={ if ($licen
d750: 73 65 4c 65 76 65 6c 20 3d 20 34 29 20 64 6f 3d seLevel = 4) do=
d760: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 {. :s
d770: 65 74 20 63 6f 6e 66 69 67 4d 6f 64 65 20 22 77 et configMode "w
d780: 69 73 70 5f 62 72 69 64 67 65 22 3b 0a 20 20 20 isp_bridge";.
d790: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 }.
d7a0: 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d }. }. }
d7b0: 0a 20 20 7d 0a 0a 20 20 23 4e 65 74 4d 65 74 61 . }.. #NetMeta
d7c0: 6c 0a 20 20 3a 69 66 20 28 24 62 6f 61 72 64 2d l. :if ($board-
d7d0: 3e 22 6d 6f 64 65 6c 22 7e 22 39 32 31 7c 39 32 >"model"~"921|92
d7e0: 32 7c 41 32 31 7c 44 32 33 7c 44 32 32 7c 4c 32 2|A21|D23|D22|L2
d7f0: 33 7c 4c 32 32 22 29 20 64 6f 3d 7b 0a 20 20 20 3|L22") do={.
d800: 20 3a 69 66 20 28 24 6c 69 63 65 6e 73 65 4c 65 :if ($licenseLe
d810: 76 65 6c 20 3d 20 33 29 20 64 6f 3d 7b 0a 20 20 vel = 3) do={.
d820: 20 20 20 20 3a 73 65 74 20 63 6f 6e 66 69 67 4d :set configM
d830: 6f 64 65 20 22 63 70 65 5f 72 6f 75 74 65 72 22 ode "cpe_router"
d840: 3b 0a 20 20 20 20 20 20 20 20 20 20 3a 69 66 20 ;. :if
d850: 28 24 6e 75 6d 57 6c 61 6e 73 20 3e 20 31 29 20 ($numWlans > 1)
d860: 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 20 20 3a do={. :
d870: 73 65 74 20 77 61 6e 50 6f 72 74 73 20 28 22 24 set wanPorts ("$
d880: 22 77 6c 61 6e 50 72 65 66 69 78 22 32 22 29 3b "wlanPrefix"2");
d890: 0a 20 20 20 20 20 20 20 20 20 20 3a 73 65 74 20 . :set
d8a0: 6d 6f 64 65 31 20 22 64 69 73 61 62 6c 65 64 22 mode1 "disabled"
d8b0: 3b 0a 20 20 20 20 20 20 20 20 20 20 3a 73 65 74 ;. :set
d8c0: 20 6d 6f 64 65 32 20 22 73 74 61 74 69 6f 6e 22 mode2 "station"
d8d0: 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 ;. } else
d8e0: 3d 7b 0a 20 20 20 20 20 20 20 20 20 20 3a 73 65 ={. :se
d8f0: 74 20 77 61 6e 50 6f 72 74 73 20 28 22 24 22 77 t wanPorts ("$"w
d900: 6c 61 6e 50 72 65 66 69 78 22 31 22 29 3b 0a 20 lanPrefix"1");.
d910: 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d }. }
d920: 0a 20 20 20 20 23 20 69 74 20 73 68 6f 75 6c 64 . # it should
d930: 20 62 65 20 41 50 20 69 66 20 6c 69 63 65 6e 73 be AP if licens
d940: 65 20 6c 65 76 65 6c 20 69 73 20 34 0a 20 20 20 e level is 4.
d950: 20 3a 69 66 20 28 24 6c 69 63 65 6e 73 65 4c 65 :if ($licenseLe
d960: 76 65 6c 20 3d 20 34 29 20 64 6f 3d 7b 0a 20 20 vel = 4) do={.
d970: 20 20 20 20 3a 73 65 74 20 63 6f 6e 66 69 67 4d :set configM
d980: 6f 64 65 20 22 77 69 73 70 5f 62 72 69 64 67 65 ode "wisp_bridge
d990: 22 3b 0a 20 20 20 20 20 20 7d 0a 20 20 7d 0a 0a ";. }. }..
d9a0: 20 20 3a 69 66 20 28 24 62 6f 61 72 64 2d 3e 22 :if ($board->"
d9b0: 6d 6f 64 65 6c 22 7e 22 4c 44 46 22 29 20 64 6f model"~"LDF") do
d9c0: 3d 7b 0a 20 20 20 20 3a 69 66 20 28 21 28 24 64 ={. :if (!($d
d9d0: 65 66 63 6f 6e 66 4c 74 65 3d 22 22 20 7c 7c 20 efconfLte="" ||
d9e0: 5b 3a 74 79 70 65 6f 66 20 24 64 65 66 63 6f 6e [:typeof $defcon
d9f0: 66 4c 74 65 5d 3d 20 22 6e 6f 74 68 69 6e 67 22 fLte]= "nothing"
da00: 29 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 3a 73 )) do={. :s
da10: 65 74 20 28 24 62 6f 61 72 64 2d 3e 22 69 73 4c et ($board->"isL
da20: 74 65 22 29 20 31 0a 20 20 20 20 20 20 3a 73 65 te") 1. :se
da30: 74 20 63 6f 6e 66 69 67 4d 6f 64 65 20 22 63 70 t configMode "cp
da40: 65 5f 72 6f 75 74 65 72 22 3b 0a 20 20 20 20 20 e_router";.
da50: 20 3a 73 65 74 20 77 61 6e 50 6f 72 74 73 20 7b :set wanPorts {
da60: 22 6c 74 65 31 22 7d 3b 0a 20 20 20 20 20 20 3a "lte1"};. :
da70: 73 65 74 20 6c 61 6e 50 6f 72 74 20 22 65 74 68 set lanPort "eth
da80: 65 72 31 22 3b 0a 20 20 20 20 20 20 3a 73 65 74 er1";. :set
da90: 20 69 70 4e 65 74 77 6f 72 6b 20 22 31 39 32 2e ipNetwork "192.
daa0: 31 36 38 2e 31 38 38 22 3b 0a 20 20 20 20 7d 20 168.188";. }
dab0: 65 6c 73 65 3d 7b 0a 20 20 20 20 3a 73 65 74 20 else={. :set
dac0: 63 6f 6e 66 69 67 4d 6f 64 65 20 22 63 70 65 5f configMode "cpe_
dad0: 72 6f 75 74 65 72 22 3b 0a 20 20 20 20 3a 73 65 router";. :se
dae0: 74 20 77 61 6e 50 6f 72 74 73 20 28 22 24 22 77 t wanPorts ("$"w
daf0: 6c 61 6e 50 72 65 66 69 78 22 31 22 29 3b 0a 20 lanPrefix"1");.
db00: 20 20 20 3a 73 65 74 20 6c 61 6e 50 6f 72 74 20 :set lanPort
db10: 22 65 74 68 65 72 31 22 3b 0a 20 20 20 20 7d 0a "ether1";. }.
db20: 0a 20 20 7d 0a 0a 20 20 3a 69 66 20 28 24 62 6f . }.. :if ($bo
db30: 61 72 64 2d 3e 22 6d 6f 64 65 6c 22 7e 22 62 65 ard->"model"~"be
db40: 61 6d 7c 43 75 62 65 7c 43 75 62 65 47 22 29 20 am|Cube|CubeG")
db50: 64 6f 3d 7b 0a 20 20 20 20 3a 69 66 20 28 24 6e do={. :if ($n
db60: 75 6d 57 69 6c 73 20 3e 20 30 29 20 64 6f 3d 7b umWils > 0) do={
db70: 0a 20 20 20 20 20 20 3a 69 66 20 28 24 6d 61 72 . :if ($mar
db80: 6b 65 74 69 6e 67 4e 61 6d 65 7e 22 53 41 22 29 ketingName~"SA")
db90: 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 3a 73 do={. :s
dba0: 65 74 20 63 6f 6e 66 69 67 4d 6f 64 65 20 22 77 et configMode "w
dbb0: 36 30 67 5f 62 72 69 64 67 65 22 3b 0a 20 20 20 60g_bridge";.
dbc0: 20 20 20 20 20 3a 73 65 74 20 6e 65 65 64 41 64 :set needAd
dbd0: 6d 69 6e 50 61 73 73 20 31 3b 0a 20 20 20 20 20 minPass 1;.
dbe0: 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 20 20 } else={.
dbf0: 20 20 3a 73 65 74 20 63 6f 6e 66 69 67 4d 6f 64 :set configMod
dc00: 65 20 22 77 36 30 67 5f 62 72 69 64 67 65 22 3b e "w60g_bridge";
dc10: 0a 20 20 20 20 20 20 20 20 3a 73 65 74 20 62 61 . :set ba
dc20: 63 6b 75 70 4c 69 6e 6b 20 31 3b 0a 20 20 20 20 ckupLink 1;.
dc30: 20 20 20 20 3a 73 65 74 20 6e 65 65 64 41 64 6d :set needAdm
dc40: 69 6e 50 61 73 73 20 31 3b 0a 20 20 20 20 20 20 inPass 1;.
dc50: 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 23 }. }. }.. #
dc60: 2d 2d 2d 2d 2d 57 49 53 50 20 42 52 49 44 47 45 -----WISP BRIDGE
dc70: 20 2e 2e 0a 20 20 3a 69 66 20 28 24 62 6f 61 72 ... :if ($boar
dc80: 64 2d 3e 22 6d 6f 64 65 6c 22 7e 22 4c 48 47 7c d->"model"~"LHG|
dc90: 44 69 73 63 7c 6e 52 41 59 7c 41 54 4c 47 4d 7c Disc|nRAY|ATLGM|
dca0: 4c 30 30 47 22 29 20 64 6f 3d 7b 0a 20 20 20 20 L00G") do={.
dcb0: 3a 69 66 20 28 24 6e 75 6d 57 69 6c 73 20 3e 20 :if ($numWils >
dcc0: 30 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 3a 73 0) do={. :s
dcd0: 65 74 20 63 6f 6e 66 69 67 4d 6f 64 65 20 22 77 et configMode "w
dce0: 36 30 67 5f 62 72 69 64 67 65 22 3b 0a 20 20 20 60g_bridge";.
dcf0: 20 20 20 3a 73 65 74 20 6e 65 65 64 41 64 6d 69 :set needAdmi
dd00: 6e 50 61 73 73 20 31 3b 0a 20 20 20 20 7d 20 65 nPass 1;. } e
dd10: 6c 73 65 3d 7b 0a 20 20 20 20 20 20 3a 69 66 20 lse={. :if
dd20: 28 21 28 24 64 65 66 63 6f 6e 66 4c 74 65 3d 22 (!($defconfLte="
dd30: 22 20 7c 7c 20 5b 3a 74 79 70 65 6f 66 20 24 64 " || [:typeof $d
dd40: 65 66 63 6f 6e 66 4c 74 65 5d 3d 20 22 6e 6f 74 efconfLte]= "not
dd50: 68 69 6e 67 22 29 29 20 64 6f 3d 7b 0a 20 20 20 hing")) do={.
dd60: 20 20 20 20 20 3a 73 65 74 20 28 24 62 6f 61 72 :set ($boar
dd70: 64 2d 3e 22 69 73 4c 74 65 22 29 20 31 0a 20 20 d->"isLte") 1.
dd80: 20 20 20 20 20 20 3a 73 65 74 20 63 6f 6e 66 69 :set confi
dd90: 67 4d 6f 64 65 20 22 63 70 65 5f 72 6f 75 74 65 gMode "cpe_route
dda0: 72 22 3b 0a 20 20 20 20 20 20 20 20 3a 73 65 74 r";. :set
ddb0: 20 77 61 6e 50 6f 72 74 73 20 7b 22 6c 74 65 31 wanPorts {"lte1
ddc0: 22 7d 3b 0a 20 20 20 20 20 20 20 20 3a 73 65 74 "};. :set
ddd0: 20 6c 61 6e 50 6f 72 74 20 22 65 74 68 65 72 31 lanPort "ether1
dde0: 22 3b 0a 20 20 20 20 20 20 20 20 3a 73 65 74 20 ";. :set
ddf0: 69 70 4e 65 74 77 6f 72 6b 20 22 31 39 32 2e 31 ipNetwork "192.1
de00: 36 38 2e 31 38 38 22 3b 0a 20 20 20 20 20 20 7d 68.188";. }
de10: 20 65 6c 73 65 3d 7b 0a 20 20 20 20 20 20 20 20 else={.
de20: 3a 69 66 20 28 24 6e 75 6d 57 6c 61 6e 73 20 3e :if ($numWlans >
de30: 20 31 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 1) do={.
de40: 20 20 20 3a 73 65 74 20 63 6f 6e 66 69 67 4d 6f :set configMo
de50: 64 65 20 22 70 74 70 5f 62 72 69 64 67 65 22 3b de "ptp_bridge";
de60: 0a 20 20 20 20 20 20 20 20 20 20 3a 73 65 74 20 . :set
de70: 6d 6f 64 65 31 20 22 73 74 61 74 69 6f 6e 22 3b mode1 "station";
de80: 0a 20 20 20 20 20 20 20 20 20 20 3a 73 65 74 20 . :set
de90: 6d 6f 64 65 32 20 22 73 74 61 74 69 6f 6e 22 3b mode2 "station";
dea0: 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 3d . } else=
deb0: 7b 0a 20 20 20 20 20 20 20 20 20 20 3a 69 66 20 {. :if
dec0: 28 24 6e 75 6d 57 6c 61 6e 73 20 3d 20 31 29 20 ($numWlans = 1)
ded0: 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 20 20 20 do={.
dee0: 20 3a 73 65 74 20 63 6f 6e 66 69 67 4d 6f 64 65 :set configMode
def0: 20 22 63 70 65 5f 72 6f 75 74 65 72 22 3b 0a 20 "cpe_router";.
df00: 20 20 20 20 20 20 20 20 20 20 20 3a 73 65 74 20 :set
df10: 77 61 6e 50 6f 72 74 73 20 28 22 24 22 77 6c 61 wanPorts ("$"wla
df20: 6e 50 72 65 66 69 78 22 31 22 29 3b 0a 20 20 20 nPrefix"1");.
df30: 20 20 20 20 20 20 20 20 20 3a 73 65 74 20 6c 61 :set la
df40: 6e 50 6f 72 74 20 22 65 74 68 65 72 31 22 3b 0a nPort "ether1";.
df50: 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 } else
df60: 3d 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 ={. #
df70: 20 57 6f 72 6b 61 72 72 6f 75 6e 64 20 74 6f 20 Workarround to
df80: 66 69 78 20 4c 47 48 20 77 2f 6f 20 61 6e 79 20 fix LGH w/o any
df90: 61 74 74 61 63 68 6d 65 6e 74 73 20 66 61 69 6c attachments fail
dfa0: 69 6e 67 20 64 65 66 63 6f 6e 66 0a 20 20 20 20 ing defconf.
dfb0: 20 20 20 20 20 20 20 20 3a 73 65 74 20 63 6f 6e :set con
dfc0: 66 69 67 4d 6f 64 65 20 22 22 3b 0a 20 20 20 20 figMode "";.
dfd0: 20 20 20 20 20 20 20 20 3a 73 65 74 20 6c 61 6e :set lan
dfe0: 50 6f 72 74 20 22 65 74 68 65 72 31 22 3b 0a 20 Port "ether1";.
dff0: 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 }.
e000: 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 20 }. }.
e010: 20 7d 0a 20 20 7d 0a 0a 20 20 3a 69 66 20 28 24 }. }.. :if ($
e020: 62 6f 61 72 64 2d 3e 22 6d 6f 64 65 6c 22 7e 22 board->"model"~"
e030: 47 72 6f 6f 76 65 7c 4d 65 74 61 6c 7c 37 31 31 Groove|Metal|711
e040: 22 29 20 64 6f 3d 7b 0a 20 20 20 20 23 20 68 61 ") do={. # ha
e050: 63 6b 20 66 6f 72 20 47 72 6f 6f 76 65 47 41 20 ck for GrooveGA
e060: 6e 61 6d 69 6e 67 20 77 2f 6f 20 73 70 61 63 65 naming w/o space
e070: 0a 20 20 20 20 3a 69 66 20 28 24 62 6f 61 72 64 . :if ($board
e080: 2d 3e 22 6d 6f 64 65 6c 22 20 3d 20 22 47 72 6f ->"model" = "Gro
e090: 6f 76 65 47 41 22 29 20 64 6f 3d 7b 0a 20 20 20 oveGA") do={.
e0a0: 20 20 20 3a 73 65 74 20 28 24 62 6f 61 72 64 2d :set ($board-
e0b0: 3e 22 69 73 41 70 22 29 20 31 3b 0a 20 20 20 20 >"isAp") 1;.
e0c0: 7d 0a 20 20 20 20 3a 69 66 20 28 24 62 6f 61 72 }. :if ($boar
e0d0: 64 2d 3e 22 69 73 41 70 22 20 3d 20 31 29 20 64 d->"isAp" = 1) d
e0e0: 6f 3d 7b 0a 20 20 20 20 20 20 3a 73 65 74 20 63 o={. :set c
e0f0: 6f 6e 66 69 67 4d 6f 64 65 20 22 77 69 73 70 5f onfigMode "wisp_
e100: 62 72 69 64 67 65 22 3b 0a 20 20 20 20 7d 20 65 bridge";. } e
e110: 6c 73 65 3d 7b 0a 20 20 20 20 20 20 3a 73 65 74 lse={. :set
e120: 20 63 6f 6e 66 69 67 4d 6f 64 65 20 22 63 70 65 configMode "cpe
e130: 5f 72 6f 75 74 65 72 22 3b 0a 20 20 20 20 20 20 _router";.
e140: 3a 73 65 74 20 77 61 6e 50 6f 72 74 73 20 28 22 :set wanPorts ("
e150: 24 22 77 6c 61 6e 50 72 65 66 69 78 22 31 22 29 $"wlanPrefix"1")
e160: 3b 0a 20 20 20 20 20 20 3a 73 65 74 20 6c 61 6e ;. :set lan
e170: 50 6f 72 74 20 22 65 74 68 65 72 31 22 3b 0a 20 Port "ether1";.
e180: 20 20 20 7d 3b 0a 20 20 7d 0a 0a 20 20 3a 69 66 };. }.. :if
e190: 20 28 24 62 6f 61 72 64 2d 3e 22 6d 6f 64 65 6c ($board->"model
e1a0: 22 7e 22 5e 50 4c 22 29 20 64 6f 3d 7b 0a 20 20 "~"^PL") do={.
e1b0: 20 20 3a 73 65 74 20 69 6e 73 74 61 6c 6c 61 74 :set installat
e1c0: 69 6f 6e 20 22 61 6e 79 22 3b 0a 20 20 20 20 3a ion "any";. :
e1d0: 73 65 74 20 63 6f 6e 66 69 67 4d 6f 64 65 20 22 set configMode "
e1e0: 77 69 73 70 5f 62 72 69 64 67 65 22 3b 0a 20 20 wisp_bridge";.
e1f0: 7d 0a 0a 20 20 3a 69 66 20 28 24 62 6f 61 72 64 }.. :if ($board
e200: 2d 3e 22 6d 6f 64 65 6c 22 7e 22 4f 6d 6e 69 47 ->"model"~"OmniG
e210: 72 6f 6f 76 65 22 29 20 64 6f 3d 7b 0a 20 20 20 roove") do={.
e220: 20 3a 73 65 74 20 63 6f 6e 66 69 67 4d 6f 64 65 :set configMode
e230: 20 22 77 69 73 70 5f 62 72 69 64 67 65 22 3b 0a "wisp_bridge";.
e240: 20 20 7d 0a 0a 20 20 3a 69 66 20 28 24 62 6f 61 }.. :if ($boa
e250: 72 64 2d 3e 22 6d 6f 64 65 6c 22 7e 22 44 79 6e rd->"model"~"Dyn
e260: 61 44 69 73 68 22 29 20 64 6f 3d 7b 0a 20 20 20 aDish") do={.
e270: 20 3a 73 65 74 20 63 6f 6e 66 69 67 4d 6f 64 65 :set configMode
e280: 20 22 70 74 70 5f 62 72 69 64 67 65 22 3b 0a 20 "ptp_bridge";.
e290: 20 20 20 3a 73 65 74 20 77 61 6e 50 6f 72 74 73 :set wanPorts
e2a0: 20 7b 22 77 6c 61 6e 31 22 7d 3b 0a 20 20 20 20 {"wlan1"};.
e2b0: 3a 73 65 74 20 6d 6f 64 65 31 20 22 73 74 61 74 :set mode1 "stat
e2c0: 69 6f 6e 22 3b 0a 20 20 7d 0a 7d 0a 23 20 43 6c ion";. }.}.# Cl
e2d0: 6f 75 64 52 6f 75 74 65 72 53 77 69 74 63 68 65 oudRouterSwitche
e2e0: 73 0a 3a 69 66 20 28 24 62 6f 61 72 64 2d 3e 22 s.:if ($board->"
e2f0: 70 72 65 66 69 78 22 7e 22 43 6c 6f 75 64 52 6f prefix"~"CloudRo
e300: 75 74 65 72 53 77 69 74 63 68 22 29 20 64 6f 3d uterSwitch") do=
e310: 7b 0a 0a 20 20 3a 69 66 20 28 24 6e 75 6d 57 6c {.. :if ($numWl
e320: 61 6e 73 20 3e 20 30 29 20 64 6f 3d 7b 0a 20 20 ans > 0) do={.
e330: 20 20 3a 73 65 74 20 63 6f 6e 66 69 67 4d 6f 64 :set configMod
e340: 65 20 22 61 70 5f 72 6f 75 74 65 72 22 3b 0a 20 e "ap_router";.
e350: 20 20 20 3a 73 65 74 20 69 6e 73 74 61 6c 6c 61 :set installa
e360: 74 69 6f 6e 20 22 61 6e 79 22 3b 0a 20 20 20 20 tion "any";.
e370: 3a 73 65 74 20 77 61 6e 50 6f 72 74 73 20 7b 22 :set wanPorts {"
e380: 65 74 68 65 72 31 22 7d 3b 0a 20 20 7d 20 65 6c ether1"};. } el
e390: 73 65 3d 7b 0a 20 20 20 20 3a 73 65 74 20 63 6f se={. :set co
e3a0: 6e 66 69 67 4d 6f 64 65 20 22 73 77 69 74 63 68 nfigMode "switch
e3b0: 22 3b 0a 20 20 7d 0a 7d 0a 23 20 53 70 65 63 69 ";. }.}.# Speci
e3c0: 61 6c 20 43 61 73 65 20 43 43 52 73 0a 3a 69 66 al Case CCRs.:if
e3d0: 20 28 24 62 6f 61 72 64 2d 3e 22 6d 6f 64 65 6c ($board->"model
e3e0: 22 7e 22 43 43 52 32 31 31 36 22 29 20 64 6f 3d "~"CCR2116") do=
e3f0: 7b 0a 20 20 3a 69 66 20 28 24 62 6f 61 72 64 2d {. :if ($board-
e400: 3e 22 6e 75 6d 47 69 67 22 20 3d 20 31 32 20 26 >"numGig" = 12 &
e410: 26 20 24 62 6f 61 72 64 2d 3e 22 6e 75 6d 53 66 & $board->"numSf
e420: 70 50 6c 75 73 22 20 3d 20 34 29 20 64 6f 3d 7b pPlus" = 4) do={
e430: 0a 20 20 20 20 3a 73 65 74 20 6c 61 6e 50 6f 72 . :set lanPor
e440: 74 20 22 65 74 68 65 72 31 33 22 3b 0a 20 20 7d t "ether13";. }
e450: 0a 7d 0a 3a 69 66 20 28 24 62 6f 61 72 64 2d 3e .}.:if ($board->
e460: 22 6d 6f 64 65 6c 22 7e 22 43 43 52 32 30 30 34 "model"~"CCR2004
e470: 22 29 20 64 6f 3d 7b 0a 20 20 3a 69 66 20 28 24 ") do={. :if ($
e480: 6d 61 72 6b 65 74 69 6e 67 4e 61 6d 65 7e 22 50 marketingName~"P
e490: 43 49 65 22 29 20 64 6f 3d 7b 0a 20 20 20 20 3a CIe") do={. :
e4a0: 73 65 74 20 63 6f 6e 66 69 67 4d 6f 64 65 20 22 set configMode "
e4b0: 73 77 69 74 63 68 22 3b 0a 20 20 7d 0a 20 20 3a switch";. }. :
e4c0: 69 66 20 28 24 62 6f 61 72 64 2d 3e 22 6e 75 6d if ($board->"num
e4d0: 47 69 67 22 20 3d 20 31 36 20 26 26 20 24 62 6f Gig" = 16 && $bo
e4e0: 61 72 64 2d 3e 22 6e 75 6d 53 66 70 50 6c 75 73 ard->"numSfpPlus
e4f0: 22 20 3d 20 32 29 20 64 6f 3d 7b 0a 20 20 20 20 " = 2) do={.
e500: 3a 73 65 74 20 6c 61 6e 50 6f 72 74 20 22 65 74 :set lanPort "et
e510: 68 65 72 31 35 22 3b 0a 20 20 7d 0a 7d 0a 3a 69 her15";. }.}.:i
e520: 66 20 28 24 62 6f 61 72 64 2d 3e 22 6d 6f 64 65 f ($board->"mode
e530: 6c 22 7e 22 52 44 53 32 32 31 36 22 29 20 64 6f l"~"RDS2216") do
e540: 3d 7b 0a 20 20 20 20 3a 73 65 74 20 6c 61 6e 50 ={. :set lanP
e550: 6f 72 74 20 22 6d 67 6d 74 31 22 3b 0a 20 20 20 ort "mgmt1";.
e560: 20 3a 73 65 74 20 6e 65 65 64 44 68 63 70 43 6c :set needDhcpCl
e570: 69 65 6e 74 20 31 3b 0a 7d 0a 0a 23 2d 2d 2d 2d ient 1;.}..#----
e580: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
e590: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
e5a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
e5b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
e5c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 57 61 -----------.# Wa
e5d0: 69 74 20 57 6c 61 6e 73 0a 3a 69 66 20 28 24 77 it Wlans.:if ($w
e5e0: 69 72 65 6c 65 73 73 45 6e 61 62 6c 65 64 20 3d irelessEnabled =
e5f0: 20 31 29 20 64 6f 3d 7b 0a 20 20 3a 6c 6f 63 61 1) do={. :loca
e600: 6c 20 63 6f 75 6e 74 20 30 3b 0a 20 20 69 66 20 l count 0;. if
e610: 28 24 6e 75 6d 57 69 6c 73 20 3e 20 30 29 20 64 ($numWils > 0) d
e620: 6f 3d 7b 0a 20 20 20 20 3a 6c 6f 63 61 6c 20 63 o={. :local c
e630: 6d 64 20 22 3a 67 6c 6f 62 61 6c 20 6e 54 65 6d md ":global nTem
e640: 70 20 5b 3a 6c 65 6e 20 5b 2f 69 6e 74 65 72 66 p [:len [/interf
e650: 61 63 65 20 77 36 30 67 20 66 69 6e 64 5d 5d 22 ace w60g find]]"
e660: 0a 20 20 20 20 3a 65 78 65 63 75 74 65 20 73 63 . :execute sc
e670: 72 69 70 74 3d 24 63 6d 64 0a 20 20 20 20 3a 64 ript=$cmd. :d
e680: 65 6c 61 79 20 31 73 3b 0a 20 20 20 20 3a 77 68 elay 1s;. :wh
e690: 69 6c 65 20 28 24 6e 54 65 6d 70 20 3c 20 24 6e ile ($nTemp < $n
e6a0: 75 6d 57 69 6c 73 20 26 26 20 24 62 46 61 69 6c umWils && $bFail
e6b0: 20 3d 20 30 29 20 64 6f 3d 7b 0a 20 20 20 20 20 = 0) do={.
e6c0: 20 3a 64 65 6c 61 79 20 31 73 3b 0a 20 20 20 20 :delay 1s;.
e6d0: 20 20 3a 65 78 65 63 75 74 65 20 73 63 72 69 70 :execute scrip
e6e0: 74 3d 24 63 6d 64 0a 20 20 20 20 20 20 3a 73 65 t=$cmd. :se
e6f0: 74 20 63 6f 75 6e 74 20 28 24 63 6f 75 6e 74 20 t count ($count
e700: 2b 31 29 3b 0a 20 20 20 20 20 20 3a 69 66 20 28 +1);. :if (
e710: 24 63 6f 75 6e 74 20 3d 20 34 30 29 20 64 6f 3d $count = 40) do=
e720: 7b 0a 20 20 20 20 20 20 20 20 3a 73 65 74 20 62 {. :set b
e730: 46 61 69 6c 20 31 3b 0a 20 20 20 20 20 20 20 20 Fail 1;.
e740: 3a 6c 6f 67 20 77 61 72 6e 69 6e 67 20 22 44 65 :log warning "De
e750: 66 43 6f 6e 66 20 67 65 6e 3a 20 55 6e 61 62 6c fConf gen: Unabl
e760: 65 20 74 6f 20 66 69 6e 64 20 77 36 30 67 20 69 e to find w60g i
e770: 6e 74 65 72 66 61 63 65 28 73 29 22 3b 0a 20 20 nterface(s)";.
e780: 20 20 20 20 20 20 3a 71 75 69 74 0a 20 20 20 20 :quit.
e790: 20 20 7d 0a 20 20 20 20 7d 3b 0a 20 20 7d 0a 20 }. };. }.
e7a0: 20 69 66 20 28 24 6e 75 6d 57 6c 61 6e 73 20 3e if ($numWlans >
e7b0: 20 30 20 26 26 20 24 75 73 69 6e 67 57 69 66 69 0 && $usingWifi
e7c0: 50 61 63 6b 20 3d 20 31 29 20 64 6f 3d 7b 0a 20 Pack = 1) do={.
e7d0: 20 20 20 3a 64 65 6c 61 79 20 31 73 3b 0a 20 20 :delay 1s;.
e7e0: 20 20 3a 6c 6f 63 61 6c 20 63 6d 64 20 22 3a 67 :local cmd ":g
e7f0: 6c 6f 62 61 6c 20 6e 54 65 6d 70 20 5b 3a 6c 65 lobal nTemp [:le
e800: 6e 20 5b 69 6e 74 65 72 66 61 63 65 2f 77 69 66 n [interface/wif
e810: 69 2f 72 61 64 69 6f 20 66 69 6e 64 5d 5d 22 0a i/radio find]]".
e820: 20 20 20 20 3a 65 78 65 63 75 74 65 20 73 63 72 :execute scr
e830: 69 70 74 3d 24 63 6d 64 0a 20 20 20 20 3a 64 65 ipt=$cmd. :de
e840: 6c 61 79 20 31 73 3b 0a 20 20 20 20 3a 77 68 69 lay 1s;. :whi
e850: 6c 65 20 28 24 6e 54 65 6d 70 20 3c 20 24 6e 75 le ($nTemp < $nu
e860: 6d 57 6c 61 6e 73 20 26 26 20 24 62 46 61 69 6c mWlans && $bFail
e870: 20 3d 20 30 29 20 64 6f 3d 7b 0a 20 20 20 20 20 = 0) do={.
e880: 20 3a 64 65 6c 61 79 20 31 73 3b 0a 20 20 20 20 :delay 1s;.
e890: 20 20 3a 65 78 65 63 75 74 65 20 73 63 72 69 70 :execute scrip
e8a0: 74 3d 24 63 6d 64 0a 20 20 20 20 20 20 3a 73 65 t=$cmd. :se
e8b0: 74 20 63 6f 75 6e 74 20 28 24 63 6f 75 6e 74 20 t count ($count
e8c0: 2b 31 29 3b 0a 20 20 20 20 20 20 3a 69 66 20 28 +1);. :if (
e8d0: 24 63 6f 75 6e 74 20 3d 20 34 30 29 20 64 6f 3d $count = 40) do=
e8e0: 7b 0a 20 20 20 20 20 20 20 20 3a 73 65 74 20 62 {. :set b
e8f0: 46 61 69 6c 20 31 3b 0a 20 20 20 20 20 20 20 20 Fail 1;.
e900: 3a 6c 6f 67 20 77 61 72 6e 69 6e 67 20 22 44 65 :log warning "De
e910: 66 43 6f 6e 66 20 67 65 6e 3a 20 55 6e 61 62 6c fConf gen: Unabl
e920: 65 20 74 6f 20 66 69 6e 64 20 77 69 66 69 20 72 e to find wifi r
e930: 61 64 69 6f 20 64 61 74 61 22 3b 0a 20 20 20 20 adio data";.
e940: 20 20 20 20 3a 71 75 69 74 0a 20 20 20 20 20 20 :quit.
e950: 7d 0a 20 20 20 20 7d 3b 0a 20 20 20 20 23 20 69 }. };. # i
e960: 67 6e 6f 72 65 20 76 69 72 74 75 61 6c 20 69 6e gnore virtual in
e970: 74 65 72 66 61 63 65 73 20 77 68 65 6e 20 73 63 terfaces when sc
e980: 72 69 70 74 20 69 73 20 67 65 6e 65 72 61 74 65 ript is generate
e990: 64 20 61 66 74 65 72 20 75 70 67 72 61 64 65 0a d after upgrade.
e9a0: 20 20 20 20 23 20 6f 6e 20 6e 6f 6e 2d 65 6d 70 # on non-emp
e9b0: 74 79 20 72 6f 75 74 65 72 20 28 77 69 74 68 20 ty router (with
e9c0: 63 75 73 74 6f 6d 20 75 73 65 72 20 63 6f 6e 66 custom user conf
e9d0: 69 67 29 2e 0a 20 20 20 20 3a 6c 6f 63 61 6c 20 ig).. :local
e9e0: 63 6d 64 20 22 3a 67 6c 6f 62 61 6c 20 6e 54 65 cmd ":global nTe
e9f0: 6d 70 20 5b 3a 6c 65 6e 20 5b 2f 69 6e 74 65 72 mp [:len [/inter
ea00: 66 61 63 65 20 77 69 66 69 20 66 69 6e 64 5d 5d face wifi find]]
ea10: 22 0a 20 20 20 20 3a 65 78 65 63 75 74 65 20 73 ". :execute s
ea20: 63 72 69 70 74 3d 24 63 6d 64 0a 20 20 20 20 3a cript=$cmd. :
ea30: 64 65 6c 61 79 20 31 73 3b 0a 20 20 20 20 3a 77 delay 1s;. :w
ea40: 68 69 6c 65 20 28 24 6e 54 65 6d 70 20 3c 20 24 hile ($nTemp < $
ea50: 6e 75 6d 57 6c 61 6e 73 20 26 26 20 24 62 46 61 numWlans && $bFa
ea60: 69 6c 20 3d 20 30 29 20 64 6f 3d 7b 0a 20 20 20 il = 0) do={.
ea70: 20 20 20 3a 64 65 6c 61 79 20 31 73 3b 0a 20 20 :delay 1s;.
ea80: 20 20 20 20 3a 65 78 65 63 75 74 65 20 73 63 72 :execute scr
ea90: 69 70 74 3d 24 63 6d 64 0a 20 20 20 20 20 20 3a ipt=$cmd. :
eaa0: 73 65 74 20 63 6f 75 6e 74 20 28 24 63 6f 75 6e set count ($coun
eab0: 74 20 2b 31 29 3b 0a 20 20 20 20 20 20 3a 69 66 t +1);. :if
eac0: 20 28 24 63 6f 75 6e 74 20 3d 20 34 30 29 20 64 ($count = 40) d
ead0: 6f 3d 7b 0a 20 20 20 20 20 20 20 20 3a 73 65 74 o={. :set
eae0: 20 62 46 61 69 6c 20 31 3b 0a 20 20 20 20 20 20 bFail 1;.
eaf0: 20 20 3a 6c 6f 67 20 77 61 72 6e 69 6e 67 20 22 :log warning "
eb00: 44 65 66 43 6f 6e 66 20 67 65 6e 3a 20 55 6e 61 DefConf gen: Una
eb10: 62 6c 65 20 74 6f 20 66 69 6e 64 20 77 69 66 69 ble to find wifi
eb20: 20 69 6e 74 65 72 66 61 63 65 28 73 29 22 3b 0a interface(s)";.
eb30: 20 20 20 20 20 20 20 20 3a 71 75 69 74 0a 20 20 :quit.
eb40: 20 20 20 20 7d 0a 20 20 20 20 7d 3b 0a 20 20 7d }. };. }
eb50: 20 65 6c 73 65 3d 7b 0a 20 20 20 20 69 66 20 28 else={. if (
eb60: 24 6e 75 6d 57 6c 61 6e 73 20 3e 20 30 29 20 64 $numWlans > 0) d
eb70: 6f 3d 7b 0a 20 20 20 20 20 20 23 20 69 67 6e 6f o={. # igno
eb80: 72 65 20 76 69 72 74 75 61 6c 20 69 6e 74 65 72 re virtual inter
eb90: 66 61 63 65 73 20 77 68 65 6e 20 73 63 72 69 70 faces when scrip
eba0: 74 20 69 73 20 67 65 6e 65 72 61 74 65 64 20 61 t is generated a
ebb0: 66 74 65 72 20 75 70 67 72 61 64 65 0a 20 20 20 fter upgrade.
ebc0: 20 20 20 23 20 6f 6e 20 6e 6f 6e 2d 65 6d 70 74 # on non-empt
ebd0: 79 20 72 6f 75 74 65 72 20 28 77 69 74 68 20 63 y router (with c
ebe0: 75 73 74 6f 6d 20 75 73 65 72 20 63 6f 6e 66 69 ustom user confi
ebf0: 67 29 2e 0a 20 20 20 20 20 20 3a 6c 6f 63 61 6c g).. :local
ec00: 20 63 6d 64 20 22 3a 67 6c 6f 62 61 6c 20 6e 54 cmd ":global nT
ec10: 65 6d 70 20 5b 3a 6c 65 6e 20 5b 2f 69 6e 74 65 emp [:len [/inte
ec20: 72 66 61 63 65 20 77 69 72 65 6c 65 73 73 20 66 rface wireless f
ec30: 69 6e 64 20 77 68 65 72 65 20 69 6e 74 65 72 66 ind where interf
ec40: 61 63 65 2d 74 79 70 65 21 3d 5c 22 76 69 72 74 ace-type!=\"virt
ec50: 75 61 6c 5c 22 5d 5d 22 0a 20 20 20 20 20 20 3a ual\"]]". :
ec60: 65 78 65 63 75 74 65 20 73 63 72 69 70 74 3d 24 execute script=$
ec70: 63 6d 64 0a 20 20 20 20 20 20 3a 64 65 6c 61 79 cmd. :delay
ec80: 20 31 73 3b 0a 20 20 20 20 20 20 3a 77 68 69 6c 1s;. :whil
ec90: 65 20 28 24 6e 54 65 6d 70 20 3c 20 24 6e 75 6d e ($nTemp < $num
eca0: 57 6c 61 6e 73 20 26 26 20 24 62 46 61 69 6c 20 Wlans && $bFail
ecb0: 3d 20 30 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 = 0) do={.
ecc0: 20 20 3a 64 65 6c 61 79 20 31 73 3b 0a 20 20 20 :delay 1s;.
ecd0: 20 20 20 20 20 3a 65 78 65 63 75 74 65 20 73 63 :execute sc
ece0: 72 69 70 74 3d 24 63 6d 64 0a 20 20 20 20 20 20 ript=$cmd.
ecf0: 20 20 3a 73 65 74 20 63 6f 75 6e 74 20 28 24 63 :set count ($c
ed00: 6f 75 6e 74 20 2b 31 29 3b 0a 20 20 20 20 20 20 ount +1);.
ed10: 20 20 3a 69 66 20 28 24 63 6f 75 6e 74 20 3d 20 :if ($count =
ed20: 34 30 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 40) do={.
ed30: 20 20 20 3a 73 65 74 20 62 46 61 69 6c 20 31 3b :set bFail 1;
ed40: 0a 20 20 20 20 20 20 20 20 20 20 3a 6c 6f 67 20 . :log
ed50: 77 61 72 6e 69 6e 67 20 22 44 65 66 43 6f 6e 66 warning "DefConf
ed60: 20 67 65 6e 3a 20 55 6e 61 62 6c 65 20 74 6f 20 gen: Unable to
ed70: 66 69 6e 64 20 77 69 72 65 6c 65 73 73 20 69 6e find wireless in
ed80: 74 65 72 66 61 63 65 28 73 29 22 3b 0a 20 20 20 terface(s)";.
ed90: 20 20 20 20 20 20 20 3a 71 75 69 74 0a 20 20 20 :quit.
eda0: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 3b 0a }. };.
edb0: 20 20 20 20 7d 0a 20 20 7d 0a 7d 0a 0a 24 61 64 }. }.}..$ad
edc0: 64 44 4c 20 22 23 7c 20 57 65 6c 63 6f 6d 65 20 dDL "#| Welcome
edd0: 74 6f 20 52 6f 75 74 65 72 4f 53 21 22 0a 24 61 to RouterOS!".$a
ede0: 64 64 44 4c 20 22 23 7c 20 20 20 20 31 29 20 53 ddDL "#| 1) S
edf0: 65 74 20 61 20 73 74 72 6f 6e 67 20 72 6f 75 74 et a strong rout
ee00: 65 72 20 70 61 73 73 77 6f 72 64 20 69 6e 20 74 er password in t
ee10: 68 65 20 53 79 73 74 65 6d 20 3e 20 55 73 65 72 he System > User
ee20: 73 20 6d 65 6e 75 22 0a 24 61 64 64 44 4c 20 22 s menu".$addDL "
ee30: 23 7c 20 20 20 20 32 29 20 55 70 67 72 61 64 65 #| 2) Upgrade
ee40: 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 69 6e the software in
ee50: 20 74 68 65 20 53 79 73 74 65 6d 20 3e 20 50 61 the System > Pa
ee60: 63 6b 61 67 65 73 20 6d 65 6e 75 22 0a 24 61 64 ckages menu".$ad
ee70: 64 44 4c 20 22 23 7c 20 20 20 20 33 29 20 45 6e dDL "#| 3) En
ee80: 61 62 6c 65 20 66 69 72 65 77 61 6c 6c 20 6f 6e able firewall on
ee90: 20 75 6e 74 72 75 73 74 65 64 20 6e 65 74 77 6f untrusted netwo
eea0: 72 6b 73 22 0a 0a 24 70 72 69 6e 74 44 65 62 75 rks"..$printDebu
eeb0: 67 20 28 22 57 69 66 69 20 70 61 73 73 77 6f 72 g ("Wifi passwor
eec0: 64 20 4e 61 6d 65 3a 20 24 77 69 66 69 50 61 73 d Name: $wifiPas
eed0: 73 4e 61 6d 65 22 29 0a 23 2d 2d 2d 2d 2d 2d 2d sName").#-------
eee0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
eef0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
ef00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
ef10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
ef20: 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 20 47 65 6e 65 72 --------.# Gener
ef30: 61 74 65 20 43 6f 6e 66 69 67 20 61 6e 64 20 44 ate Config and D
ef40: 65 73 63 72 69 70 74 69 6f 6e 0a 23 2d 2d 2d 2d escription.#----
ef50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
ef60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
ef70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
ef80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
ef90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3a 69 66 20 -----------.:if
efa0: 28 24 6e 75 6d 57 6c 61 6e 73 20 3e 20 30 29 20 ($numWlans > 0)
efb0: 64 6f 3d 7b 0a 20 20 20 20 24 61 64 64 44 4c 20 do={. $addDL
efc0: 22 23 7c 20 20 20 20 34 29 20 53 65 74 20 61 20 "#| 4) Set a
efd0: 73 74 72 6f 6e 67 20 57 69 46 69 20 70 61 73 73 strong WiFi pass
efe0: 77 6f 72 64 20 69 6e 20 74 68 65 20 57 69 46 69 word in the WiFi
eff0: 20 3e 20 53 65 63 75 72 69 74 79 20 6d 65 6e 75 > Security menu
f000: 22 0a 20 20 20 20 24 61 64 64 44 4c 20 22 23 7c ". $addDL "#|
f010: 20 20 20 20 35 29 20 53 65 74 20 79 6f 75 72 20 5) Set your
f020: 63 6f 75 6e 74 72 79 20 6e 61 6d 65 20 74 6f 20 country name to
f030: 6f 62 73 65 72 76 65 20 77 69 72 65 6c 65 73 73 observe wireless
f040: 20 72 65 67 75 6c 61 74 69 6f 6e 73 22 0a 0a 20 regulations"..
f050: 20 20 20 3a 64 65 6c 61 79 20 32 73 3b 0a 0a 20 :delay 2s;..
f060: 20 20 20 3a 67 6c 6f 62 61 6c 20 67 61 69 6e 3b :global gain;
f070: 0a 20 20 20 20 3a 69 66 20 28 24 75 73 69 6e 67 . :if ($using
f080: 57 69 66 69 50 61 63 6b 20 3d 20 30 29 20 64 6f WifiPack = 0) do
f090: 3d 7b 0a 20 20 20 20 3a 65 78 65 63 75 74 65 20 ={. :execute
f0a0: 73 63 72 69 70 74 3d 22 3a 69 66 20 28 5b 2f 69 script=":if ([/i
f0b0: 6e 74 65 72 66 61 63 65 20 77 69 72 65 6c 65 73 nterface wireles
f0c0: 73 20 67 65 74 20 5b 66 69 6e 64 20 64 65 66 61 s get [find defa
f0d0: 75 6c 74 2d 6e 61 6d 65 3d 77 6c 61 6e 31 5d 20 ult-name=wlan1]
f0e0: 61 6e 74 65 6e 6e 61 2d 67 61 69 6e 5d 3d 30 29 antenna-gain]=0)
f0f0: 20 64 6f 3d 7b 3a 73 65 74 20 67 61 69 6e 20 74 do={:set gain t
f100: 72 75 65 7d 22 0a 20 20 20 20 3a 64 65 6c 61 79 rue}". :delay
f110: 20 30 2e 35 73 3b 0a 20 20 20 20 7d 0a 20 20 20 0.5s;. }.
f120: 20 3a 69 66 20 28 24 67 61 69 6e 29 20 64 6f 3d :if ($gain) do=
f130: 7b 0a 20 20 20 20 20 20 20 20 24 61 64 64 44 4c {. $addDL
f140: 20 22 23 7c 20 20 20 20 36 29 20 53 65 74 20 61 "#| 6) Set a
f150: 6e 74 65 6e 6e 61 20 67 61 69 6e 20 6f 6e 20 77 ntenna gain on w
f160: 69 72 65 6c 65 73 73 20 69 6e 74 65 72 66 61 63 ireless interfac
f170: 65 22 0a 20 20 20 20 7d 0a 20 20 20 20 3a 73 65 e". }. :se
f180: 74 20 67 61 69 6e 3b 0a 0a 20 20 20 20 5b 24 61 t gain;.. [$a
f190: 64 64 43 4c 20 22 3a 67 6c 6f 62 61 6c 20 73 73 ddCL ":global ss
f1a0: 69 64 3b 22 5d 0a 7d 0a 24 61 64 64 44 4c 20 28 id;"].}.$addDL (
f1b0: 22 23 7c 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d "#| ------------
f1c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
f1d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
f1e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
f1f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
f200: 2d 22 29 0a 0a 24 61 64 64 43 4c 20 22 3a 67 6c -")..$addCL ":gl
f210: 6f 62 61 6c 20 64 65 66 63 6f 6e 66 4d 6f 64 65 obal defconfMode
f220: 3b 22 0a 24 61 64 64 43 4c 20 28 22 3a 6c 6f 67 ;".$addCL (":log
f230: 20 69 6e 66 6f 20 5c 22 53 74 61 72 74 69 6e 67 info \"Starting
f240: 20 64 65 66 63 6f 6e 66 20 73 63 72 69 70 74 5c defconf script\
f250: 22 3b 22 29 0a 24 61 64 64 43 4c 20 28 5c 0a 22 ";").$addCL (\."
f260: 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d #---------------
f270: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
f280: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
f290: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
f2a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
f2b0: 24 4e 4c 5c 0a 23 20 41 70 70 6c 79 20 63 6f 6e $NL\.# Apply con
f2c0: 66 69 67 75 72 61 74 69 6f 6e 2e 24 4e 4c 5c 0a figuration.$NL\.
f2d0: 23 20 74 68 65 73 65 20 63 6f 6d 6d 61 6e 64 73 # these commands
f2e0: 20 61 72 65 20 65 78 65 63 75 74 65 64 20 61 66 are executed af
f2f0: 74 65 72 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e ter installation
f300: 20 6f 72 20 63 6f 6e 66 69 67 75 72 61 74 69 6f or configuratio
f310: 6e 20 72 65 73 65 74 24 4e 4c 5c 0a 23 2d 2d 2d n reset$NL\.#---
f320: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
f330: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
f340: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
f350: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
f360: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 22 29 0a 24 ------------").$
f370: 61 64 64 43 4c 20 28 22 3a 69 66 20 28 5c 24 61 addCL (":if (\$a
f380: 63 74 69 6f 6e 20 3d 20 5c 22 61 70 70 6c 79 5c ction = \"apply\
f390: 22 29 20 64 6f 3d 7b 22 29 0a 24 61 64 64 43 4c ") do={").$addCL
f3a0: 20 28 22 20 20 23 20 77 61 69 74 20 66 6f 72 20 (" # wait for
f3b0: 69 6e 74 65 72 66 61 63 65 73 22 29 0a 24 61 64 interfaces").$ad
f3c0: 64 43 4c 20 28 22 20 20 3a 6c 6f 63 61 6c 20 63 dCL (" :local c
f3d0: 6f 75 6e 74 20 30 3b 22 29 0a 24 61 64 64 43 4c ount 0;").$addCL
f3e0: 20 28 22 20 20 3a 77 68 69 6c 65 20 28 5b 2f 69 (" :while ([/i
f3f0: 6e 74 65 72 66 61 63 65 20 65 74 68 65 72 6e 65 nterface etherne
f400: 74 20 66 69 6e 64 5d 20 3d 20 5c 22 5c 22 29 20 t find] = \"\")
f410: 64 6f 3d 7b 22 29 0a 24 61 64 64 43 4c 20 28 22 do={").$addCL ("
f420: 20 20 20 20 3a 69 66 20 28 5c 24 63 6f 75 6e 74 :if (\$count
f430: 20 3d 20 33 30 29 20 64 6f 3d 7b 22 29 0a 24 61 = 30) do={").$a
f440: 64 64 43 4c 20 28 22 20 20 20 20 20 20 3a 6c 6f ddCL (" :lo
f450: 67 20 77 61 72 6e 69 6e 67 20 5c 22 44 65 66 43 g warning \"DefC
f460: 6f 6e 66 3a 20 55 6e 61 62 6c 65 20 74 6f 20 66 onf: Unable to f
f470: 69 6e 64 20 65 74 68 65 72 6e 65 74 20 69 6e 74 ind ethernet int
f480: 65 72 66 61 63 65 73 5c 22 3b 22 29 0a 24 61 64 erfaces\";").$ad
f490: 64 43 4c 20 28 22 20 20 20 20 20 20 2f 71 75 69 dCL (" /qui
f4a0: 74 3b 22 29 0a 24 61 64 64 43 4c 20 28 22 20 20 t;").$addCL ("
f4b0: 20 20 7d 22 29 0a 24 61 64 64 43 4c 20 28 22 20 }").$addCL ("
f4c0: 20 20 20 3a 64 65 6c 61 79 20 31 73 3b 20 3a 73 :delay 1s; :s
f4d0: 65 74 20 63 6f 75 6e 74 20 28 5c 24 63 6f 75 6e et count (\$coun
f4e0: 74 20 2b 31 29 3b 20 22 29 0a 24 61 64 64 43 4c t +1); ").$addCL
f4f0: 20 28 22 20 20 7d 3b 22 29 0a 0a 69 66 20 28 24 (" };")..if ($
f500: 6e 75 6d 57 69 6c 73 20 3e 20 30 29 20 64 6f 3d numWils > 0) do=
f510: 7b 0a 20 20 23 20 77 61 69 74 20 77 69 6c 73 0a {. # wait wils.
f520: 20 20 24 61 64 64 43 4c 20 28 22 20 20 3a 6c 6f $addCL (" :lo
f530: 63 61 6c 20 63 6f 75 6e 74 20 30 3b 22 29 0a 20 cal count 0;").
f540: 20 24 61 64 64 43 4c 20 28 22 20 20 3a 77 68 69 $addCL (" :whi
f550: 6c 65 20 28 5b 2f 69 6e 74 65 72 66 61 63 65 20 le ([/interface
f560: 77 36 30 67 20 70 72 69 6e 74 20 63 6f 75 6e 74 w60g print count
f570: 2d 6f 6e 6c 79 5d 20 3c 20 24 6e 75 6d 57 69 6c -only] < $numWil
f580: 73 29 20 64 6f 3d 7b 20 22 29 0a 20 20 24 61 64 s) do={ "). $ad
f590: 64 43 4c 20 28 22 20 20 20 20 3a 73 65 74 20 63 dCL (" :set c
f5a0: 6f 75 6e 74 20 28 5c 24 63 6f 75 6e 74 20 2b 31 ount (\$count +1
f5b0: 29 3b 22 29 0a 20 20 24 61 64 64 43 4c 20 28 22 );"). $addCL ("
f5c0: 20 20 20 20 3a 69 66 20 28 5c 24 63 6f 75 6e 74 :if (\$count
f5d0: 20 3d 20 34 30 29 20 64 6f 3d 7b 22 29 0a 20 20 = 40) do={").
f5e0: 24 61 64 64 43 4c 20 28 22 20 20 20 20 20 20 3a $addCL (" :
f5f0: 6c 6f 67 20 77 61 72 6e 69 6e 67 20 5c 22 44 65 log warning \"De
f600: 66 43 6f 6e 66 3a 20 55 6e 61 62 6c 65 20 74 6f fConf: Unable to
f610: 20 66 69 6e 64 20 77 36 30 67 20 69 6e 74 65 72 find w60g inter
f620: 66 61 63 65 28 73 29 5c 22 3b 20 22 29 0a 20 20 face(s)\"; ").
f630: 24 61 64 64 43 4c 20 28 22 20 20 20 20 20 20 2f $addCL (" /
f640: 69 70 20 61 64 64 72 65 73 73 20 61 64 64 20 61 ip address add a
f650: 64 64 72 65 73 73 3d 24 69 70 4e 65 74 77 6f 72 ddress=$ipNetwor
f660: 6b 2e 31 2f 32 34 20 69 6e 74 65 72 66 61 63 65 k.1/24 interface
f670: 3d 65 74 68 65 72 31 20 63 6f 6d 6d 65 6e 74 3d =ether1 comment=
f680: 5c 22 64 65 66 63 6f 6e 66 5c 22 3b 22 29 0a 20 \"defconf\";").
f690: 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 20 20 $addCL ("
f6a0: 2f 71 75 69 74 22 29 0a 20 20 24 61 64 64 43 4c /quit"). $addCL
f6b0: 20 28 22 20 20 20 20 7d 22 29 0a 20 20 24 61 64 (" }"). $ad
f6c0: 64 43 4c 20 28 22 20 20 20 20 3a 64 65 6c 61 79 dCL (" :delay
f6d0: 20 31 73 3b 22 29 0a 20 20 24 61 64 64 43 4c 20 1s;"). $addCL
f6e0: 28 22 20 20 7d 3b 22 29 0a 7d 0a 69 66 20 28 24 (" };").}.if ($
f6f0: 6e 75 6d 57 6c 61 6e 73 20 3e 20 30 20 26 26 20 numWlans > 0 &&
f700: 24 75 73 69 6e 67 57 69 66 69 50 61 63 6b 20 3d $usingWifiPack =
f710: 20 31 29 20 64 6f 3d 7b 0a 20 20 23 20 77 61 69 1) do={. # wai
f720: 74 20 77 6c 61 6e 73 0a 20 20 24 61 64 64 43 4c t wlans. $addCL
f730: 20 28 22 20 20 3a 6c 6f 63 61 6c 20 63 6f 75 6e (" :local coun
f740: 74 20 30 3b 22 29 0a 20 20 24 61 64 64 43 4c 20 t 0;"). $addCL
f750: 28 22 20 20 3a 77 68 69 6c 65 20 28 5b 2f 69 6e (" :while ([/in
f760: 74 65 72 66 61 63 65 20 77 69 66 69 20 70 72 69 terface wifi pri
f770: 6e 74 20 63 6f 75 6e 74 2d 6f 6e 6c 79 5d 20 3c nt count-only] <
f780: 20 24 6e 75 6d 57 6c 61 6e 73 29 20 64 6f 3d 7b $numWlans) do={
f790: 20 22 29 0a 20 20 24 61 64 64 43 4c 20 28 22 20 "). $addCL ("
f7a0: 20 20 20 3a 73 65 74 20 63 6f 75 6e 74 20 28 5c :set count (\
f7b0: 24 63 6f 75 6e 74 20 2b 31 29 3b 22 29 0a 20 20 $count +1);").
f7c0: 24 61 64 64 43 4c 20 28 22 20 20 20 20 3a 69 66 $addCL (" :if
f7d0: 20 28 5c 24 63 6f 75 6e 74 20 3d 20 34 30 29 20 (\$count = 40)
f7e0: 64 6f 3d 7b 22 29 0a 20 20 24 61 64 64 43 4c 20 do={"). $addCL
f7f0: 28 22 20 20 20 20 20 20 3a 6c 6f 67 20 77 61 72 (" :log war
f800: 6e 69 6e 67 20 5c 22 44 65 66 43 6f 6e 66 3a 20 ning \"DefConf:
f810: 55 6e 61 62 6c 65 20 74 6f 20 66 69 6e 64 20 77 Unable to find w
f820: 69 72 65 6c 65 73 73 20 69 6e 74 65 72 66 61 63 ireless interfac
f830: 65 28 73 29 5c 22 3b 20 22 29 0a 20 20 24 61 64 e(s)\"; "). $ad
f840: 64 43 4c 20 28 22 20 20 20 20 20 20 2f 69 70 20 dCL (" /ip
f850: 61 64 64 72 65 73 73 20 61 64 64 20 61 64 64 72 address add addr
f860: 65 73 73 3d 24 69 70 4e 65 74 77 6f 72 6b 2e 31 ess=$ipNetwork.1
f870: 2f 32 34 20 69 6e 74 65 72 66 61 63 65 3d 65 74 /24 interface=et
f880: 68 65 72 31 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 her1 comment=\"d
f890: 65 66 63 6f 6e 66 5c 22 3b 22 29 0a 20 20 24 61 efconf\";"). $a
f8a0: 64 64 43 4c 20 28 22 20 20 20 20 20 20 2f 71 75 ddCL (" /qu
f8b0: 69 74 22 29 0a 20 20 24 61 64 64 43 4c 20 28 22 it"). $addCL ("
f8c0: 20 20 20 20 7d 22 29 0a 20 20 24 61 64 64 43 4c }"). $addCL
f8d0: 20 28 22 20 20 20 20 3a 64 65 6c 61 79 20 31 73 (" :delay 1s
f8e0: 3b 22 29 0a 20 20 24 61 64 64 43 4c 20 28 22 20 ;"). $addCL ("
f8f0: 20 7d 3b 22 29 0a 7d 0a 69 66 20 28 24 6e 75 6d };").}.if ($num
f900: 57 6c 61 6e 73 20 3e 20 30 20 26 26 20 24 75 73 Wlans > 0 && $us
f910: 69 6e 67 57 69 66 69 50 61 63 6b 20 3d 20 30 29 ingWifiPack = 0)
f920: 20 64 6f 3d 7b 0a 20 20 20 20 23 20 77 61 69 74 do={. # wait
f930: 20 77 6c 61 6e 73 0a 20 20 24 61 64 64 43 4c 20 wlans. $addCL
f940: 28 22 20 20 3a 6c 6f 63 61 6c 20 63 6f 75 6e 74 (" :local count
f950: 20 30 3b 22 29 0a 20 20 24 61 64 64 43 4c 20 28 0;"). $addCL (
f960: 22 20 20 3a 77 68 69 6c 65 20 28 5b 2f 69 6e 74 " :while ([/int
f970: 65 72 66 61 63 65 20 77 69 72 65 6c 65 73 73 20 erface wireless
f980: 70 72 69 6e 74 20 63 6f 75 6e 74 2d 6f 6e 6c 79 print count-only
f990: 5d 20 3c 20 24 6e 75 6d 57 6c 61 6e 73 29 20 64 ] < $numWlans) d
f9a0: 6f 3d 7b 20 22 29 0a 20 20 24 61 64 64 43 4c 20 o={ "). $addCL
f9b0: 28 22 20 20 20 20 3a 73 65 74 20 63 6f 75 6e 74 (" :set count
f9c0: 20 28 5c 24 63 6f 75 6e 74 20 2b 31 29 3b 22 29 (\$count +1);")
f9d0: 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 . $addCL ("
f9e0: 3a 69 66 20 28 5c 24 63 6f 75 6e 74 20 3d 20 34 :if (\$count = 4
f9f0: 30 29 20 64 6f 3d 7b 22 29 0a 20 20 24 61 64 64 0) do={"). $add
fa00: 43 4c 20 28 22 20 20 20 20 20 20 3a 6c 6f 67 20 CL (" :log
fa10: 77 61 72 6e 69 6e 67 20 5c 22 44 65 66 43 6f 6e warning \"DefCon
fa20: 66 3a 20 55 6e 61 62 6c 65 20 74 6f 20 66 69 6e f: Unable to fin
fa30: 64 20 77 69 72 65 6c 65 73 73 20 69 6e 74 65 72 d wireless inter
fa40: 66 61 63 65 28 73 29 5c 22 3b 20 22 29 0a 20 20 face(s)\"; ").
fa50: 24 61 64 64 43 4c 20 28 22 20 20 20 20 20 20 2f $addCL (" /
fa60: 69 70 20 61 64 64 72 65 73 73 20 61 64 64 20 61 ip address add a
fa70: 64 64 72 65 73 73 3d 24 69 70 4e 65 74 77 6f 72 ddress=$ipNetwor
fa80: 6b 2e 31 2f 32 34 20 69 6e 74 65 72 66 61 63 65 k.1/24 interface
fa90: 3d 65 74 68 65 72 31 20 63 6f 6d 6d 65 6e 74 3d =ether1 comment=
faa0: 5c 22 64 65 66 63 6f 6e 66 5c 22 3b 22 29 0a 20 \"defconf\";").
fab0: 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 20 20 $addCL ("
fac0: 2f 71 75 69 74 22 29 0a 20 20 24 61 64 64 43 4c /quit"). $addCL
fad0: 20 28 22 20 20 20 20 7d 22 29 0a 20 20 24 61 64 (" }"). $ad
fae0: 64 43 4c 20 28 22 20 20 20 20 3a 64 65 6c 61 79 dCL (" :delay
faf0: 20 31 73 3b 22 29 0a 20 20 24 61 64 64 43 4c 20 1s;"). $addCL
fb00: 28 22 20 20 7d 3b 22 29 0a 7d 0a 69 66 20 28 24 (" };").}.if ($
fb10: 62 6f 61 72 64 2d 3e 22 69 73 4c 74 65 22 20 3d board->"isLte" =
fb20: 20 31 29 20 64 6f 3d 7b 0a 20 20 23 20 77 61 69 1) do={. # wai
fb30: 74 20 6c 74 65 0a 20 20 24 61 64 64 43 4c 20 28 t lte. $addCL (
fb40: 22 20 20 3a 6c 6f 63 61 6c 20 63 6f 75 6e 74 20 " :local count
fb50: 30 3b 22 29 0a 20 20 24 61 64 64 43 4c 20 28 22 0;"). $addCL ("
fb60: 20 20 3a 77 68 69 6c 65 20 28 5b 2f 69 6e 74 65 :while ([/inte
fb70: 72 66 61 63 65 20 6c 74 65 20 66 69 6e 64 5d 20 rface lte find]
fb80: 3d 20 5c 22 5c 22 29 20 64 6f 3d 7b 20 22 29 0a = \"\") do={ ").
fb90: 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 3a $addCL (" :
fba0: 73 65 74 20 63 6f 75 6e 74 20 28 5c 24 63 6f 75 set count (\$cou
fbb0: 6e 74 20 2b 31 29 3b 22 29 0a 20 20 24 61 64 64 nt +1);"). $add
fbc0: 43 4c 20 28 22 20 20 20 20 3a 69 66 20 28 5c 24 CL (" :if (\$
fbd0: 63 6f 75 6e 74 20 3d 20 31 31 35 29 20 64 6f 3d count = 115) do=
fbe0: 7b 22 29 0a 20 20 24 61 64 64 43 4c 20 28 22 20 {"). $addCL ("
fbf0: 20 20 20 20 20 3a 6c 6f 67 20 77 61 72 6e 69 6e :log warnin
fc00: 67 20 5c 22 44 65 66 43 6f 6e 66 3a 20 55 6e 61 g \"DefConf: Una
fc10: 62 6c 65 20 74 6f 20 66 69 6e 64 20 4c 54 45 20 ble to find LTE
fc20: 69 6e 74 65 72 66 61 63 65 28 73 29 5c 22 3b 20 interface(s)\";
fc30: 22 29 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 "). $addCL ("
fc40: 20 20 20 20 2f 69 70 20 61 64 64 72 65 73 73 20 /ip address
fc50: 61 64 64 20 61 64 64 72 65 73 73 3d 24 69 70 4e add address=$ipN
fc60: 65 74 77 6f 72 6b 2e 31 2f 32 34 20 69 6e 74 65 etwork.1/24 inte
fc70: 72 66 61 63 65 3d 65 74 68 65 72 31 20 63 6f 6d rface=ether1 com
fc80: 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 5c 22 ment=\"defconf\"
fc90: 3b 22 29 0a 20 20 24 61 64 64 43 4c 20 28 22 20 ;"). $addCL ("
fca0: 20 20 20 20 20 2f 71 75 69 74 22 29 0a 20 20 24 /quit"). $
fcb0: 61 64 64 43 4c 20 28 22 20 20 20 20 7d 22 29 0a addCL (" }").
fcc0: 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 3a $addCL (" :
fcd0: 64 65 6c 61 79 20 31 73 3b 22 29 0a 20 20 24 61 delay 1s;"). $a
fce0: 64 64 43 4c 20 28 22 20 20 7d 3b 22 29 0a 7d 0a ddCL (" };").}.
fcf0: 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .#--------------
fd00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
fd10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
fd20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
fd30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
fd40: 2d 0a 23 20 6d 61 6b 65 20 73 75 72 65 20 74 68 -.# make sure th
fd50: 61 74 20 65 74 68 65 72 6e 65 74 20 69 6e 74 65 at ethernet inte
fd60: 72 66 61 63 65 73 20 61 72 65 20 6c 6f 61 64 65 rfaces are loade
fd70: 64 0a 23 20 28 73 6f 6d 65 74 69 6d 65 73 20 6f d.# (sometimes o
fd80: 6e 20 6d 41 50 20 74 68 65 79 20 61 72 65 20 73 n mAP they are s
fd90: 74 69 6c 6c 20 6e 6f 74 20 6c 6f 61 64 65 64 20 till not loaded
fda0: 61 74 20 74 68 69 73 20 70 6f 69 6e 74 29 20 69 at this point) i
fdb0: 66 20 65 78 74 65 72 6e 61 6c 20 55 53 42 0a 23 f external USB.#
fdc0: 20 45 74 68 65 72 6e 65 74 20 61 64 61 70 74 65 Ethernet adapte
fdd0: 72 20 69 73 20 70 6c 75 67 67 65 64 20 69 6e 0a r is plugged in.
fde0: 3a 6c 6f 63 61 6c 20 63 6f 75 6e 74 20 30 3b 0a :local count 0;.
fdf0: 3a 77 68 69 6c 65 20 28 5b 2f 69 6e 74 65 72 66 :while ([/interf
fe00: 61 63 65 20 65 74 68 65 72 6e 65 74 20 66 69 6e ace ethernet fin
fe10: 64 5d 20 3d 20 22 22 29 20 64 6f 3d 7b 0a 20 20 d] = "") do={.
fe20: 3a 69 66 20 28 24 63 6f 75 6e 74 20 3d 20 33 30 :if ($count = 30
fe30: 29 20 64 6f 3d 7b 0a 20 20 20 20 3a 6c 6f 67 20 ) do={. :log
fe40: 65 72 72 6f 72 20 22 44 65 66 43 6f 6e 66 20 47 error "DefConf G
fe50: 65 6e 3a 20 55 6e 61 62 6c 65 20 74 6f 20 66 69 en: Unable to fi
fe60: 6e 64 20 65 74 68 65 72 6e 65 74 20 69 6e 74 65 nd ethernet inte
fe70: 72 66 61 63 65 73 20 28 74 69 6d 65 6f 75 74 20 rfaces (timeout
fe80: 33 30 73 65 63 29 22 3b 0a 20 20 20 20 2f 71 75 30sec)";. /qu
fe90: 69 74 3b 0a 20 20 7d 0a 20 20 3a 64 65 6c 61 79 it;. }. :delay
fea0: 20 31 73 3b 0a 20 20 3a 73 65 74 20 63 6f 75 6e 1s;. :set coun
feb0: 74 20 28 24 63 6f 75 6e 74 20 2b 31 29 3b 0a 7d t ($count +1);.}
fec0: 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..#-------------
fed0: 61 70 70 6c 79 20 6f 6e 6c 79 20 49 50 20 6f 6e apply only IP on
fee0: 20 65 74 68 65 72 31 2d 2d 2d 2d 2d 2d 2d 2d 2d ether1---------
fef0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
ff00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
ff10: 2d 2d 0a 3a 69 66 20 28 24 63 6f 6e 66 69 67 4d --.:if ($configM
ff20: 6f 64 65 20 3d 20 22 22 29 20 64 6f 3d 7b 0a 20 ode = "") do={.
ff30: 20 24 61 64 64 44 4c 20 28 22 23 7c 20 4c 41 4e $addDL ("#| LAN
ff40: 3a 22 29 0a 20 20 3a 69 66 20 28 5b 3a 6c 65 6e :"). :if ([:len
ff50: 20 5b 2f 69 6e 74 65 72 66 61 63 65 20 65 74 68 [/interface eth
ff60: 65 72 6e 65 74 20 66 69 6e 64 20 77 68 65 72 65 ernet find where
ff70: 20 64 65 66 61 75 6c 74 2d 6e 61 6d 65 7e 22 63 default-name~"c
ff80: 6f 6d 62 6f 22 5d 5d 20 3d 20 31 29 20 64 6f 3d ombo"]] = 1) do=
ff90: 7b 0a 20 20 20 20 24 61 64 64 44 4c 20 28 22 23 {. $addDL ("#
ffa0: 7c 20 20 20 20 20 49 50 20 6f 6e 20 63 6f 6d 62 | IP on comb
ffb0: 6f 31 3a 20 20 20 20 24 69 70 4e 65 74 77 6f 72 o1: $ipNetwor
ffc0: 6b 2e 31 2f 32 34 3b 22 29 0a 20 20 20 20 24 61 k.1/24;"). $a
ffd0: 64 64 43 4c 20 28 22 2f 69 70 20 61 64 64 72 65 ddCL ("/ip addre
ffe0: 73 73 20 61 64 64 20 61 64 64 72 65 73 73 3d 24 ss add address=$
fff0: 69 70 4e 65 74 77 6f 72 6b 2e 31 2f 32 34 20 69 ipNetwork.1/24 i
10000 6e 74 65 72 66 61 63 65 3d 63 6f 6d 62 6f 31 20 nterface=combo1
10010 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e comment=\"defcon
10020 66 5c 22 3b 22 29 0a 20 20 7d 20 65 6c 73 65 3d f\";"). } else=
10030 7b 0a 20 20 20 20 69 66 20 28 24 62 6f 61 72 64 {. if ($board
10040 2d 3e 22 6e 75 6d 47 69 67 22 20 3d 20 30 20 26 ->"numGig" = 0 &
10050 26 20 24 62 6f 61 72 64 2d 3e 22 6e 75 6d 53 66 & $board->"numSf
10060 70 22 20 3e 20 30 29 20 64 6f 3d 7b 0a 20 20 20 p" > 0) do={.
10070 20 20 20 24 61 64 64 44 4c 20 28 22 23 7c 20 20 $addDL ("#|
10080 20 20 20 49 50 20 6f 6e 20 73 66 70 31 3a 20 20 IP on sfp1:
10090 20 20 24 69 70 4e 65 74 77 6f 72 6b 2e 31 2f 32 $ipNetwork.1/2
100a0 34 3b 22 29 0a 20 20 20 20 20 20 24 61 64 64 43 4;"). $addC
100b0 4c 20 28 22 2f 69 70 20 61 64 64 72 65 73 73 20 L ("/ip address
100c0 61 64 64 20 61 64 64 72 65 73 73 3d 24 69 70 4e add address=$ipN
100d0 65 74 77 6f 72 6b 2e 31 2f 32 34 20 69 6e 74 65 etwork.1/24 inte
100e0 72 66 61 63 65 3d 73 66 70 31 20 63 6f 6d 6d 65 rface=sfp1 comme
100f0 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 5c 22 3b 22 nt=\"defconf\";"
10100 29 0a 20 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 ). } else={.
10110 20 20 20 20 20 69 66 20 28 24 6c 61 6e 50 6f 72 if ($lanPor
10120 74 20 21 3d 20 22 62 72 69 64 67 65 22 29 20 64 t != "bridge") d
10130 6f 3d 7b 0a 20 20 20 20 20 20 20 20 24 61 64 64 o={. $add
10140 44 4c 20 28 22 23 7c 20 20 20 20 20 49 50 20 6f DL ("#| IP o
10150 6e 20 24 6c 61 6e 50 6f 72 74 3a 20 20 20 20 24 n $lanPort: $
10160 69 70 4e 65 74 77 6f 72 6b 2e 31 2f 32 34 3b 22 ipNetwork.1/24;"
10170 29 0a 20 20 20 20 20 20 20 20 24 61 64 64 43 4c ). $addCL
10180 20 28 22 2f 69 70 20 61 64 64 72 65 73 73 20 61 ("/ip address a
10190 64 64 20 61 64 64 72 65 73 73 3d 24 69 70 4e 65 dd address=$ipNe
101a0 74 77 6f 72 6b 2e 31 2f 32 34 20 69 6e 74 65 72 twork.1/24 inter
101b0 66 61 63 65 3d 24 6c 61 6e 50 6f 72 74 20 63 6f face=$lanPort co
101c0 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 5c mment=\"defconf\
101d0 22 3b 22 29 0a 20 20 20 20 20 20 7d 20 65 6c 73 ";"). } els
101e0 65 3d 7b 0a 20 20 20 20 20 20 20 20 20 20 24 61 e={. $a
101f0 64 64 44 4c 20 28 22 23 7c 20 20 20 20 20 49 50 ddDL ("#| IP
10200 20 6f 6e 20 65 74 68 65 72 31 3a 20 20 20 20 24 on ether1: $
10210 69 70 4e 65 74 77 6f 72 6b 2e 31 2f 32 34 3b 22 ipNetwork.1/24;"
10220 29 0a 20 20 20 20 20 20 20 20 20 20 24 61 64 64 ). $add
10230 43 4c 20 28 22 2f 69 70 20 61 64 64 72 65 73 73 CL ("/ip address
10240 20 61 64 64 20 61 64 64 72 65 73 73 3d 24 69 70 add address=$ip
10250 4e 65 74 77 6f 72 6b 2e 31 2f 32 34 20 69 6e 74 Network.1/24 int
10260 65 72 66 61 63 65 3d 65 74 68 65 72 31 20 63 6f erface=ether1 co
10270 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 5c mment=\"defconf\
10280 22 3b 22 29 0a 20 20 20 20 20 20 7d 0a 20 20 20 ";"). }.
10290 20 7d 0a 20 20 7d 0a 20 20 3a 69 66 20 28 24 6e }. }. :if ($n
102a0 65 65 64 44 68 63 70 43 6c 69 65 6e 74 20 3d 20 eedDhcpClient =
102b0 31 29 20 64 6f 3d 7b 0a 20 20 20 20 5b 24 73 65 1) do={. [$se
102c0 74 4c 61 6e 20 6c 61 6e 50 6f 72 74 3d 24 6c 61 tLan lanPort=$la
102d0 6e 50 6f 72 74 20 64 68 63 70 4d 6f 64 65 3d 32 nPort dhcpMode=2
102e0 20 75 73 65 44 65 74 4e 65 74 3d 24 75 73 65 44 useDetNet=$useD
102f0 65 74 4e 65 74 20 69 70 4e 65 74 77 6f 72 6b 3d etNet ipNetwork=
10300 24 69 70 4e 65 74 77 6f 72 6b 5d 0a 20 20 7d 0a $ipNetwork]. }.
10310 20 20 3a 69 66 20 28 24 6e 65 65 64 41 64 6d 69 :if ($needAdmi
10320 6e 50 61 73 73 20 3d 20 31 29 20 64 6f 3d 7b 0a nPass = 1) do={.
10330 20 20 20 20 5b 24 73 65 74 41 64 6d 69 6e 50 61 [$setAdminPa
10340 73 73 5d 0a 20 20 7d 0a 7d 0a 0a 23 2d 2d 2d 2d ss]. }.}..#----
10350 2d 2d 2d 2d 2d 2d 2d 2d 2d 4c 54 45 20 43 50 45 ---------LTE CPE
10360 20 77 69 74 68 20 77 69 72 65 6c 65 73 73 20 41 with wireless A
10370 50 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d P --------------
10380 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
10390 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3a 69 66 20 -----------.:if
103a0 28 24 63 6f 6e 66 69 67 4d 6f 64 65 20 3d 20 22 ($configMode = "
103b0 6c 74 65 5f 63 70 65 5f 61 70 5f 72 6f 75 74 65 lte_cpe_ap_route
103c0 72 22 29 20 64 6f 3d 7b 0a 20 20 24 61 64 64 44 r") do={. $addD
103d0 4c 20 28 5c 0a 20 20 22 23 7c 20 4c 54 45 20 43 L (\. "#| LTE C
103e0 50 45 20 52 6f 75 74 65 72 20 77 69 74 68 20 77 PE Router with w
103f0 69 72 65 6c 65 73 73 20 41 50 3a 24 4e 4c 5c 0a ireless AP:$NL\.
10400 20 20 20 23 7c 20 20 2a 20 6c 74 65 20 69 6e 74 #| * lte int
10410 65 72 66 61 63 65 20 63 6f 6e 6e 65 63 74 65 64 erface connected
10420 20 74 6f 20 70 72 6f 76 69 64 65 72 73 20 6e 65 to providers ne
10430 74 77 6f 72 6b 20 28 57 41 4e 20 70 6f 72 74 29 twork (WAN port)
10440 3b 24 4e 4c 5c 0a 20 20 20 23 7c 20 20 2a 20 57 ;$NL\. #| * W
10450 41 4e 20 70 6f 72 74 20 69 73 20 70 72 6f 74 65 AN port is prote
10460 63 74 65 64 20 62 79 20 66 69 72 65 77 61 6c 6c cted by firewall
10470 20 61 6e 64 20 65 6e 61 62 6c 65 64 20 44 48 43 and enabled DHC
10480 50 20 63 6c 69 65 6e 74 22 29 0a 20 20 3a 73 65 P client"). :se
10490 74 20 66 72 65 71 75 65 6e 63 79 20 22 61 75 74 t frequency "aut
104a0 6f 22 3b 0a 20 20 3a 73 65 74 20 64 69 73 74 61 o";. :set dista
104b0 6e 63 65 20 22 69 6e 64 6f 6f 72 73 22 3b 0a 20 nce "indoors";.
104c0 20 3a 73 65 74 20 77 50 72 6f 74 6f 20 22 38 30 :set wProto "80
104d0 32 2e 31 31 22 3b 0a 0a 20 20 23 20 74 68 69 73 2.11";.. # this
104e0 20 73 68 6f 75 6c 64 20 62 65 20 62 65 66 6f 72 should be befor
104f0 65 20 4c 41 4e 20 62 72 69 64 67 65 20 6f 74 68 e LAN bridge oth
10500 65 72 77 69 73 65 20 77 6c 61 6e 33 20 6d 69 67 erwise wlan3 mig
10510 68 74 20 6e 6f 74 20 62 65 20 61 64 64 65 64 20 ht not be added
10520 61 73 20 62 72 69 64 67 65 20 70 6f 72 74 20 28 as bridge port (
10530 64 72 69 76 65 72 20 6e 6f 74 20 6c 6f 61 64 65 driver not loade
10540 64 20 79 65 74 29 0a 20 20 3a 69 66 20 28 24 6e d yet). :if ($n
10550 65 65 64 57 70 73 53 79 6e 63 20 3d 20 31 20 26 eedWpsSync = 1 &
10560 26 20 24 75 73 69 6e 67 57 69 66 69 50 61 63 6b & $usingWifiPack
10570 20 3d 20 30 29 20 64 6f 3d 7b 0a 20 20 20 20 5b = 0) do={. [
10580 24 73 65 74 57 70 73 53 79 6e 63 20 70 61 73 73 $setWpsSync pass
10590 3d 24 77 70 73 50 61 73 73 4e 61 6d 65 5d 0a 20 =$wpsPassName].
105a0 20 7d 0a 0a 20 20 5b 24 73 65 74 49 6e 74 65 72 }.. [$setInter
105b0 66 61 63 65 4c 69 73 74 73 5d 0a 20 20 5b 24 73 faceLists]. [$s
105c0 65 74 4c 61 6e 20 6c 61 6e 50 6f 72 74 3d 24 6c etLan lanPort=$l
105d0 61 6e 50 6f 72 74 20 64 68 63 70 4d 6f 64 65 3d anPort dhcpMode=
105e0 31 20 77 61 6e 50 6f 72 74 73 3d 24 77 61 6e 50 1 wanPorts=$wanP
105f0 6f 72 74 73 20 75 73 65 44 65 74 4e 65 74 3d 24 orts useDetNet=$
10600 75 73 65 44 65 74 4e 65 74 20 68 61 73 43 61 70 useDetNet hasCap
10610 73 4d 61 6e 3d 24 61 64 64 43 61 70 73 4d 61 6e sMan=$addCapsMan
10620 20 69 70 4e 65 74 77 6f 72 6b 3d 24 69 70 4e 65 ipNetwork=$ipNe
10630 74 77 6f 72 6b 5d 0a 20 20 5b 24 61 6c 6c 6f 77 twork]. [$allow
10640 44 6e 73 20 69 70 4e 65 74 77 6f 72 6b 3d 24 69 Dns ipNetwork=$i
10650 70 4e 65 74 77 6f 72 6b 5d 0a 0a 20 20 3a 69 66 pNetwork].. :if
10660 20 28 24 61 64 64 43 61 70 73 4d 61 6e 20 3d 20 ($addCapsMan =
10670 31 20 26 26 20 24 75 73 69 6e 67 57 69 66 69 50 1 && $usingWifiP
10680 61 63 6b 20 3d 20 30 29 20 64 6f 3d 7b 0a 20 20 ack = 0) do={.
10690 20 20 5b 24 73 65 74 43 61 70 73 4d 61 6e 20 64 [$setCapsMan d
106a0 69 73 74 61 6e 63 65 3d 24 64 69 73 74 61 6e 63 istance=$distanc
106b0 65 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 3d 24 e installation=$
106c0 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6c 61 6e installation lan
106d0 50 6f 72 74 3d 24 6c 61 6e 50 6f 72 74 20 73 73 Port=$lanPort ss
106e0 69 64 50 72 65 66 69 78 3d 24 73 73 69 64 50 72 idPrefix=$ssidPr
106f0 65 66 69 78 20 20 70 61 73 73 3d 24 77 69 66 69 efix pass=$wifi
10700 50 61 73 73 4e 61 6d 65 5d 0a 20 20 20 20 3a 69 PassName]. :i
10710 66 20 28 24 6e 75 6d 57 6c 61 6e 73 20 3e 20 30 f ($numWlans > 0
10720 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 24 61 64 ) do={. $ad
10730 64 44 4c 20 28 22 23 7c 20 57 69 72 65 6c 65 73 dDL ("#| Wireles
10740 73 3a 20 43 41 50 20 65 6e 61 62 6c 65 64 20 6f s: CAP enabled o
10750 6e 20 77 69 72 65 6c 65 73 73 20 69 6e 74 65 72 n wireless inter
10760 66 61 63 65 73 22 29 0a 20 20 20 20 20 20 3a 69 faces"). :i
10770 66 20 28 24 6e 75 6d 57 6c 61 6e 73 20 3e 20 31 f ($numWlans > 1
10780 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 24 ) do={. $
10790 61 64 64 43 4c 20 28 22 20 20 2f 69 6e 74 65 72 addCL (" /inter
107a0 66 61 63 65 20 77 69 72 65 6c 65 73 73 20 63 61 face wireless ca
107b0 70 20 73 65 74 20 65 6e 61 62 6c 65 64 3d 79 65 p set enabled=ye
107c0 73 20 69 6e 74 65 72 66 61 63 65 73 3d 77 6c 61 s interfaces=wla
107d0 6e 31 2c 77 6c 61 6e 32 20 63 61 70 73 2d 6d 61 n1,wlan2 caps-ma
107e0 6e 2d 61 64 64 72 65 73 73 65 73 3d 31 32 37 2e n-addresses=127.
107f0 30 2e 30 2e 31 20 62 72 69 64 67 65 3d 24 6c 61 0.0.1 bridge=$la
10800 6e 50 6f 72 74 22 29 0a 20 20 20 20 20 20 7d 20 nPort"). }
10810 65 6c 73 65 3d 7b 0a 20 20 20 20 20 20 20 20 24 else={. $
10820 61 64 64 43 4c 20 28 22 20 20 2f 69 6e 74 65 72 addCL (" /inter
10830 66 61 63 65 20 77 69 72 65 6c 65 73 73 20 63 61 face wireless ca
10840 70 20 73 65 74 20 65 6e 61 62 6c 65 64 3d 79 65 p set enabled=ye
10850 73 20 69 6e 74 65 72 66 61 63 65 73 3d 77 6c 61 s interfaces=wla
10860 6e 31 20 63 61 70 73 2d 6d 61 6e 2d 61 64 64 72 n1 caps-man-addr
10870 65 73 73 65 73 3d 31 32 37 2e 30 2e 30 2e 31 20 esses=127.0.0.1
10880 62 72 69 64 67 65 3d 24 6c 61 6e 50 6f 72 74 22 bridge=$lanPort"
10890 29 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a ). }. }.
108a0 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 3a } else={. :
108b0 69 66 20 28 24 6e 75 6d 57 6c 61 6e 73 20 3e 20 if ($numWlans >
108c0 30 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 3a 69 0) do={. :i
108d0 66 20 28 24 6e 75 6d 57 6c 61 6e 73 20 3e 20 31 f ($numWlans > 1
108e0 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 5b ) do={. [
108f0 24 73 65 74 57 6c 61 6e 20 69 66 63 3d 28 22 24 $setWlan ifc=("$
10900 22 77 6c 61 6e 50 72 65 66 69 78 22 31 22 29 20 "wlanPrefix"1")
10910 6d 6f 64 65 3d 24 77 6c 61 6e 4d 6f 64 65 20 66 mode=$wlanMode f
10920 72 65 71 75 65 6e 63 79 3d 24 66 72 65 71 75 65 requency=$freque
10930 6e 63 79 20 77 50 72 6f 74 6f 3d 24 77 50 72 6f ncy wProto=$wPro
10940 74 6f 20 64 69 73 74 61 6e 63 65 3d 24 64 69 73 to distance=$dis
10950 74 61 6e 63 65 20 69 6e 73 74 61 6c 6c 61 74 69 tance installati
10960 6f 6e 3d 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e on=$installation
10970 20 70 61 73 73 3d 24 77 69 66 69 50 61 73 73 4e pass=$wifiPassN
10980 61 6d 65 5d 0a 20 20 20 20 20 20 20 20 5b 24 73 ame]. [$s
10990 65 74 57 6c 61 6e 20 69 66 63 3d 28 22 24 22 77 etWlan ifc=("$"w
109a0 6c 61 6e 50 72 65 66 69 78 22 32 22 29 20 6d 6f lanPrefix"2") mo
109b0 64 65 3d 24 77 6c 61 6e 4d 6f 64 65 20 66 72 65 de=$wlanMode fre
109c0 71 75 65 6e 63 79 3d 24 66 72 65 71 75 65 6e 63 quency=$frequenc
109d0 79 20 77 50 72 6f 74 6f 3d 24 77 50 72 6f 74 6f y wProto=$wProto
109e0 20 64 69 73 74 61 6e 63 65 3d 24 64 69 73 74 61 distance=$dista
109f0 6e 63 65 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e nce installation
10a00 3d 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 70 =$installation p
10a10 61 73 73 3d 24 77 69 66 69 50 61 73 73 4e 61 6d ass=$wifiPassNam
10a20 65 5d 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 3d e]. } else=
10a30 7b 0a 20 20 20 20 20 20 20 20 5b 24 73 65 74 57 {. [$setW
10a40 6c 61 6e 20 69 66 63 3d 28 22 24 22 77 6c 61 6e lan ifc=("$"wlan
10a50 50 72 65 66 69 78 22 31 22 29 20 6d 6f 64 65 3d Prefix"1") mode=
10a60 24 77 6c 61 6e 4d 6f 64 65 20 66 72 65 71 75 65 $wlanMode freque
10a70 6e 63 79 3d 24 66 72 65 71 75 65 6e 63 79 20 77 ncy=$frequency w
10a80 50 72 6f 74 6f 3d 24 77 50 72 6f 74 6f 20 64 69 Proto=$wProto di
10a90 73 74 61 6e 63 65 3d 24 64 69 73 74 61 6e 63 65 stance=$distance
10aa0 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 3d 24 69 installation=$i
10ab0 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 70 61 73 73 nstallation pass
10ac0 3d 24 77 69 66 69 50 61 73 73 4e 61 6d 65 5d 0a =$wifiPassName].
10ad0 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 }. }.
10ae0 7d 0a 20 20 5b 24 73 65 74 57 61 6e 50 6f 72 74 }. [$setWanPort
10af0 20 77 61 6e 50 6f 72 74 73 3d 24 77 61 6e 50 6f wanPorts=$wanPo
10b00 72 74 73 20 69 73 4c 74 65 3d 28 24 62 6f 61 72 rts isLte=($boar
10b10 64 2d 3e 22 69 73 4c 74 65 22 29 20 6c 61 6e 50 d->"isLte") lanP
10b20 6f 72 74 3d 24 6c 61 6e 50 6f 72 74 20 75 73 65 ort=$lanPort use
10b30 44 65 74 4e 65 74 3d 24 75 73 65 44 65 74 4e 65 DetNet=$useDetNe
10b40 74 5d 0a 0a 20 20 3a 69 66 20 28 24 69 73 50 43 t].. :if ($isPC
10b50 49 6e 65 65 64 65 64 20 3d 20 31 29 20 64 6f 3d Ineeded = 1) do=
10b60 7b 0a 20 20 20 20 5b 24 73 65 74 50 43 49 54 79 {. [$setPCITy
10b70 70 65 5d 0a 20 20 7d 0a 0a 20 20 3a 69 66 20 28 pe]. }.. :if (
10b80 24 6e 65 65 64 41 64 6d 69 6e 50 61 73 73 20 3d $needAdminPass =
10b90 20 31 29 20 64 6f 3d 7b 0a 20 20 20 20 5b 24 73 1) do={. [$s
10ba0 65 74 41 64 6d 69 6e 50 61 73 73 5d 0a 20 20 7d etAdminPass]. }
10bb0 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .}..#-----------
10bc0 2d 2d 43 50 45 20 6d 6f 64 65 20 74 77 6f 20 70 --CPE mode two p
10bd0 6f 73 73 69 62 69 6c 69 74 69 65 73 20 77 6c 61 ossibilities wla
10be0 6e 20 43 50 45 20 61 6e 64 20 4c 54 45 20 43 50 n CPE and LTE CP
10bf0 45 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d E---------------
10c00 2d 2d 2d 2d 0a 3a 69 66 20 28 24 63 6f 6e 66 69 ----.:if ($confi
10c10 67 4d 6f 64 65 20 3d 20 22 63 70 65 5f 72 6f 75 gMode = "cpe_rou
10c20 74 65 72 22 29 20 64 6f 3d 7b 0a 20 20 24 61 64 ter") do={. $ad
10c30 64 44 4c 20 28 5c 0a 20 20 22 23 7c 20 43 50 45 dDL (\. "#| CPE
10c40 20 52 6f 75 74 65 72 4d 6f 64 65 3a 24 4e 4c 5c RouterMode:$NL\
10c50 0a 20 20 20 23 7c 20 20 2a 20 77 69 72 65 6c 65 . #| * wirele
10c60 73 73 20 69 6e 74 65 72 66 61 63 65 20 63 6f 6e ss interface con
10c70 6e 65 63 74 65 64 20 74 6f 20 70 72 6f 76 69 64 nected to provid
10c80 65 72 73 20 6e 65 74 77 6f 72 6b 20 28 57 41 4e ers network (WAN
10c90 20 70 6f 72 74 29 3b 24 4e 4c 5c 0a 20 20 20 23 port);$NL\. #
10ca0 7c 20 20 2a 20 57 41 4e 20 70 6f 72 74 20 69 73 | * WAN port is
10cb0 20 70 72 6f 74 65 63 74 65 64 20 62 79 20 66 69 protected by fi
10cc0 72 65 77 61 6c 6c 20 61 6e 64 20 65 6e 61 62 6c rewall and enabl
10cd0 65 64 20 44 48 43 50 20 63 6c 69 65 6e 74 22 29 ed DHCP client")
10ce0 0a 0a 20 20 3a 69 66 20 28 24 62 6f 61 72 64 2d .. :if ($board-
10cf0 3e 22 69 73 4c 74 65 22 20 21 3d 20 31 29 20 64 >"isLte" != 1) d
10d00 6f 3d 7b 0a 20 20 20 20 3a 69 66 20 28 24 6e 75 o={. :if ($nu
10d10 6d 57 6c 61 6e 73 20 3e 20 31 29 20 64 6f 3d 7b mWlans > 1) do={
10d20 0a 20 20 20 20 20 20 5b 24 73 65 74 57 6c 61 6e . [$setWlan
10d30 20 69 66 63 3d 28 22 24 22 77 6c 61 6e 50 72 65 ifc=("$"wlanPre
10d40 66 69 78 22 31 22 29 20 6d 6f 64 65 3d 24 6d 6f fix"1") mode=$mo
10d50 64 65 31 20 66 72 65 71 75 65 6e 63 79 3d 24 66 de1 frequency=$f
10d60 72 65 71 75 65 6e 63 79 20 77 50 72 6f 74 6f 3d requency wProto=
10d70 24 77 50 72 6f 74 6f 20 64 69 73 74 61 6e 63 65 $wProto distance
10d80 3d 24 64 69 73 74 61 6e 63 65 20 69 6e 73 74 61 =$distance insta
10d90 6c 6c 61 74 69 6f 6e 3d 24 69 6e 73 74 61 6c 6c llation=$install
10da0 61 74 69 6f 6e 5d 0a 20 20 20 20 20 20 5b 24 73 ation]. [$s
10db0 65 74 57 6c 61 6e 20 69 66 63 3d 28 22 24 22 77 etWlan ifc=("$"w
10dc0 6c 61 6e 50 72 65 66 69 78 22 32 22 29 20 6d 6f lanPrefix"2") mo
10dd0 64 65 3d 24 6d 6f 64 65 32 20 66 72 65 71 75 65 de=$mode2 freque
10de0 6e 63 79 3d 24 66 72 65 71 75 65 6e 63 79 20 77 ncy=$frequency w
10df0 50 72 6f 74 6f 3d 24 77 50 72 6f 74 6f 20 64 69 Proto=$wProto di
10e00 73 74 61 6e 63 65 3d 24 64 69 73 74 61 6e 63 65 stance=$distance
10e10 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 3d 24 69 installation=$i
10e20 6e 73 74 61 6c 6c 61 74 69 6f 6e 5d 0a 20 20 20 nstallation].
10e30 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 20 20 } else={.
10e40 5b 24 73 65 74 57 6c 61 6e 20 69 66 63 3d 28 22 [$setWlan ifc=("
10e50 24 22 77 6c 61 6e 50 72 65 66 69 78 22 31 22 29 $"wlanPrefix"1")
10e60 20 6d 6f 64 65 3d 22 73 74 61 74 69 6f 6e 22 20 mode="station"
10e70 66 72 65 71 75 65 6e 63 79 3d 24 66 72 65 71 75 frequency=$frequ
10e80 65 6e 63 79 20 77 50 72 6f 74 6f 3d 24 77 50 72 ency wProto=$wPr
10e90 6f 74 6f 20 64 69 73 74 61 6e 63 65 3d 24 64 69 oto distance=$di
10ea0 73 74 61 6e 63 65 20 69 6e 73 74 61 6c 6c 61 74 stance installat
10eb0 69 6f 6e 3d 24 69 6e 73 74 61 6c 6c 61 74 69 6f ion=$installatio
10ec0 6e 5d 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 n]. }. }..
10ed0 5b 24 73 65 74 49 6e 74 65 72 66 61 63 65 4c 69 [$setInterfaceLi
10ee0 73 74 73 5d 0a 20 20 5b 24 73 65 74 4c 61 6e 20 sts]. [$setLan
10ef0 6c 61 6e 50 6f 72 74 3d 24 6c 61 6e 50 6f 72 74 lanPort=$lanPort
10f00 20 64 68 63 70 4d 6f 64 65 3d 31 20 77 61 6e 50 dhcpMode=1 wanP
10f10 6f 72 74 73 3d 24 77 61 6e 50 6f 72 74 73 20 75 orts=$wanPorts u
10f20 73 65 44 65 74 4e 65 74 3d 24 75 73 65 44 65 74 seDetNet=$useDet
10f30 4e 65 74 20 69 70 4e 65 74 77 6f 72 6b 3d 24 69 Net ipNetwork=$i
10f40 70 4e 65 74 77 6f 72 6b 5d 0a 20 20 5b 24 61 6c pNetwork]. [$al
10f50 6c 6f 77 44 6e 73 20 69 70 4e 65 74 77 6f 72 6b lowDns ipNetwork
10f60 3d 24 69 70 4e 65 74 77 6f 72 6b 5d 0a 20 20 5b =$ipNetwork]. [
10f70 24 73 65 74 57 61 6e 50 6f 72 74 20 77 61 6e 50 $setWanPort wanP
10f80 6f 72 74 73 3d 24 77 61 6e 50 6f 72 74 73 20 69 orts=$wanPorts i
10f90 73 4c 74 65 3d 28 24 62 6f 61 72 64 2d 3e 22 69 sLte=($board->"i
10fa0 73 4c 74 65 22 29 20 6c 61 6e 50 6f 72 74 3d 24 sLte") lanPort=$
10fb0 6c 61 6e 50 6f 72 74 20 75 73 65 44 65 74 4e 65 lanPort useDetNe
10fc0 74 3d 24 75 73 65 44 65 74 4e 65 74 5d 0a 0a 20 t=$useDetNet]..
10fd0 20 3a 69 66 20 28 24 6e 65 65 64 41 64 6d 69 6e :if ($needAdmin
10fe0 50 61 73 73 20 3d 20 31 29 20 64 6f 3d 7b 0a 20 Pass = 1) do={.
10ff0 20 20 20 5b 24 73 65 74 41 64 6d 69 6e 50 61 73 [$setAdminPas
11000 73 5d 0a 20 20 7d 0a 7d 0a 0a 23 2d 2d 2d 2d 2d s]. }.}..#-----
11010 2d 2d 2d 2d 2d 2d 2d 2d 72 65 70 65 61 74 65 72 --------repeater
11020 20 63 6f 6e 66 69 67 2d 2d 2d 2d 2d 2d 2d 2d 2d config---------
11030 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
11040 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
11050 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3a 69 66 20 28 ----------.:if (
11060 24 63 6f 6e 66 69 67 4d 6f 64 65 20 3d 20 22 72 $configMode = "r
11070 65 70 65 61 74 65 72 22 29 20 64 6f 3d 7b 0a 0a epeater") do={..
11080 20 20 24 61 64 64 44 4c 20 28 5c 0a 20 20 22 23 $addDL (\. "#
11090 7c 20 52 65 70 65 61 74 65 72 20 4d 6f 64 65 3a | Repeater Mode:
110a0 24 4e 4c 5c 0a 20 20 20 23 7c 20 20 2a 20 77 6c $NL\. #| * wl
110b0 61 6e 31 20 2d 20 73 74 61 74 69 6f 6e 2d 62 72 an1 - station-br
110c0 69 64 67 65 2c 20 77 6c 61 6e 32 20 2d 20 61 70 idge, wlan2 - ap
110d0 2d 62 72 69 64 67 65 3b 5c 0a 20 20 20 23 7c 20 -bridge;\. #|
110e0 20 2a 20 62 6f 74 68 20 77 69 72 65 6c 65 73 73 * both wireless
110f0 20 69 6e 74 65 72 66 61 63 65 73 20 61 6e 64 20 interfaces and
11100 65 74 68 65 72 31 20 61 72 65 20 62 72 69 64 67 ether1 are bridg
11110 65 64 24 4e 4c 5c 0a 20 20 20 23 7c 20 20 2a 20 ed$NL\. #| *
11120 24 69 70 4e 65 74 77 6f 72 6b 2e 32 2f 32 34 20 $ipNetwork.2/24
11130 61 6e 64 20 64 68 63 70 2d 63 6c 69 65 6e 74 20 and dhcp-client
11140 6f 6e 20 74 68 65 20 62 72 69 64 67 65 22 29 0a on the bridge").
11150 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 2f 69 . $addCL (" /i
11160 6e 74 65 72 66 61 63 65 20 62 72 69 64 67 65 22 nterface bridge"
11170 29 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 ). $addCL ("
11180 20 61 64 64 20 6e 61 6d 65 3d 62 72 69 64 67 65 add name=bridge
11190 2d 72 65 70 65 61 74 65 72 20 64 69 73 61 62 6c -repeater disabl
111a0 65 64 3d 6e 6f 20 61 75 74 6f 2d 6d 61 63 3d 79 ed=no auto-mac=y
111b0 65 73 20 70 72 6f 74 6f 63 6f 6c 2d 6d 6f 64 65 es protocol-mode
111c0 3d 72 73 74 70 20 63 6f 6d 6d 65 6e 74 3d 64 65 =rstp comment=de
111d0 66 63 6f 6e 66 3b 22 29 0a 0a 20 20 24 61 64 64 fconf;").. $add
111e0 43 4c 20 28 22 20 20 3a 66 6f 72 65 61 63 68 20 CL (" :foreach
111f0 6b 20 69 6e 3d 5b 2f 69 6e 74 65 72 66 61 63 65 k in=[/interface
11200 20 77 69 72 65 6c 65 73 73 20 66 69 6e 64 5d 20 wireless find]
11210 64 6f 3d 7b 22 29 0a 20 20 24 61 64 64 43 4c 20 do={"). $addCL
11220 28 22 20 20 20 20 2f 69 6e 74 65 72 66 61 63 65 (" /interface
11230 20 62 72 69 64 67 65 20 70 6f 72 74 22 29 0a 20 bridge port").
11240 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 20 20 $addCL ("
11250 61 64 64 20 62 72 69 64 67 65 3d 62 72 69 64 67 add bridge=bridg
11260 65 2d 72 65 70 65 61 74 65 72 20 69 6e 74 65 72 e-repeater inter
11270 66 61 63 65 3d 5c 24 6b 20 63 6f 6d 6d 65 6e 74 face=\$k comment
11280 3d 64 65 66 63 6f 6e 66 3b 22 29 0a 20 20 24 61 =defconf;"). $a
11290 64 64 43 4c 20 28 22 20 20 7d 22 29 0a 0a 20 20 ddCL (" }")..
112a0 24 61 64 64 43 4c 20 28 22 20 20 2f 69 6e 74 65 $addCL (" /inte
112b0 72 66 61 63 65 20 62 72 69 64 67 65 20 70 6f 72 rface bridge por
112c0 74 20 61 64 64 20 69 6e 74 65 72 66 61 63 65 3d t add interface=
112d0 65 74 68 65 72 31 20 62 72 69 64 67 65 3d 62 72 ether1 bridge=br
112e0 69 64 67 65 2d 72 65 70 65 61 74 65 72 20 63 6f idge-repeater co
112f0 6d 6d 65 6e 74 3d 64 65 66 63 6f 6e 66 3b 22 29 mment=defconf;")
11300 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 2f 69 . $addCL (" /i
11310 70 20 61 64 64 72 65 73 73 20 61 64 64 20 61 64 p address add ad
11320 64 72 65 73 73 3d 24 69 70 4e 65 74 77 6f 72 6b dress=$ipNetwork
11330 2e 32 2f 32 34 20 69 6e 74 65 72 66 61 63 65 3d .2/24 interface=
11340 62 72 69 64 67 65 2d 72 65 70 65 61 74 65 72 20 bridge-repeater
11350 63 6f 6d 6d 65 6e 74 3d 64 65 66 63 6f 6e 66 3b comment=defconf;
11360 22 29 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 "). $addCL ("
11370 2f 69 70 20 64 68 63 70 2d 63 6c 69 65 6e 74 20 /ip dhcp-client
11380 61 64 64 20 69 6e 74 65 72 66 61 63 65 3d 62 72 add interface=br
11390 69 64 67 65 2d 72 65 70 65 61 74 65 72 20 64 69 idge-repeater di
113a0 73 61 62 6c 65 64 3d 6e 6f 20 63 6f 6d 6d 65 6e sabled=no commen
113b0 74 3d 64 65 66 63 6f 6e 66 3b 22 29 0a 20 20 24 t=defconf;"). $
113c0 61 64 64 43 4c 20 28 22 22 29 0a 0a 20 20 5b 24 addCL ("").. [$
113d0 73 65 74 57 6c 61 6e 20 69 66 63 3d 22 77 6c 61 setWlan ifc="wla
113e0 6e 31 22 20 6d 6f 64 65 3d 24 6d 6f 64 65 31 20 n1" mode=$mode1
113f0 66 72 65 71 75 65 6e 63 79 3d 24 66 72 65 71 75 frequency=$frequ
11400 65 6e 63 79 20 77 50 72 6f 74 6f 3d 24 77 50 72 ency wProto=$wPr
11410 6f 74 6f 20 64 69 73 74 61 6e 63 65 3d 24 64 69 oto distance=$di
11420 73 74 61 6e 63 65 20 69 6e 73 74 61 6c 6c 61 74 stance installat
11430 69 6f 6e 3d 24 69 6e 73 74 61 6c 6c 61 74 69 6f ion=$installatio
11440 6e 5d 0a 20 20 5b 24 73 65 74 57 6c 61 6e 20 69 n]. [$setWlan i
11450 66 63 3d 22 77 6c 61 6e 32 22 20 6d 6f 64 65 3d fc="wlan2" mode=
11460 24 6d 6f 64 65 32 20 66 72 65 71 75 65 6e 63 79 $mode2 frequency
11470 3d 24 66 72 65 71 75 65 6e 63 79 20 77 50 72 6f =$frequency wPro
11480 74 6f 3d 24 77 50 72 6f 74 6f 20 64 69 73 74 61 to=$wProto dista
11490 6e 63 65 3d 24 64 69 73 74 61 6e 63 65 20 69 6e nce=$distance in
114a0 73 74 61 6c 6c 61 74 69 6f 6e 3d 24 69 6e 73 74 stallation=$inst
114b0 61 6c 6c 61 74 69 6f 6e 5d 0a 0a 20 20 3a 69 66 allation].. :if
114c0 20 28 24 6e 65 65 64 41 64 6d 69 6e 50 61 73 73 ($needAdminPass
114d0 20 3d 20 31 29 20 64 6f 3d 7b 0a 20 20 20 20 5b = 1) do={. [
114e0 24 73 65 74 41 64 6d 69 6e 50 61 73 73 5d 0a 20 $setAdminPass].
114f0 20 7d 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d }.}..#---------
11500 2d 2d 2d 2d 57 49 53 50 20 62 72 69 64 67 65 20 ----WISP bridge
11510 63 6f 6e 66 69 67 20 28 41 50 29 2d 2d 2d 2d 2d config (AP)-----
11520 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
11530 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
11540 2d 2d 2d 2d 2d 2d 0a 3a 69 66 20 28 24 63 6f 6e ------.:if ($con
11550 66 69 67 4d 6f 64 65 20 3d 20 22 77 69 73 70 5f figMode = "wisp_
11560 62 72 69 64 67 65 22 29 20 64 6f 3d 7b 0a 20 20 bridge") do={.
11570 24 61 64 64 44 4c 20 28 5c 0a 20 20 22 23 7c 20 $addDL (\. "#|
11580 57 49 53 50 20 42 72 69 64 67 65 3a 24 4e 4c 5c WISP Bridge:$NL\
11590 0a 20 20 20 23 7c 20 20 2a 20 77 69 72 65 6c 65 . #| * wirele
115a0 73 73 20 61 6e 64 20 4c 41 4e 20 69 6e 74 65 72 ss and LAN inter
115b0 66 61 63 65 73 20 61 72 65 20 62 72 69 64 67 65 faces are bridge
115c0 64 3b 22 29 0a 0a 20 20 20 20 3a 69 66 20 28 24 d;").. :if ($
115d0 6e 75 6d 57 6c 61 6e 73 20 3e 20 30 29 20 64 6f numWlans > 0) do
115e0 3d 7b 0a 20 20 20 20 20 20 3a 69 66 20 28 24 6e ={. :if ($n
115f0 75 6d 57 6c 61 6e 73 20 3e 20 31 29 20 64 6f 3d umWlans > 1) do=
11600 7b 0a 20 20 20 20 20 20 20 20 5b 24 73 65 74 57 {. [$setW
11610 6c 61 6e 20 69 66 63 3d 28 22 24 22 77 6c 61 6e lan ifc=("$"wlan
11620 50 72 65 66 69 78 22 31 22 29 20 6d 6f 64 65 3d Prefix"1") mode=
11630 24 77 6c 61 6e 4d 6f 64 65 20 66 72 65 71 75 65 $wlanMode freque
11640 6e 63 79 3d 24 66 72 65 71 75 65 6e 63 79 20 77 ncy=$frequency w
11650 50 72 6f 74 6f 3d 24 77 50 72 6f 74 6f 20 64 69 Proto=$wProto di
11660 73 74 61 6e 63 65 3d 24 64 69 73 74 61 6e 63 65 stance=$distance
11670 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 3d 24 69 installation=$i
11680 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 70 61 73 73 nstallation pass
11690 3d 24 77 69 66 69 50 61 73 73 4e 61 6d 65 5d 0a =$wifiPassName].
116a0 20 20 20 20 20 20 20 20 5b 24 73 65 74 57 6c 61 [$setWla
116b0 6e 20 69 66 63 3d 28 22 24 22 77 6c 61 6e 50 72 n ifc=("$"wlanPr
116c0 65 66 69 78 22 32 22 29 20 6d 6f 64 65 3d 24 77 efix"2") mode=$w
116d0 6c 61 6e 4d 6f 64 65 20 66 72 65 71 75 65 6e 63 lanMode frequenc
116e0 79 3d 24 66 72 65 71 75 65 6e 63 79 20 77 50 72 y=$frequency wPr
116f0 6f 74 6f 3d 24 77 50 72 6f 74 6f 20 64 69 73 74 oto=$wProto dist
11700 61 6e 63 65 3d 24 64 69 73 74 61 6e 63 65 20 69 ance=$distance i
11710 6e 73 74 61 6c 6c 61 74 69 6f 6e 3d 24 69 6e 73 nstallation=$ins
11720 74 61 6c 6c 61 74 69 6f 6e 20 70 61 73 73 3d 24 tallation pass=$
11730 77 69 66 69 50 61 73 73 4e 61 6d 65 5d 0a 20 20 wifiPassName].
11740 20 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 } else={.
11750 20 20 20 20 20 5b 24 73 65 74 57 6c 61 6e 20 69 [$setWlan i
11760 66 63 3d 28 22 24 22 77 6c 61 6e 50 72 65 66 69 fc=("$"wlanPrefi
11770 78 22 31 22 29 20 6d 6f 64 65 3d 24 77 6c 61 6e x"1") mode=$wlan
11780 4d 6f 64 65 20 66 72 65 71 75 65 6e 63 79 3d 24 Mode frequency=$
11790 66 72 65 71 75 65 6e 63 79 20 77 50 72 6f 74 6f frequency wProto
117a0 3d 24 77 50 72 6f 74 6f 20 64 69 73 74 61 6e 63 =$wProto distanc
117b0 65 3d 24 64 69 73 74 61 6e 63 65 20 69 6e 73 74 e=$distance inst
117c0 61 6c 6c 61 74 69 6f 6e 3d 24 69 6e 73 74 61 6c allation=$instal
117d0 6c 61 74 69 6f 6e 20 70 61 73 73 3d 24 77 69 66 lation pass=$wif
117e0 69 50 61 73 73 4e 61 6d 65 5d 0a 20 20 20 20 20 iPassName].
117f0 20 7d 0a 20 20 20 20 7d 0a 20 20 3a 69 66 20 28 }. }. :if (
11800 24 6e 75 6d 57 69 6c 73 20 3e 20 30 29 20 64 6f $numWils > 0) do
11810 3d 7b 0a 20 20 20 20 5b 24 73 65 74 57 36 30 47 ={. [$setW60G
11820 61 70 5d 0a 20 20 7d 0a 0a 20 20 23 20 6c 61 6e ap]. }.. # lan
11830 20 70 6f 72 74 20 69 73 20 61 6c 77 61 79 73 20 port is always
11840 62 72 69 64 67 65 20 69 6e 20 74 68 69 73 20 6d bridge in this m
11850 6f 64 65 0a 20 20 5b 24 73 65 74 4c 61 6e 20 6c ode. [$setLan l
11860 61 6e 50 6f 72 74 3d 24 6c 61 6e 50 6f 72 74 20 anPort=$lanPort
11870 64 68 63 70 4d 6f 64 65 3d 32 20 75 73 65 44 65 dhcpMode=2 useDe
11880 74 4e 65 74 3d 24 75 73 65 44 65 74 4e 65 74 20 tNet=$useDetNet
11890 69 70 4e 65 74 77 6f 72 6b 3d 24 69 70 4e 65 74 ipNetwork=$ipNet
118a0 77 6f 72 6b 5d 0a 0a 20 20 3a 69 66 20 28 24 6e work].. :if ($n
118b0 65 65 64 41 64 6d 69 6e 50 61 73 73 20 3d 20 31 eedAdminPass = 1
118c0 29 20 64 6f 3d 7b 0a 20 20 20 20 5b 24 73 65 74 ) do={. [$set
118d0 41 64 6d 69 6e 50 61 73 73 5d 0a 20 20 7d 0a 7d AdminPass]. }.}
118e0 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..#-------------
118f0 50 54 50 20 62 72 69 64 67 65 20 63 6f 6e 66 69 PTP bridge confi
11900 67 20 28 63 6c 69 65 6e 74 2c 20 41 50 29 2d 2d g (client, AP)--
11910 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
11920 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
11930 2d 2d 0a 3a 69 66 20 28 24 63 6f 6e 66 69 67 4d --.:if ($configM
11940 6f 64 65 20 3d 20 22 70 74 70 5f 62 72 69 64 67 ode = "ptp_bridg
11950 65 22 29 20 64 6f 3d 7b 0a 20 20 24 61 64 64 44 e") do={. $addD
11960 4c 20 28 5c 0a 20 20 22 23 7c 20 50 54 50 20 42 L (\. "#| PTP B
11970 72 69 64 67 65 3a 24 4e 4c 5c 0a 20 20 20 23 7c ridge:$NL\. #|
11980 20 20 2a 20 77 69 72 65 6c 65 73 73 20 61 6e 64 * wireless and
11990 20 4c 41 4e 20 69 6e 74 65 72 66 61 63 65 73 20 LAN interfaces
119a0 61 72 65 20 62 72 69 64 67 65 64 3b 22 29 0a 0a are bridged;")..
119b0 20 20 3a 69 66 20 28 24 6e 75 6d 57 6c 61 6e 73 :if ($numWlans
119c0 20 3e 20 30 29 20 64 6f 3d 7b 0a 20 20 20 20 3a > 0) do={. :
119d0 69 66 20 28 24 6e 75 6d 57 6c 61 6e 73 20 3e 20 if ($numWlans >
119e0 31 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 1) do={.
119f0 5b 24 73 65 74 57 6c 61 6e 20 69 66 63 3d 22 77 [$setWlan ifc="w
11a00 6c 61 6e 31 22 20 6d 6f 64 65 3d 24 6d 6f 64 65 lan1" mode=$mode
11a10 31 20 66 72 65 71 75 65 6e 63 79 3d 24 66 72 65 1 frequency=$fre
11a20 71 75 65 6e 63 79 20 77 50 72 6f 74 6f 3d 24 77 quency wProto=$w
11a30 50 72 6f 74 6f 20 64 69 73 74 61 6e 63 65 3d 24 Proto distance=$
11a40 64 69 73 74 61 6e 63 65 20 69 6e 73 74 61 6c 6c distance install
11a50 61 74 69 6f 6e 3d 24 69 6e 73 74 61 6c 6c 61 74 ation=$installat
11a60 69 6f 6e 5d 0a 20 20 20 20 20 20 20 20 5b 24 73 ion]. [$s
11a70 65 74 57 6c 61 6e 20 69 66 63 3d 22 77 6c 61 6e etWlan ifc="wlan
11a80 32 22 20 6d 6f 64 65 3d 24 6d 6f 64 65 32 20 66 2" mode=$mode2 f
11a90 72 65 71 75 65 6e 63 79 3d 24 66 72 65 71 75 65 requency=$freque
11aa0 6e 63 79 20 77 50 72 6f 74 6f 3d 24 77 50 72 6f ncy wProto=$wPro
11ab0 74 6f 20 64 69 73 74 61 6e 63 65 3d 24 64 69 73 to distance=$dis
11ac0 74 61 6e 63 65 20 69 6e 73 74 61 6c 6c 61 74 69 tance installati
11ad0 6f 6e 3d 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e on=$installation
11ae0 5d 0a 20 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 ]. } else={.
11af0 20 20 20 20 20 20 20 5b 24 73 65 74 57 6c 61 6e [$setWlan
11b00 20 69 66 63 3d 22 77 6c 61 6e 31 22 20 6d 6f 64 ifc="wlan1" mod
11b10 65 3d 24 6d 6f 64 65 31 20 66 72 65 71 75 65 6e e=$mode1 frequen
11b20 63 79 3d 24 66 72 65 71 75 65 6e 63 79 20 77 50 cy=$frequency wP
11b30 72 6f 74 6f 3d 24 77 50 72 6f 74 6f 20 64 69 73 roto=$wProto dis
11b40 74 61 6e 63 65 3d 24 64 69 73 74 61 6e 63 65 20 tance=$distance
11b50 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 3d 24 69 6e installation=$in
11b60 73 74 61 6c 6c 61 74 69 6f 6e 5d 0a 20 20 20 20 stallation].
11b70 7d 0a 20 20 7d 0a 20 20 23 20 6c 61 6e 20 70 6f }. }. # lan po
11b80 72 74 20 69 73 20 61 6c 77 61 79 73 20 62 72 69 rt is always bri
11b90 64 67 65 20 69 6e 20 74 68 69 73 20 6d 6f 64 65 dge in this mode
11ba0 0a 20 20 5b 24 73 65 74 4c 61 6e 20 6c 61 6e 50 . [$setLan lanP
11bb0 6f 72 74 3d 24 6c 61 6e 50 6f 72 74 20 64 68 63 ort=$lanPort dhc
11bc0 70 4d 6f 64 65 3d 30 20 75 73 65 44 65 74 4e 65 pMode=0 useDetNe
11bd0 74 3d 24 75 73 65 44 65 74 4e 65 74 20 69 70 4e t=$useDetNet ipN
11be0 65 74 77 6f 72 6b 3d 24 69 70 4e 65 74 77 6f 72 etwork=$ipNetwor
11bf0 6b 5d 0a 0a 20 20 3a 69 66 20 28 24 6e 65 65 64 k].. :if ($need
11c00 41 64 6d 69 6e 50 61 73 73 20 3d 20 31 29 20 64 AdminPass = 1) d
11c10 6f 3d 7b 0a 20 20 20 20 5b 24 73 65 74 41 64 6d o={. [$setAdm
11c20 69 6e 50 61 73 73 5d 0a 20 20 7d 0a 7d 0a 0a 23 inPass]. }.}..#
11c30 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 41 50 20 -------------AP
11c40 52 6f 75 74 65 72 20 28 64 75 61 6c 2c 20 73 69 Router (dual, si
11c50 6e 67 6c 65 29 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ngle)-----------
11c60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
11c70 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a ---------------.
11c80 3a 69 66 20 28 24 63 6f 6e 66 69 67 4d 6f 64 65 :if ($configMode
11c90 20 3d 20 22 61 70 5f 72 6f 75 74 65 72 22 29 20 = "ap_router")
11ca0 64 6f 3d 7b 0a 20 20 24 61 64 64 44 4c 20 28 5c do={. $addDL (\
11cb0 0a 20 20 22 23 7c 20 52 6f 75 74 65 72 4d 6f 64 . "#| RouterMod
11cc0 65 3a 24 4e 4c 5c 0a 20 20 20 23 7c 20 20 2a 20 e:$NL\. #| *
11cd0 57 41 4e 20 70 6f 72 74 20 69 73 20 70 72 6f 74 WAN port is prot
11ce0 65 63 74 65 64 20 62 79 20 66 69 72 65 77 61 6c ected by firewal
11cf0 6c 20 61 6e 64 20 65 6e 61 62 6c 65 64 20 44 48 l and enabled DH
11d00 43 50 20 63 6c 69 65 6e 74 22 29 0a 20 20 3a 69 CP client"). :i
11d10 66 20 28 24 6e 75 6d 57 6c 61 6e 73 20 3e 20 30 f ($numWlans > 0
11d20 29 20 64 6f 3d 7b 0a 20 20 20 20 24 61 64 64 44 ) do={. $addD
11d30 4c 20 28 22 23 7c 20 20 2a 20 57 69 72 65 6c 65 L ("#| * Wirele
11d40 73 73 20 61 6e 64 20 45 74 68 65 72 6e 65 74 20 ss and Ethernet
11d50 69 6e 74 65 72 66 61 63 65 73 20 28 65 78 63 65 interfaces (exce
11d60 70 74 20 57 41 4e 20 70 6f 72 74 2f 73 29 22 29 pt WAN port/s)")
11d70 0a 20 20 20 20 24 61 64 64 44 4c 20 28 22 23 7c . $addDL ("#|
11d80 20 20 20 20 61 72 65 20 70 61 72 74 20 6f 66 20 are part of
11d90 4c 41 4e 20 62 72 69 64 67 65 22 29 0a 20 20 7d LAN bridge"). }
11da0 20 65 6c 73 65 3d 7b 0a 20 20 20 20 24 61 64 64 else={. $add
11db0 44 4c 20 28 22 23 7c 20 20 2a 20 45 74 68 65 72 DL ("#| * Ether
11dc0 6e 65 74 20 69 6e 74 65 72 66 61 63 65 73 20 28 net interfaces (
11dd0 65 78 63 65 70 74 20 57 41 4e 20 70 6f 72 74 2f except WAN port/
11de0 73 29 20 61 72 65 20 70 61 72 74 20 6f 66 20 4c s) are part of L
11df0 41 4e 20 62 72 69 64 67 65 22 29 0a 20 20 7d 0a AN bridge"). }.
11e00 20 20 3a 73 65 74 20 66 72 65 71 75 65 6e 63 79 :set frequency
11e10 20 22 61 75 74 6f 22 3b 0a 20 20 3a 73 65 74 20 "auto";. :set
11e20 64 69 73 74 61 6e 63 65 20 22 69 6e 64 6f 6f 72 distance "indoor
11e30 73 22 3b 0a 20 20 3a 73 65 74 20 77 50 72 6f 74 s";. :set wProt
11e40 6f 20 22 38 30 32 2e 31 31 22 3b 0a 0a 20 20 23 o "802.11";.. #
11e50 20 74 68 69 73 20 73 68 6f 75 6c 64 20 62 65 20 this should be
11e60 62 65 66 6f 72 65 20 4c 41 4e 20 62 72 69 64 67 before LAN bridg
11e70 65 20 6f 74 68 65 72 77 69 73 65 20 77 6c 61 6e e otherwise wlan
11e80 33 20 6d 69 67 68 74 20 6e 6f 74 20 62 65 20 61 3 might not be a
11e90 64 64 65 64 20 61 73 20 62 72 69 64 67 65 20 70 dded as bridge p
11ea0 6f 72 74 20 28 64 72 69 76 65 72 20 6e 6f 74 20 ort (driver not
11eb0 6c 6f 61 64 65 64 20 79 65 74 29 0a 20 20 3a 69 loaded yet). :i
11ec0 66 20 28 24 6e 65 65 64 57 70 73 53 79 6e 63 20 f ($needWpsSync
11ed0 3d 20 31 20 26 26 20 24 75 73 69 6e 67 57 69 66 = 1 && $usingWif
11ee0 69 50 61 63 6b 20 3d 20 30 29 20 64 6f 3d 7b 0a iPack = 0) do={.
11ef0 20 20 20 20 5b 24 73 65 74 57 70 73 53 79 6e 63 [$setWpsSync
11f00 20 70 61 73 73 3d 24 77 70 73 50 61 73 73 4e 61 pass=$wpsPassNa
11f10 6d 65 5d 0a 20 20 7d 0a 20 20 5b 24 73 65 74 49 me]. }. [$setI
11f20 6e 74 65 72 66 61 63 65 4c 69 73 74 73 5d 0a 20 nterfaceLists].
11f30 20 5b 24 73 65 74 4c 61 6e 20 73 77 69 74 63 68 [$setLan switch
11f40 50 6f 72 74 73 3d 24 73 77 69 74 63 68 50 6f 72 Ports=$switchPor
11f50 74 73 20 6c 61 6e 50 6f 72 74 3d 24 6c 61 6e 50 ts lanPort=$lanP
11f60 6f 72 74 20 64 68 63 70 4d 6f 64 65 3d 31 20 73 ort dhcpMode=1 s
11f70 77 69 74 63 68 50 6f 72 74 47 72 6f 75 70 73 3d witchPortGroups=
11f80 24 73 77 69 74 63 68 50 6f 72 74 47 72 6f 75 70 $switchPortGroup
11f90 73 20 77 61 6e 50 6f 72 74 73 3d 24 77 61 6e 50 s wanPorts=$wanP
11fa0 6f 72 74 73 20 75 73 65 44 65 74 4e 65 74 3d 24 orts useDetNet=$
11fb0 75 73 65 44 65 74 4e 65 74 20 68 61 73 43 61 70 useDetNet hasCap
11fc0 73 4d 61 6e 3d 24 61 64 64 43 61 70 73 4d 61 6e sMan=$addCapsMan
11fd0 20 69 70 4e 65 74 77 6f 72 6b 3d 24 69 70 4e 65 ipNetwork=$ipNe
11fe0 74 77 6f 72 6b 5d 0a 20 20 5b 24 61 6c 6c 6f 77 twork]. [$allow
11ff0 44 6e 73 20 69 70 4e 65 74 77 6f 72 6b 3d 24 69 Dns ipNetwork=$i
12000 70 4e 65 74 77 6f 72 6b 5d 0a 0a 20 20 3a 69 66 pNetwork].. :if
12010 20 28 24 61 64 64 43 61 70 73 4d 61 6e 20 3d 20 ($addCapsMan =
12020 31 20 26 26 20 24 75 73 69 6e 67 57 69 66 69 50 1 && $usingWifiP
12030 61 63 6b 20 3d 20 30 29 20 64 6f 3d 7b 0a 20 20 ack = 0) do={.
12040 20 20 5b 24 73 65 74 43 61 70 73 4d 61 6e 20 64 [$setCapsMan d
12050 69 73 74 61 6e 63 65 3d 24 64 69 73 74 61 6e 63 istance=$distanc
12060 65 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 3d 24 e installation=$
12070 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6c 61 6e installation lan
12080 50 6f 72 74 3d 24 6c 61 6e 50 6f 72 74 20 73 73 Port=$lanPort ss
12090 69 64 50 72 65 66 69 78 3d 24 73 73 69 64 50 72 idPrefix=$ssidPr
120a0 65 66 69 78 20 70 61 73 73 3d 24 77 69 66 69 50 efix pass=$wifiP
120b0 61 73 73 4e 61 6d 65 5d 0a 20 20 20 20 3a 69 66 assName]. :if
120c0 20 28 24 6e 75 6d 57 6c 61 6e 73 20 3e 20 30 29 ($numWlans > 0)
120d0 20 64 6f 3d 7b 0a 20 20 20 20 20 20 24 61 64 64 do={. $add
120e0 44 4c 20 28 22 23 7c 20 57 69 72 65 6c 65 73 73 DL ("#| Wireless
120f0 3a 20 43 41 50 20 65 6e 61 62 6c 65 64 20 6f 6e : CAP enabled on
12100 20 77 69 72 65 6c 65 73 73 20 69 6e 74 65 72 66 wireless interf
12110 61 63 65 73 22 29 0a 20 20 20 20 20 20 3a 69 66 aces"). :if
12120 20 28 24 6e 75 6d 57 6c 61 6e 73 20 3e 20 31 29 ($numWlans > 1)
12130 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 23 20 do={. #
12140 58 58 58 20 61 73 73 75 6d 65 73 20 74 68 61 74 XXX assumes that
12150 20 6f 6e 20 72 6f 75 74 65 72 73 20 77 69 74 68 on routers with
12160 20 63 61 70 20 63 6f 6e 66 69 67 20 6c 6f 63 61 cap config loca
12170 6c 20 70 6f 72 74 20 69 73 20 61 6c 77 61 79 73 l port is always
12180 20 62 72 69 64 67 65 0a 20 20 20 20 20 20 20 20 bridge.
12190 24 61 64 64 43 4c 20 28 22 20 20 2f 69 6e 74 65 $addCL (" /inte
121a0 72 66 61 63 65 20 77 69 72 65 6c 65 73 73 20 63 rface wireless c
121b0 61 70 20 73 65 74 20 65 6e 61 62 6c 65 64 3d 79 ap set enabled=y
121c0 65 73 20 69 6e 74 65 72 66 61 63 65 73 3d 77 6c es interfaces=wl
121d0 61 6e 31 2c 77 6c 61 6e 32 20 63 61 70 73 2d 6d an1,wlan2 caps-m
121e0 61 6e 2d 61 64 64 72 65 73 73 65 73 3d 31 32 37 an-addresses=127
121f0 2e 30 2e 30 2e 31 20 62 72 69 64 67 65 3d 24 6c .0.0.1 bridge=$l
12200 61 6e 50 6f 72 74 22 29 0a 20 20 20 20 20 20 7d anPort"). }
12210 20 65 6c 73 65 3d 7b 0a 20 20 20 20 20 20 20 20 else={.
12220 24 61 64 64 43 4c 20 28 22 20 20 2f 69 6e 74 65 $addCL (" /inte
12230 72 66 61 63 65 20 77 69 72 65 6c 65 73 73 20 63 rface wireless c
12240 61 70 20 73 65 74 20 65 6e 61 62 6c 65 64 3d 79 ap set enabled=y
12250 65 73 20 69 6e 74 65 72 66 61 63 65 73 3d 77 6c es interfaces=wl
12260 61 6e 31 20 63 61 70 73 2d 6d 61 6e 2d 61 64 64 an1 caps-man-add
12270 72 65 73 73 65 73 3d 31 32 37 2e 30 2e 30 2e 31 resses=127.0.0.1
12280 20 62 72 69 64 67 65 3d 24 6c 61 6e 50 6f 72 74 bridge=$lanPort
12290 22 29 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d "). }. }
122a0 0a 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 20 . } else={.
122b0 3a 69 66 20 28 24 6e 75 6d 57 6c 61 6e 73 20 3e :if ($numWlans >
122c0 20 30 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 3a 0) do={. :
122d0 69 66 20 28 24 6e 75 6d 57 6c 61 6e 73 20 3e 20 if ($numWlans >
122e0 31 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 1) do={.
122f0 5b 24 73 65 74 57 6c 61 6e 20 69 66 63 3d 28 22 [$setWlan ifc=("
12300 24 22 77 6c 61 6e 50 72 65 66 69 78 22 31 22 29 $"wlanPrefix"1")
12310 20 6d 6f 64 65 3d 24 77 6c 61 6e 4d 6f 64 65 20 mode=$wlanMode
12320 66 72 65 71 75 65 6e 63 79 3d 24 66 72 65 71 75 frequency=$frequ
12330 65 6e 63 79 20 77 50 72 6f 74 6f 3d 24 77 50 72 ency wProto=$wPr
12340 6f 74 6f 20 64 69 73 74 61 6e 63 65 3d 24 64 69 oto distance=$di
12350 73 74 61 6e 63 65 20 73 65 63 43 68 61 6e 6e 65 stance secChanne
12360 6c 3d 24 73 65 63 6f 6e 64 61 72 79 43 68 61 6e l=$secondaryChan
12370 6e 65 6c 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e nel installation
12380 3d 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 70 =$installation p
12390 61 73 73 3d 24 77 69 66 69 50 61 73 73 4e 61 6d ass=$wifiPassNam
123a0 65 5d 0a 20 20 20 20 20 20 20 20 5b 24 73 65 74 e]. [$set
123b0 57 6c 61 6e 20 69 66 63 3d 28 22 24 22 77 6c 61 Wlan ifc=("$"wla
123c0 6e 50 72 65 66 69 78 22 32 22 29 20 6d 6f 64 65 nPrefix"2") mode
123d0 3d 24 77 6c 61 6e 4d 6f 64 65 20 66 72 65 71 75 =$wlanMode frequ
123e0 65 6e 63 79 3d 24 66 72 65 71 75 65 6e 63 79 20 ency=$frequency
123f0 77 50 72 6f 74 6f 3d 24 77 50 72 6f 74 6f 20 64 wProto=$wProto d
12400 69 73 74 61 6e 63 65 3d 24 64 69 73 74 61 6e 63 istance=$distanc
12410 65 20 73 65 63 43 68 61 6e 6e 65 6c 3d 24 73 65 e secChannel=$se
12420 63 6f 6e 64 61 72 79 43 68 61 6e 6e 65 6c 20 69 condaryChannel i
12430 6e 73 74 61 6c 6c 61 74 69 6f 6e 3d 24 69 6e 73 nstallation=$ins
12440 74 61 6c 6c 61 74 69 6f 6e 20 70 61 73 73 3d 24 tallation pass=$
12450 77 69 66 69 50 61 73 73 4e 61 6d 65 5d 0a 20 20 wifiPassName].
12460 20 20 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 20 20 } else={.
12470 20 20 20 20 20 5b 24 73 65 74 57 6c 61 6e 20 69 [$setWlan i
12480 66 63 3d 28 22 24 22 77 6c 61 6e 50 72 65 66 69 fc=("$"wlanPrefi
12490 78 22 31 22 29 20 6d 6f 64 65 3d 24 77 6c 61 6e x"1") mode=$wlan
124a0 4d 6f 64 65 20 66 72 65 71 75 65 6e 63 79 3d 24 Mode frequency=$
124b0 66 72 65 71 75 65 6e 63 79 20 77 50 72 6f 74 6f frequency wProto
124c0 3d 24 77 50 72 6f 74 6f 20 64 69 73 74 61 6e 63 =$wProto distanc
124d0 65 3d 24 64 69 73 74 61 6e 63 65 20 73 65 63 43 e=$distance secC
124e0 68 61 6e 6e 65 6c 3d 24 73 65 63 6f 6e 64 61 72 hannel=$secondar
124f0 79 43 68 61 6e 6e 65 6c 20 69 6e 73 74 61 6c 6c yChannel install
12500 61 74 69 6f 6e 3d 24 69 6e 73 74 61 6c 6c 61 74 ation=$installat
12510 69 6f 6e 20 70 61 73 73 3d 24 77 69 66 69 50 61 ion pass=$wifiPa
12520 73 73 4e 61 6d 65 5d 0a 20 20 20 20 20 20 7d 0a ssName]. }.
12530 20 20 20 20 7d 0a 20 20 7d 0a 20 20 3a 69 66 20 }. }. :if
12540 28 24 6e 75 6d 57 69 6c 73 20 3e 20 30 29 20 64 ($numWils > 0) d
12550 6f 3d 7b 0a 20 20 20 20 20 20 5b 24 73 65 74 57 o={. [$setW
12560 36 30 47 61 70 5d 0a 20 20 7d 0a 20 20 3a 69 66 60Gap]. }. :if
12570 20 28 24 69 73 50 50 50 6e 65 65 64 65 64 20 3e ($isPPPneeded >
12580 20 30 29 20 64 6f 3d 7b 0a 20 20 20 20 3a 6c 6f 0) do={. :lo
12590 63 61 6c 20 63 6d 64 20 22 3a 67 6c 6f 62 61 6c cal cmd ":global
125a0 20 6e 54 65 6d 70 20 5b 3a 6c 65 6e 20 5b 2f 69 nTemp [:len [/i
125b0 6e 74 65 72 66 61 63 65 20 66 69 6e 64 20 77 68 nterface find wh
125c0 65 72 65 20 74 79 70 65 3d 5c 22 70 70 70 2d 6f ere type=\"ppp-o
125d0 75 74 5c 22 5d 5d 22 0a 20 20 20 20 3a 65 78 65 ut\"]]". :exe
125e0 63 75 74 65 20 73 63 72 69 70 74 3d 24 63 6d 64 cute script=$cmd
125f0 0a 20 20 20 20 3a 64 65 6c 61 79 20 31 73 3b 0a . :delay 1s;.
12600 20 20 20 20 3a 77 68 69 6c 65 20 28 24 6e 54 65 :while ($nTe
12610 6d 70 20 3c 20 31 20 26 26 20 24 63 6f 75 6e 74 mp < 1 && $count
12620 20 3c 3d 20 31 30 29 20 64 6f 3d 7b 0a 20 20 20 <= 10) do={.
12630 20 20 20 3a 64 65 6c 61 79 20 31 73 3b 0a 20 20 :delay 1s;.
12640 20 20 20 20 3a 65 78 65 63 75 74 65 20 73 63 72 :execute scr
12650 69 70 74 3d 24 63 6d 64 0a 20 20 20 20 20 20 3a ipt=$cmd. :
12660 73 65 74 20 63 6f 75 6e 74 20 28 24 63 6f 75 6e set count ($coun
12670 74 20 2b 31 29 3b 0a 20 20 20 20 7d 0a 20 20 7d t +1);. }. }
12680 0a 20 20 3a 69 66 20 28 24 69 73 50 50 50 6e 65 . :if ($isPPPne
12690 65 64 65 64 20 3e 20 30 20 26 26 20 5b 3a 6c 65 eded > 0 && [:le
126a0 6e 20 5b 2f 69 6e 74 65 72 66 61 63 65 20 66 69 n [/interface fi
126b0 6e 64 20 77 68 65 72 65 20 74 79 70 65 3d 22 70 nd where type="p
126c0 70 70 2d 6f 75 74 22 20 26 26 20 6e 61 6d 65 3d pp-out" && name=
126d0 70 70 70 2d 6f 75 74 31 5d 5d 29 20 64 6f 3d 7b ppp-out1]]) do={
126e0 0a 20 20 20 20 5b 24 73 65 74 50 50 50 4f 55 54 . [$setPPPOUT
126f0 56 61 72 73 5d 0a 20 20 20 20 5b 24 73 65 74 57 Vars]. [$setW
12700 61 6e 50 6f 72 74 20 77 61 6e 50 6f 72 74 73 3d anPort wanPorts=
12710 24 77 61 6e 50 6f 72 74 73 20 69 73 4c 74 65 3d $wanPorts isLte=
12720 28 24 62 6f 61 72 64 2d 3e 22 69 73 4c 74 65 22 ($board->"isLte"
12730 29 20 6c 61 6e 50 6f 72 74 3d 24 6c 61 6e 50 6f ) lanPort=$lanPo
12740 72 74 20 75 73 65 44 65 74 4e 65 74 3d 24 75 73 rt useDetNet=$us
12750 65 44 65 74 4e 65 74 20 70 70 70 41 73 57 41 4e eDetNet pppAsWAN
12760 3d 31 5d 0a 20 20 7d 20 65 6c 73 65 3d 7b 0a 20 =1]. } else={.
12770 20 20 20 3a 73 65 74 20 77 61 6e 50 6f 72 74 73 :set wanPorts
12780 20 7b 22 65 74 68 65 72 31 22 7d 3b 0a 20 20 20 {"ether1"};.
12790 20 5b 24 73 65 74 57 61 6e 50 6f 72 74 20 77 61 [$setWanPort wa
127a0 6e 50 6f 72 74 73 3d 24 77 61 6e 50 6f 72 74 73 nPorts=$wanPorts
127b0 20 69 73 4c 74 65 3d 28 24 62 6f 61 72 64 2d 3e isLte=($board->
127c0 22 69 73 4c 74 65 22 29 20 6c 61 6e 50 6f 72 74 "isLte") lanPort
127d0 3d 24 6c 61 6e 50 6f 72 74 20 75 73 65 44 65 74 =$lanPort useDet
127e0 4e 65 74 3d 24 75 73 65 44 65 74 4e 65 74 5d 0a Net=$useDetNet].
127f0 20 20 7d 0a 20 20 3a 69 66 20 28 24 6e 65 65 64 }. :if ($need
12800 41 64 6d 69 6e 50 61 73 73 20 3d 20 31 29 20 64 AdminPass = 1) d
12810 6f 3d 7b 0a 20 20 20 20 5b 24 73 65 74 41 64 6d o={. [$setAdm
12820 69 6e 50 61 73 73 5d 0a 20 20 7d 0a 7d 0a 0a 23 inPass]. }.}..#
12830 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 57 36 30 -------------W60
12840 47 20 62 72 69 64 67 65 20 77 69 74 68 20 35 47 G bridge with 5G
12850 48 7a 20 62 61 63 6b 75 70 20 6c 69 6e 6b 20 63 Hz backup link c
12860 6f 6e 66 69 67 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d onfig-----------
12870 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
12880 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
12890 0a 3a 69 66 20 28 24 63 6f 6e 66 69 67 4d 6f 64 .:if ($configMod
128a0 65 20 3d 20 22 77 36 30 67 5f 62 72 69 64 67 65 e = "w60g_bridge
128b0 22 29 20 64 6f 3d 7b 0a 20 20 24 61 64 64 44 4c ") do={. $addDL
128c0 20 28 5c 0a 20 20 22 23 7c 20 57 36 30 47 20 42 (\. "#| W60G B
128d0 72 69 64 67 65 3a 24 4e 4c 5c 0a 20 20 20 23 7c ridge:$NL\. #|
128e0 20 20 2a 20 57 36 30 47 20 61 6e 64 20 4c 41 4e * W60G and LAN
128f0 20 69 6e 74 65 72 66 61 63 65 73 20 61 72 65 20 interfaces are
12900 62 72 69 64 67 65 64 3b 22 29 0a 0a 20 20 3a 69 bridged;").. :i
12910 66 20 28 24 6e 75 6d 57 69 6c 73 20 3e 20 30 29 f ($numWils > 0)
12920 20 64 6f 3d 7b 0a 20 20 20 20 5b 24 73 65 74 57 do={. [$setW
12930 36 30 47 20 73 73 69 64 3d 24 64 65 66 63 6f 6e 60G ssid=$defcon
12940 66 53 73 69 64 20 6d 6f 64 65 3d 24 64 65 66 63 fSsid mode=$defc
12950 6f 6e 66 4d 6f 64 65 20 70 61 73 73 3d 24 64 65 onfMode pass=$de
12960 66 63 6f 6e 66 50 61 73 73 77 6f 72 64 20 6c 69 fconfPassword li
12970 63 65 6e 73 65 3d 24 6c 69 63 65 6e 73 65 4c 65 cense=$licenseLe
12980 76 65 6c 20 62 61 63 6b 75 70 3d 24 62 61 63 6b vel backup=$back
12990 75 70 4c 69 6e 6b 20 69 70 4e 65 74 77 6f 72 6b upLink ipNetwork
129a0 3d 24 69 70 4e 65 74 77 6f 72 6b 5d 0a 20 20 7d =$ipNetwork]. }
129b0 0a 20 20 3a 69 66 20 28 24 6e 75 6d 57 6c 61 6e . :if ($numWlan
129c0 73 20 3e 20 30 20 26 26 20 24 62 61 63 6b 75 70 s > 0 && $backup
129d0 4c 69 6e 6b 20 3d 20 31 29 20 64 6f 3d 7b 0a 20 Link = 1) do={.
129e0 20 20 20 24 61 64 64 44 4c 20 28 22 23 7c 20 20 $addDL ("#|
129f0 2a 20 35 47 48 7a 20 69 6e 74 65 72 66 61 63 65 * 5GHz interface
12a00 20 69 73 20 73 65 74 20 61 73 20 57 36 30 47 20 is set as W60G
12a10 62 61 63 6b 75 70 20 75 73 69 6e 67 20 62 6f 6e backup using bon
12a20 64 69 6e 67 22 29 0a 20 20 20 20 3a 6c 6f 63 61 ding"). :loca
12a30 6c 20 6d 6f 64 65 20 22 73 74 61 74 69 6f 6e 2d l mode "station-
12a40 62 72 69 64 67 65 22 0a 20 20 20 20 3a 69 66 20 bridge". :if
12a50 28 24 64 65 66 63 6f 6e 66 4d 6f 64 65 20 3d 20 ($defconfMode =
12a60 22 6d 61 73 74 65 72 22 29 20 64 6f 3d 7b 0a 20 "master") do={.
12a70 20 20 20 20 20 3a 73 65 74 20 6d 6f 64 65 20 22 :set mode "
12a80 62 72 69 64 67 65 22 0a 20 20 20 20 7d 0a 20 20 bridge". }.
12a90 20 20 3a 69 66 20 28 24 6c 69 63 65 6e 73 65 4c :if ($licenseL
12aa0 65 76 65 6c 20 3d 20 34 29 20 64 6f 3d 7b 0a 20 evel = 4) do={.
12ab0 20 20 20 20 20 3a 69 66 20 28 24 64 65 66 63 6f :if ($defco
12ac0 6e 66 4d 6f 64 65 20 3d 20 22 6d 61 73 74 65 72 nfMode = "master
12ad0 22 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 20 20 ") do={.
12ae0 3a 73 65 74 20 6d 6f 64 65 20 22 62 72 69 64 67 :set mode "bridg
12af0 65 22 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 3d e". } else=
12b00 7b 0a 20 20 20 20 20 20 20 20 20 20 3a 69 66 20 {. :if
12b10 28 24 64 65 66 63 6f 6e 66 4d 6f 64 65 20 3d 20 ($defconfMode =
12b20 22 73 6c 61 76 65 22 29 20 64 6f 3d 7b 0a 20 20 "slave") do={.
12b30 20 20 20 20 20 20 20 20 20 20 3a 73 65 74 20 6d :set m
12b40 6f 64 65 20 22 73 74 61 74 69 6f 6e 2d 62 72 69 ode "station-bri
12b50 64 67 65 22 0a 20 20 20 20 20 20 20 20 20 20 7d dge". }
12b60 20 65 6c 73 65 3d 7b 0a 20 20 20 20 20 20 20 20 else={.
12b70 20 20 20 20 3a 73 65 74 20 6d 6f 64 65 20 22 61 :set mode "a
12b80 70 2d 62 72 69 64 67 65 22 0a 20 20 20 20 20 20 p-bridge".
12b90 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 }. }.
12ba0 20 20 7d 0a 0a 20 20 20 20 5b 24 73 65 74 57 6c }.. [$setWl
12bb0 61 6e 20 69 66 63 3d 22 77 6c 61 6e 31 22 20 6d an ifc="wlan1" m
12bc0 6f 64 65 3d 24 6d 6f 64 65 20 73 73 69 64 3d 24 ode=$mode ssid=$
12bd0 64 65 66 63 6f 6e 66 53 73 69 64 20 66 72 65 71 defconfSsid freq
12be0 75 65 6e 63 79 3d 24 66 72 65 71 75 65 6e 63 79 uency=$frequency
12bf0 20 77 50 72 6f 74 6f 3d 24 77 50 72 6f 74 6f 20 wProto=$wProto
12c00 64 69 73 74 61 6e 63 65 3d 24 64 69 73 74 61 6e distance=$distan
12c10 63 65 20 73 65 63 43 68 61 6e 6e 65 6c 3d 24 73 ce secChannel=$s
12c20 65 63 6f 6e 64 61 72 79 43 68 61 6e 6e 65 6c 20 econdaryChannel
12c30 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 3d 24 69 6e installation=$in
12c40 73 74 61 6c 6c 61 74 69 6f 6e 20 70 61 73 73 3d stallation pass=
12c50 24 77 69 66 69 50 61 73 73 4e 61 6d 65 5d 0a 20 $wifiPassName].
12c60 20 20 20 5b 24 73 65 74 42 6f 6e 64 69 6e 67 20 [$setBonding
12c70 6d 6f 64 65 3d 24 64 65 66 63 6f 6e 66 4d 6f 64 mode=$defconfMod
12c80 65 20 72 65 6d 6f 74 65 4d 61 63 3d 24 64 65 66 e remoteMac=$def
12c90 63 6f 6e 66 50 61 69 72 4d 61 63 5d 0a 0a 20 20 confPairMac]..
12ca0 20 20 3a 69 66 20 28 21 28 24 64 65 66 63 6f 6e :if (!($defcon
12cb0 66 4d 6f 64 65 20 3d 20 22 22 20 7c 7c 20 24 64 fMode = "" || $d
12cc0 65 66 63 6f 6e 66 4d 6f 64 65 20 3d 20 6e 69 6c efconfMode = nil
12cd0 29 29 20 64 6f 3d 7b 0a 20 20 20 20 20 20 24 61 )) do={. $a
12ce0 64 64 43 4c 20 28 22 3a 64 65 6c 61 79 20 31 22 ddCL (":delay 1"
12cf0 29 0a 20 20 20 20 20 20 24 61 64 64 43 4c 20 28 ). $addCL (
12d00 22 20 2f 69 6e 74 65 72 66 61 63 65 20 62 72 69 " /interface bri
12d10 64 67 65 20 70 6f 72 74 22 29 0a 20 20 20 20 20 dge port").
12d20 20 24 61 64 64 43 4c 20 28 22 20 20 20 61 64 64 $addCL (" add
12d30 20 62 72 69 64 67 65 3d 62 72 69 64 67 65 20 69 bridge=bridge i
12d40 6e 74 65 72 66 61 63 65 3d 62 6f 6e 64 31 20 63 nterface=bond1 c
12d50 6f 6d 6d 65 6e 74 3d 64 65 66 63 6f 6e 66 3b 22 omment=defconf;"
12d60 29 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 3a ). }. }.. :
12d70 69 66 20 28 24 6e 75 6d 57 6c 61 6e 73 20 3e 20 if ($numWlans >
12d80 30 20 26 26 20 24 62 61 63 6b 75 70 4c 69 6e 6b 0 && $backupLink
12d90 20 3d 20 30 29 20 64 6f 3d 7b 0a 20 20 20 20 24 = 0) do={. $
12da0 61 64 64 44 4c 20 28 22 23 7c 20 20 2a 20 35 47 addDL ("#| * 5G
12db0 48 7a 20 69 6e 74 65 72 66 61 63 65 20 69 73 20 Hz interface is
12dc0 73 65 74 20 61 73 20 62 72 69 64 67 65 64 20 69 set as bridged i
12dd0 6e 74 65 72 66 61 63 65 22 29 0a 20 20 20 20 3a nterface"). :
12de0 6c 6f 63 61 6c 20 6d 6f 64 65 20 22 73 74 61 74 local mode "stat
12df0 69 6f 6e 2d 62 72 69 64 67 65 22 0a 20 20 20 20 ion-bridge".
12e00 3a 69 66 20 28 24 64 65 66 63 6f 6e 66 4d 6f 64 :if ($defconfMod
12e10 65 20 3d 20 22 6d 61 73 74 65 72 22 29 20 64 6f e = "master") do
12e20 3d 7b 0a 20 20 20 20 20 20 3a 73 65 74 20 6d 6f ={. :set mo
12e30 64 65 20 22 62 72 69 64 67 65 22 0a 20 20 20 20 de "bridge".
12e40 7d 0a 20 20 20 20 3a 69 66 20 28 24 6c 69 63 65 }. :if ($lice
12e50 6e 73 65 4c 65 76 65 6c 20 3d 20 34 29 20 64 6f nseLevel = 4) do
12e60 3d 7b 0a 20 20 20 20 20 20 3a 73 65 74 20 6d 6f ={. :set mo
12e70 64 65 20 22 61 70 2d 62 72 69 64 67 65 22 0a 20 de "ap-bridge".
12e80 20 20 20 7d 0a 0a 20 20 20 20 5b 24 73 65 74 57 }.. [$setW
12e90 6c 61 6e 20 69 66 63 3d 22 77 6c 61 6e 31 22 20 lan ifc="wlan1"
12ea0 6d 6f 64 65 3d 24 6d 6f 64 65 20 73 73 69 64 3d mode=$mode ssid=
12eb0 24 64 65 66 63 6f 6e 66 53 73 69 64 20 66 72 65 $defconfSsid fre
12ec0 71 75 65 6e 63 79 3d 24 66 72 65 71 75 65 6e 63 quency=$frequenc
12ed0 79 20 77 50 72 6f 74 6f 3d 24 77 50 72 6f 74 6f y wProto=$wProto
12ee0 20 64 69 73 74 61 6e 63 65 3d 24 64 69 73 74 61 distance=$dista
12ef0 6e 63 65 20 73 65 63 43 68 61 6e 6e 65 6c 3d 24 nce secChannel=$
12f00 73 65 63 6f 6e 64 61 72 79 43 68 61 6e 6e 65 6c secondaryChannel
12f10 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 3d 24 69 installation=$i
12f20 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 70 61 73 73 nstallation pass
12f30 3d 24 77 69 66 69 50 61 73 73 4e 61 6d 65 5d 0a =$wifiPassName].
12f40 0a 20 20 20 20 24 61 64 64 43 4c 20 28 22 3a 64 . $addCL (":d
12f50 65 6c 61 79 20 31 22 29 0a 20 20 20 20 24 61 64 elay 1"). $ad
12f60 64 43 4c 20 28 22 20 2f 69 6e 74 65 72 66 61 63 dCL (" /interfac
12f70 65 20 62 72 69 64 67 65 20 70 6f 72 74 22 29 0a e bridge port").
12f80 20 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 $addCL ("
12f90 61 64 64 20 62 72 69 64 67 65 3d 62 72 69 64 67 add bridge=bridg
12fa0 65 20 69 6e 74 65 72 66 61 63 65 3d 77 6c 61 6e e interface=wlan
12fb0 31 20 63 6f 6d 6d 65 6e 74 3d 64 65 66 63 6f 6e 1 comment=defcon
12fc0 66 3b 22 29 0a 20 20 7d 0a 0a 20 20 3a 69 66 20 f;"). }.. :if
12fd0 28 24 6e 65 65 64 41 64 6d 69 6e 50 61 73 73 20 ($needAdminPass
12fe0 3d 20 31 29 20 64 6f 3d 7b 0a 20 20 20 20 5b 24 = 1) do={. [$
12ff0 73 65 74 41 64 6d 69 6e 50 61 73 73 5d 0a 20 20 setAdminPass].
13000 7d 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d }.}..#----------
13010 2d 2d 2d 20 53 77 69 74 63 68 20 2d 2d 2d 2d 2d --- Switch -----
13020 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
13030 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
13040 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
13050 2d 2d 2d 2d 2d 0a 3a 69 66 20 28 24 63 6f 6e 66 -----.:if ($conf
13060 69 67 4d 6f 64 65 20 3d 20 22 73 77 69 74 63 68 igMode = "switch
13070 22 29 20 64 6f 3d 7b 0a 20 20 24 61 64 64 44 4c ") do={. $addDL
13080 20 28 5c 0a 20 20 22 23 7c 20 53 77 69 74 63 68 (\. "#| Switch
13090 20 6d 6f 64 65 3a 24 4e 4c 5c 0a 20 20 20 23 7c mode:$NL\. #|
130a0 20 20 2a 20 61 6c 6c 20 69 6e 74 65 72 66 61 63 * all interfac
130b0 65 73 20 73 77 69 74 63 68 65 64 3b 22 29 0a 0a es switched;")..
130c0 20 20 5b 24 73 65 74 4c 61 6e 20 6c 61 6e 50 6f [$setLan lanPo
130d0 72 74 3d 24 6c 61 6e 50 6f 72 74 20 64 68 63 70 rt=$lanPort dhcp
130e0 4d 6f 64 65 3d 30 20 75 73 65 44 65 74 4e 65 74 Mode=0 useDetNet
130f0 3d 24 75 73 65 44 65 74 4e 65 74 20 69 70 4e 65 =$useDetNet ipNe
13100 74 77 6f 72 6b 3d 24 69 70 4e 65 74 77 6f 72 6b twork=$ipNetwork
13110 5d 0a 0a 20 20 3a 69 66 20 28 24 6e 65 65 64 41 ].. :if ($needA
13120 64 6d 69 6e 50 61 73 73 20 3d 20 31 29 20 64 6f dminPass = 1) do
13130 3d 7b 0a 20 20 20 20 5b 24 73 65 74 41 64 6d 69 ={. [$setAdmi
13140 6e 50 61 73 73 5d 0a 20 20 7d 0a 7d 0a 0a 0a 23 nPass]. }.}...#
13150 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 4d 6f 64 -------------Mod
13160 65 20 62 75 74 74 6f 6e 20 73 65 74 74 69 6e 67 e button setting
13170 73 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d s---------------
13180 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
13190 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a ---------------.
131a0 3a 69 66 20 28 24 61 64 64 44 61 72 6b 4d 6f 64 :if ($addDarkMod
131b0 65 20 3d 20 31 29 20 64 6f 3d 7b 0a 20 20 5b 24 e = 1) do={. [$
131c0 73 65 74 4d 6f 64 65 42 75 74 74 6f 6e 5d 0a 7d setModeButton].}
131d0 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..#-------------
131e0 57 50 53 20 62 75 74 74 6f 6e 20 73 65 74 74 69 WPS button setti
131f0 6e 67 73 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ngs-------------
13200 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
13210 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
13220 2d 0a 3a 69 66 20 28 24 68 61 73 57 70 73 42 75 -.:if ($hasWpsBu
13230 74 74 6f 6e 20 3d 20 31 29 20 64 6f 3d 7b 0a 20 tton = 1) do={.
13240 20 5b 24 73 65 74 57 70 73 42 75 74 74 6f 6e 5d [$setWpsButton]
13250 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .}..#-----------
13260 2d 2d 49 6e 74 65 72 66 61 63 65 20 71 75 65 75 --Interface queu
13270 65 20 73 65 74 74 69 6e 67 73 2d 2d 2d 2d 2d 2d e settings------
13280 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
13290 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
132a0 2d 2d 2d 2d 2d 2d 2d 2d 0a 3a 69 66 20 28 21 28 --------.:if (!(
132b0 24 64 65 66 63 6f 6e 66 4c 74 65 3d 22 22 20 7c $defconfLte="" |
132c0 7c 20 5b 3a 74 79 70 65 6f 66 20 24 64 65 66 63 | [:typeof $defc
132d0 6f 6e 66 4c 74 65 5d 3d 20 22 6e 6f 74 68 69 6e onfLte]= "nothin
132e0 67 22 29 20 7c 7c 20 24 6d 61 72 6b 65 74 69 6e g") || $marketin
132f0 67 4e 61 6d 65 7e 22 4c 54 45 22 29 20 64 6f 3d gName~"LTE") do=
13300 7b 0a 20 20 20 20 5b 24 73 65 74 46 71 43 6f 64 {. [$setFqCod
13310 65 6c 51 75 65 75 65 73 5d 0a 7d 0a 0a 23 2d 2d elQueues].}..#--
13320 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 44 69 73 6b 20 -----------Disk
13330 73 68 61 72 69 6e 67 20 73 65 74 74 69 6e 67 73 sharing settings
13340 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
13350 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
13360 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3a --------------.:
13370 69 66 20 28 24 6e 65 65 64 44 69 73 6b 53 68 61 if ($needDiskSha
13380 72 69 6e 67 20 3d 20 31 29 20 64 6f 3d 7b 0a 20 ring = 1) do={.
13390 20 5b 24 73 65 74 44 69 73 6b 53 68 61 72 69 6e [$setDiskSharin
133a0 67 20 6c 61 6e 50 6f 72 74 3d 24 6c 61 6e 50 6f g lanPort=$lanPo
133b0 72 74 5d 0a 7d 0a 0a 23 20 22 61 70 70 6c 79 22 rt].}..# "apply"
133c0 20 63 6c 6f 73 69 6e 67 20 62 72 61 63 65 0a 24 closing brace.$
133d0 61 64 64 43 4c 20 28 22 7d 22 29 0a 0a 24 61 64 addCL ("}")..$ad
133e0 64 43 4c 20 28 5c 0a 22 23 2d 2d 2d 2d 2d 2d 2d dCL (\."#-------
133f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
13400 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
13410 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
13420 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
13430 2d 2d 2d 2d 2d 2d 2d 2d 24 4e 4c 5c 0a 23 20 52 --------$NL\.# R
13440 65 76 65 72 74 20 63 6f 6e 66 69 67 75 72 61 74 evert configurat
13450 69 6f 6e 2e 24 4e 4c 5c 0a 23 20 74 68 65 73 65 ion.$NL\.# these
13460 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 65 78 commands are ex
13470 65 63 75 74 65 64 20 69 66 20 75 73 65 72 20 72 ecuted if user r
13480 65 71 75 65 73 74 73 20 74 6f 20 72 65 6d 6f 76 equests to remov
13490 65 20 64 65 66 61 75 6c 74 20 63 6f 6e 66 69 67 e default config
134a0 75 72 61 74 69 6f 6e 24 4e 4c 5c 0a 23 2d 2d 2d uration$NL\.#---
134b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
134c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
134d0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
134e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
134f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 22 29 0a 0a ------------")..
13500 24 61 64 64 43 4c 20 28 22 3a 69 66 20 28 5c 24 $addCL (":if (\$
13510 61 63 74 69 6f 6e 20 3d 20 5c 22 72 65 76 65 72 action = \"rever
13520 74 5c 22 29 20 64 6f 3d 7b 22 29 0a 0a 24 61 64 t\") do={")..$ad
13530 64 43 4c 20 28 22 20 3a 69 66 20 28 21 28 5c 24 dCL (" :if (!(\$
13540 6b 65 65 70 55 73 65 72 73 20 3d 20 5c 22 79 65 keepUsers = \"ye
13550 73 5c 22 29 29 20 64 6f 3d 7b 22 29 0a 24 61 64 s\")) do={").$ad
13560 64 43 4c 20 28 22 20 20 20 2f 75 73 65 72 20 73 dCL (" /user s
13570 65 74 20 61 64 6d 69 6e 20 70 61 73 73 77 6f 72 et admin passwor
13580 64 3d 5c 22 5c 22 22 29 0a 24 61 64 64 43 4c 20 d=\"\"").$addCL
13590 28 22 20 20 20 3a 64 65 6c 61 79 20 30 2e 35 22 (" :delay 0.5"
135a0 29 0a 24 61 64 64 43 4c 20 28 22 20 20 20 2f 75 ).$addCL (" /u
135b0 73 65 72 20 65 78 70 69 72 65 2d 70 61 73 73 77 ser expire-passw
135c0 6f 72 64 20 61 64 6d 69 6e 20 22 29 0a 24 61 64 ord admin ").$ad
135d0 64 43 4c 20 28 22 20 7d 22 29 0a 0a 3a 69 66 20 dCL (" }")..:if
135e0 28 24 61 64 64 44 61 72 6b 4d 6f 64 65 20 3d 20 ($addDarkMode =
135f0 31 29 20 64 6f 3d 7b 0a 24 61 64 64 43 4c 20 28 1) do={.$addCL (
13600 22 20 2f 73 79 73 74 65 6d 20 72 6f 75 74 65 72 " /system router
13610 62 6f 61 72 64 20 6d 6f 64 65 2d 62 75 74 74 6f board mode-butto
13620 6e 20 73 65 74 20 65 6e 61 62 6c 65 64 3d 6e 6f n set enabled=no
13630 22 29 0a 24 61 64 64 43 4c 20 28 22 20 2f 73 79 ").$addCL (" /sy
13640 73 74 65 6d 20 72 6f 75 74 65 72 62 6f 61 72 64 stem routerboard
13650 20 6d 6f 64 65 2d 62 75 74 74 6f 6e 20 73 65 74 mode-button set
13660 20 6f 6e 2d 65 76 65 6e 74 3d 5c 22 5c 22 22 29 on-event=\"\"")
13670 0a 24 61 64 64 43 4c 20 28 22 20 2f 73 79 73 74 .$addCL (" /syst
13680 65 6d 20 73 63 72 69 70 74 20 72 65 6d 6f 76 65 em script remove
13690 20 5b 66 69 6e 64 20 63 6f 6d 6d 65 6e 74 7e 5c [find comment~\
136a0 22 64 65 66 63 6f 6e 66 5c 22 5d 22 29 0a 7d 0a "defconf\"]").}.
136b0 3a 69 66 20 28 24 68 61 73 57 70 73 42 75 74 74 :if ($hasWpsButt
136c0 6f 6e 20 3d 20 31 29 20 64 6f 3d 7b 0a 24 61 64 on = 1) do={.$ad
136d0 64 43 4c 20 28 22 20 2f 73 79 73 74 65 6d 20 72 dCL (" /system r
136e0 6f 75 74 65 72 62 6f 61 72 64 20 77 70 73 2d 62 outerboard wps-b
136f0 75 74 74 6f 6e 20 73 65 74 20 65 6e 61 62 6c 65 utton set enable
13700 64 3d 6e 6f 22 29 0a 24 61 64 64 43 4c 20 28 22 d=no").$addCL ("
13710 20 2f 73 79 73 74 65 6d 20 72 6f 75 74 65 72 62 /system routerb
13720 6f 61 72 64 20 77 70 73 2d 62 75 74 74 6f 6e 20 oard wps-button
13730 73 65 74 20 6f 6e 2d 65 76 65 6e 74 3d 5c 22 5c set on-event=\"\
13740 22 22 29 0a 24 61 64 64 43 4c 20 28 22 20 2f 73 "").$addCL (" /s
13750 79 73 74 65 6d 20 73 63 72 69 70 74 20 72 65 6d ystem script rem
13760 6f 76 65 20 5b 66 69 6e 64 20 63 6f 6d 6d 65 6e ove [find commen
13770 74 7e 5c 22 64 65 66 63 6f 6e 66 5c 22 5d 22 29 t~\"defconf\"]")
13780 0a 7d 0a 0a 3a 69 66 20 28 21 28 24 64 65 66 63 .}..:if (!($defc
13790 6f 6e 66 4c 74 65 3d 22 22 20 7c 7c 20 5b 3a 74 onfLte="" || [:t
137a0 79 70 65 6f 66 20 24 64 65 66 63 6f 6e 66 4c 74 ypeof $defconfLt
137b0 65 5d 3d 20 22 6e 6f 74 68 69 6e 67 22 29 20 7c e]= "nothing") |
137c0 7c 20 24 6d 61 72 6b 65 74 69 6e 67 4e 61 6d 65 | $marketingName
137d0 7e 22 4c 54 45 22 29 20 64 6f 3d 7b 0a 24 61 64 ~"LTE") do={.$ad
137e0 64 43 4c 20 28 22 20 2f 71 75 65 75 65 20 69 6e dCL (" /queue in
137f0 74 65 72 66 61 63 65 20 73 65 74 20 5b 66 69 6e terface set [fin
13800 64 20 64 65 66 61 75 6c 74 2d 71 75 65 75 65 3d d default-queue=
13810 6f 6e 6c 79 2d 68 61 72 64 77 61 72 65 2d 71 75 only-hardware-qu
13820 65 75 65 5d 20 71 75 65 75 65 3d 6f 6e 6c 79 2d eue] queue=only-
13830 68 61 72 64 77 61 72 65 2d 71 75 65 75 65 22 29 hardware-queue")
13840 0a 24 61 64 64 43 4c 20 28 22 20 2f 71 75 65 75 .$addCL (" /queu
13850 65 20 74 79 70 65 20 72 65 6d 6f 76 65 20 5b 66 e type remove [f
13860 69 6e 64 20 6e 61 6d 65 3d 66 71 2d 63 6f 64 65 ind name=fq-code
13870 6c 2d 65 74 68 65 72 6e 65 74 2d 64 65 66 61 75 l-ethernet-defau
13880 6c 74 5d 22 29 0a 7d 0a 0a 3a 69 66 20 28 24 6e lt]").}..:if ($n
13890 65 65 64 44 69 73 6b 53 68 61 72 69 6e 67 20 3d eedDiskSharing =
138a0 20 31 29 20 64 6f 3d 7b 0a 24 61 64 64 43 4c 20 1) do={.$addCL
138b0 28 22 20 2f 64 69 73 6b 20 73 65 74 74 69 6e 67 (" /disk setting
138c0 73 22 29 0a 24 61 64 64 43 4c 20 28 22 20 73 65 s").$addCL (" se
138d0 74 20 61 75 74 6f 2d 73 6d 62 2d 73 68 61 72 69 t auto-smb-shari
138e0 6e 67 3d 6e 6f 20 61 75 74 6f 2d 6d 65 64 69 61 ng=no auto-media
138f0 2d 73 68 61 72 69 6e 67 3d 6e 6f 20 61 75 74 6f -sharing=no auto
13900 2d 6d 65 64 69 61 2d 69 6e 74 65 72 66 61 63 65 -media-interface
13910 3d 6e 6f 6e 65 22 29 0a 7d 0a 0a 24 61 64 64 43 =none").}..$addC
13920 4c 20 28 22 20 2f 69 70 20 66 69 72 65 77 61 6c L (" /ip firewal
13930 6c 20 66 69 6c 74 65 72 20 72 65 6d 6f 76 65 20 l filter remove
13940 5b 66 69 6e 64 20 63 6f 6d 6d 65 6e 74 7e 5c 22 [find comment~\"
13950 64 65 66 63 6f 6e 66 5c 22 5d 22 29 0a 3a 69 66 defconf\"]").:if
13960 20 28 24 69 70 76 36 45 6e 61 62 6c 65 64 20 3d ($ipv6Enabled =
13970 20 31 29 20 64 6f 3d 7b 0a 20 20 24 61 64 64 43 1) do={. $addC
13980 4c 20 28 22 20 2f 69 70 76 36 20 66 69 72 65 77 L (" /ipv6 firew
13990 61 6c 6c 20 66 69 6c 74 65 72 20 72 65 6d 6f 76 all filter remov
139a0 65 20 5b 66 69 6e 64 20 63 6f 6d 6d 65 6e 74 7e e [find comment~
139b0 5c 22 64 65 66 63 6f 6e 66 5c 22 5d 22 29 0a 20 \"defconf\"]").
139c0 20 24 61 64 64 43 4c 20 28 22 20 2f 69 70 76 36 $addCL (" /ipv6
139d0 20 66 69 72 65 77 61 6c 6c 20 61 64 64 72 65 73 firewall addres
139e0 73 2d 6c 69 73 74 20 72 65 6d 6f 76 65 20 5b 66 s-list remove [f
139f0 69 6e 64 20 63 6f 6d 6d 65 6e 74 7e 5c 22 64 65 ind comment~\"de
13a00 66 63 6f 6e 66 5c 22 5d 22 29 0a 7d 0a 24 61 64 fconf\"]").}.$ad
13a10 64 43 4c 20 28 22 20 2f 69 70 20 66 69 72 65 77 dCL (" /ip firew
13a20 61 6c 6c 20 6e 61 74 20 72 65 6d 6f 76 65 20 5b all nat remove [
13a30 66 69 6e 64 20 63 6f 6d 6d 65 6e 74 7e 5c 22 64 find comment~\"d
13a40 65 66 63 6f 6e 66 5c 22 5d 22 29 0a 23 4e 4f 54 efconf\"]").#NOT
13a50 45 3a 20 6e 6f 74 20 75 73 65 64 20 69 66 20 64 E: not used if d
13a60 65 74 6e 65 74 0a 24 61 64 64 43 4c 20 28 22 20 etnet.$addCL ("
13a70 2f 69 6e 74 65 72 66 61 63 65 20 6c 69 73 74 20 /interface list
13a80 6d 65 6d 62 65 72 20 72 65 6d 6f 76 65 20 5b 66 member remove [f
13a90 69 6e 64 20 63 6f 6d 6d 65 6e 74 7e 5c 22 64 65 ind comment~\"de
13aa0 66 63 6f 6e 66 5c 22 5d 22 29 0a 24 61 64 64 43 fconf\"]").$addC
13ab0 4c 20 28 22 20 2f 69 6e 74 65 72 66 61 63 65 20 L (" /interface
13ac0 64 65 74 65 63 74 2d 69 6e 74 65 72 6e 65 74 20 detect-internet
13ad0 73 65 74 20 64 65 74 65 63 74 2d 69 6e 74 65 72 set detect-inter
13ae0 66 61 63 65 2d 6c 69 73 74 3d 6e 6f 6e 65 22 29 face-list=none")
13af0 0a 24 61 64 64 43 4c 20 28 22 20 2f 69 6e 74 65 .$addCL (" /inte
13b00 72 66 61 63 65 20 64 65 74 65 63 74 2d 69 6e 74 rface detect-int
13b10 65 72 6e 65 74 20 73 65 74 20 6c 61 6e 2d 69 6e ernet set lan-in
13b20 74 65 72 66 61 63 65 2d 6c 69 73 74 3d 6e 6f 6e terface-list=non
13b30 65 22 29 0a 24 61 64 64 43 4c 20 28 22 20 2f 69 e").$addCL (" /i
13b40 6e 74 65 72 66 61 63 65 20 64 65 74 65 63 74 2d nterface detect-
13b50 69 6e 74 65 72 6e 65 74 20 73 65 74 20 77 61 6e internet set wan
13b60 2d 69 6e 74 65 72 66 61 63 65 2d 6c 69 73 74 3d -interface-list=
13b70 6e 6f 6e 65 22 29 0a 24 61 64 64 43 4c 20 28 22 none").$addCL ("
13b80 20 2f 69 6e 74 65 72 66 61 63 65 20 64 65 74 65 /interface dete
13b90 63 74 2d 69 6e 74 65 72 6e 65 74 20 73 65 74 20 ct-internet set
13ba0 69 6e 74 65 72 6e 65 74 2d 69 6e 74 65 72 66 61 internet-interfa
13bb0 63 65 2d 6c 69 73 74 3d 6e 6f 6e 65 22 29 0a 24 ce-list=none").$
13bc0 61 64 64 43 4c 20 28 22 20 2f 69 6e 74 65 72 66 addCL (" /interf
13bd0 61 63 65 20 6c 69 73 74 20 72 65 6d 6f 76 65 20 ace list remove
13be0 5b 66 69 6e 64 20 63 6f 6d 6d 65 6e 74 7e 5c 22 [find comment~\"
13bf0 64 65 66 63 6f 6e 66 5c 22 5d 22 29 0a 0a 24 61 defconf\"]")..$a
13c00 64 64 43 4c 20 28 22 20 2f 74 6f 6f 6c 20 6d 61 ddCL (" /tool ma
13c10 63 2d 73 65 72 76 65 72 20 73 65 74 20 61 6c 6c c-server set all
13c20 6f 77 65 64 2d 69 6e 74 65 72 66 61 63 65 2d 6c owed-interface-l
13c30 69 73 74 3d 61 6c 6c 22 29 0a 24 61 64 64 43 4c ist=all").$addCL
13c40 20 28 22 20 2f 74 6f 6f 6c 20 6d 61 63 2d 73 65 (" /tool mac-se
13c50 72 76 65 72 20 6d 61 63 2d 77 69 6e 62 6f 78 20 rver mac-winbox
13c60 73 65 74 20 61 6c 6c 6f 77 65 64 2d 69 6e 74 65 set allowed-inte
13c70 72 66 61 63 65 2d 6c 69 73 74 3d 61 6c 6c 22 29 rface-list=all")
13c80 0a 0a 24 61 64 64 43 4c 20 28 22 20 2f 69 70 20 ..$addCL (" /ip
13c90 6e 65 69 67 68 62 6f 72 20 64 69 73 63 6f 76 65 neighbor discove
13ca0 72 79 2d 73 65 74 74 69 6e 67 73 20 73 65 74 20 ry-settings set
13cb0 64 69 73 63 6f 76 65 72 2d 69 6e 74 65 72 66 61 discover-interfa
13cc0 63 65 2d 6c 69 73 74 3d 21 64 79 6e 61 6d 69 63 ce-list=!dynamic
13cd0 22 29 0a 0a 23 72 65 6d 6f 76 65 20 44 48 43 50 ")..#remove DHCP
13ce0 20 63 6f 6e 66 69 67 0a 3a 69 66 20 28 24 64 68 config.:if ($dh
13cf0 63 70 45 6e 61 62 6c 65 64 20 3d 20 31 29 20 64 cpEnabled = 1) d
13d00 6f 3d 7b 0a 20 20 24 61 64 64 43 4c 20 28 22 20 o={. $addCL ("
13d10 20 20 3a 6c 6f 63 61 6c 20 6f 20 5b 2f 69 70 20 :local o [/ip
13d20 64 68 63 70 2d 73 65 72 76 65 72 20 6e 65 74 77 dhcp-server netw
13d30 6f 72 6b 20 66 69 6e 64 20 63 6f 6d 6d 65 6e 74 ork find comment
13d40 3d 5c 22 64 65 66 63 6f 6e 66 5c 22 5d 22 29 0a =\"defconf\"]").
13d50 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 3a 69 $addCL (" :i
13d60 66 20 28 5b 3a 6c 65 6e 20 5c 24 6f 5d 20 21 3d f ([:len \$o] !=
13d70 20 30 29 20 64 6f 3d 7b 20 2f 69 70 20 64 68 63 0) do={ /ip dhc
13d80 70 2d 73 65 72 76 65 72 20 6e 65 74 77 6f 72 6b p-server network
13d90 20 72 65 6d 6f 76 65 20 5c 24 6f 20 7d 22 29 0a remove \$o }").
13da0 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 3a . $addCL (" :
13db0 6c 6f 63 61 6c 20 6f 20 5b 2f 69 70 20 64 68 63 local o [/ip dhc
13dc0 70 2d 73 65 72 76 65 72 20 66 69 6e 64 20 6e 61 p-server find na
13dd0 6d 65 3d 5c 22 64 65 66 63 6f 6e 66 5c 22 20 21 me=\"defconf\" !
13de0 64 69 73 61 62 6c 65 64 5d 22 29 0a 20 20 24 61 disabled]"). $a
13df0 64 64 43 4c 20 28 22 20 20 20 3a 69 66 20 28 5b ddCL (" :if ([
13e00 3a 6c 65 6e 20 5c 24 6f 5d 20 21 3d 20 30 29 20 :len \$o] != 0)
13e10 64 6f 3d 7b 20 2f 69 70 20 64 68 63 70 2d 73 65 do={ /ip dhcp-se
13e20 72 76 65 72 20 72 65 6d 6f 76 65 20 5c 24 6f 20 rver remove \$o
13e30 7d 22 29 0a 0a 20 20 24 61 64 64 43 4c 20 28 22 }").. $addCL ("
13e40 20 20 20 2f 69 70 20 70 6f 6f 6c 20 7b 22 29 0a /ip pool {").
13e50 20 20 24 61 64 64 43 4c 20 28 22 20 20 20 20 20 $addCL ("
13e60 3a 6c 6f 63 61 6c 20 6f 20 5b 66 69 6e 64 20 6e :local o [find n
13e70 61 6d 65 3d 5c 22 64 65 66 61 75 6c 74 2d 64 68 ame=\"default-dh
13e80 63 70 5c 22 20 72 61 6e 67 65 73 3d 24 69 70 4e cp\" ranges=$ipN
13e90 65 74 77 6f 72 6b 2e 31 30 2d 24 69 70 4e 65 74 etwork.10-$ipNet
13ea0 77 6f 72 6b 2e 32 35 34 5d 22 29 0a 20 20 24 61 work.254]"). $a
13eb0 64 64 43 4c 20 28 22 20 20 20 20 20 3a 69 66 20 ddCL (" :if
13ec0 28 5b 3a 6c 65 6e 20 5c 24 6f 5d 20 21 3d 20 30 ([:len \$o] != 0
13ed0 29 20 64 6f 3d 7b 20 72 65 6d 6f 76 65 20 5c 24 ) do={ remove \$
13ee0 6f 20 7d 22 29 0a 20 20 24 61 64 64 43 4c 20 28 o }"). $addCL (
13ef0 22 20 20 20 7d 22 29 0a 0a 20 20 23 20 4e 4f 54 " }").. # NOT
13f00 45 3a 20 6e 6f 74 20 75 73 65 64 20 69 66 20 44 E: not used if D
13f10 45 54 4e 45 54 0a 20 20 24 61 64 64 43 4c 20 28 ETNET. $addCL (
13f20 22 20 20 20 3a 6c 6f 63 61 6c 20 6f 20 5b 2f 69 " :local o [/i
13f30 70 20 64 68 63 70 2d 63 6c 69 65 6e 74 20 66 69 p dhcp-client fi
13f40 6e 64 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 nd comment=\"def
13f50 63 6f 6e 66 5c 22 5d 22 29 0a 20 20 24 61 64 64 conf\"]"). $add
13f60 43 4c 20 28 22 20 20 20 3a 69 66 20 28 5b 3a 6c CL (" :if ([:l
13f70 65 6e 20 5c 24 6f 5d 20 21 3d 20 30 29 20 64 6f en \$o] != 0) do
13f80 3d 7b 20 2f 69 70 20 64 68 63 70 2d 63 6c 69 65 ={ /ip dhcp-clie
13f90 6e 74 20 72 65 6d 6f 76 65 20 5c 24 6f 20 7d 22 nt remove \$o }"
13fa0 29 0a 7d 0a 0a 24 61 64 64 43 4c 20 28 22 20 2f ).}..$addCL (" /
13fb0 69 70 20 64 6e 73 20 7b 22 29 0a 24 61 64 64 43 ip dns {").$addC
13fc0 4c 20 28 22 20 20 20 73 65 74 20 61 6c 6c 6f 77 L (" set allow
13fd0 2d 72 65 6d 6f 74 65 2d 72 65 71 75 65 73 74 73 -remote-requests
13fe0 3d 6e 6f 22 29 0a 24 61 64 64 43 4c 20 28 22 20 =no").$addCL ("
13ff0 20 20 3a 6c 6f 63 61 6c 20 6f 20 5b 73 74 61 74 :local o [stat
14000 69 63 20 66 69 6e 64 20 63 6f 6d 6d 65 6e 74 3d ic find comment=
14010 5c 22 64 65 66 63 6f 6e 66 5c 22 5d 22 29 0a 24 \"defconf\"]").$
14020 61 64 64 43 4c 20 28 22 20 20 20 3a 69 66 20 28 addCL (" :if (
14030 5b 3a 6c 65 6e 20 5c 24 6f 5d 20 21 3d 20 30 29 [:len \$o] != 0)
14040 20 64 6f 3d 7b 20 73 74 61 74 69 63 20 72 65 6d do={ static rem
14050 6f 76 65 20 5c 24 6f 20 7d 22 29 0a 24 61 64 64 ove \$o }").$add
14060 43 4c 20 28 22 20 7d 22 29 0a 0a 24 61 64 64 43 CL (" }")..$addC
14070 4c 20 28 22 20 2f 69 70 20 61 64 64 72 65 73 73 L (" /ip address
14080 20 7b 22 29 0a 24 61 64 64 43 4c 20 28 22 20 20 {").$addCL ("
14090 20 3a 6c 6f 63 61 6c 20 6f 20 5b 66 69 6e 64 20 :local o [find
140a0 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e comment=\"defcon
140b0 66 5c 22 5d 22 29 0a 24 61 64 64 43 4c 20 28 22 f\"]").$addCL ("
140c0 20 20 20 3a 69 66 20 28 5b 3a 6c 65 6e 20 5c 24 :if ([:len \$
140d0 6f 5d 20 21 3d 20 30 29 20 64 6f 3d 7b 20 72 65 o] != 0) do={ re
140e0 6d 6f 76 65 20 5c 24 6f 20 7d 22 29 0a 24 61 64 move \$o }").$ad
140f0 64 43 4c 20 28 22 20 7d 22 29 0a 0a 23 20 72 65 dCL (" }")..# re
14100 73 65 74 20 65 74 68 65 72 6e 65 74 73 0a 24 61 set ethernets.$a
14110 64 64 43 4c 20 28 22 20 3a 66 6f 72 65 61 63 68 ddCL (" :foreach
14120 20 69 66 61 63 65 20 69 6e 3d 5b 2f 69 6e 74 65 iface in=[/inte
14130 72 66 61 63 65 20 65 74 68 65 72 6e 65 74 20 66 rface ethernet f
14140 69 6e 64 5d 20 64 6f 3d 7b 22 29 0a 24 61 64 64 ind] do={").$add
14150 43 4c 20 28 22 20 20 20 2f 69 6e 74 65 72 66 61 CL (" /interfa
14160 63 65 20 65 74 68 65 72 6e 65 74 20 73 65 74 20 ce ethernet set
14170 5c 24 69 66 61 63 65 20 6e 61 6d 65 3d 5b 67 65 \$iface name=[ge
14180 74 20 5c 24 69 66 61 63 65 20 64 65 66 61 75 6c t \$iface defaul
14190 74 2d 6e 61 6d 65 5d 22 29 0a 24 61 64 64 43 4c t-name]").$addCL
141a0 20 28 22 20 7d 22 29 0a 23 20 72 65 6d 6f 76 65 (" }").# remove
141b0 20 62 72 69 64 67 65 0a 24 61 64 64 43 4c 20 28 bridge.$addCL (
141c0 22 20 2f 69 6e 74 65 72 66 61 63 65 20 62 72 69 " /interface bri
141d0 64 67 65 20 70 6f 72 74 20 72 65 6d 6f 76 65 20 dge port remove
141e0 5b 66 69 6e 64 20 63 6f 6d 6d 65 6e 74 3d 5c 22 [find comment=\"
141f0 64 65 66 63 6f 6e 66 5c 22 5d 22 29 0a 24 61 64 defconf\"]").$ad
14200 64 43 4c 20 28 22 20 2f 69 6e 74 65 72 66 61 63 dCL (" /interfac
14210 65 20 62 72 69 64 67 65 20 72 65 6d 6f 76 65 20 e bridge remove
14220 5b 66 69 6e 64 20 63 6f 6d 6d 65 6e 74 3d 5c 22 [find comment=\"
14230 64 65 66 63 6f 6e 66 5c 22 5d 22 29 0a 0a 24 61 defconf\"]")..$a
14240 64 64 43 4c 20 28 22 20 2f 69 6e 74 65 72 66 61 ddCL (" /interfa
14250 63 65 20 62 6f 6e 64 69 6e 67 20 72 65 6d 6f 76 ce bonding remov
14260 65 20 5b 66 69 6e 64 20 63 6f 6d 6d 65 6e 74 3d e [find comment=
14270 5c 22 64 65 66 63 6f 6e 66 5c 22 5d 22 29 0a 0a \"defconf\"]")..
14280 3a 69 66 20 28 24 77 69 72 65 6c 65 73 73 45 6e :if ($wirelessEn
14290 61 62 6c 65 64 20 3d 20 31 20 26 26 20 24 75 73 abled = 1 && $us
142a0 69 6e 67 57 69 66 69 50 61 63 6b 20 3d 20 31 29 ingWifiPack = 1)
142b0 20 64 6f 3d 7b 0a 20 20 23 20 72 65 73 65 74 20 do={. # reset
142c0 77 69 72 65 6c 65 73 73 0a 20 20 3a 69 66 20 28 wireless. :if (
142d0 24 6e 75 6d 57 6c 61 6e 73 20 3e 20 30 29 20 64 $numWlans > 0) d
142e0 6f 3d 7b 0a 20 20 20 20 3a 66 6f 72 20 69 20 66 o={. :for i f
142f0 72 6f 6d 3d 31 20 74 6f 3d 24 6e 75 6d 57 6c 61 rom=1 to=$numWla
14300 6e 73 20 64 6f 3d 7b 0a 20 20 20 20 20 20 24 61 ns do={. $a
14310 64 64 43 4c 20 28 22 20 2f 69 6e 74 65 72 66 61 ddCL (" /interfa
14320 63 65 20 77 69 66 69 20 72 65 73 65 74 20 77 69 ce wifi reset wi
14330 66 69 24 69 22 29 0a 20 20 20 20 7d 0a 0a 20 20 fi$i"). }..
14340 20 20 3a 69 66 20 28 24 6e 65 65 64 57 70 73 53 :if ($needWpsS
14350 79 6e 63 3d 31 29 20 64 6f 3d 7b 0a 20 20 20 20 ync=1) do={.
14360 20 20 24 61 64 64 43 4c 20 28 22 20 2f 69 6e 74 $addCL (" /int
14370 65 72 66 61 63 65 20 77 69 66 69 20 72 65 73 65 erface wifi rese
14380 74 20 77 69 66 69 33 22 29 0a 20 20 20 20 7d 0a t wifi3"). }.
14390 20 20 7d 0a 20 20 23 20 72 65 73 65 74 20 57 49 }. # reset WI
143a0 4c 0a 20 20 3a 69 66 20 28 24 6e 75 6d 57 69 6c L. :if ($numWil
143b0 73 20 3e 20 30 29 20 64 6f 3d 7b 0a 20 20 20 20 s > 0) do={.
143c0 24 61 64 64 43 4c 20 28 22 20 2f 69 6e 74 65 72 $addCL (" /inter
143d0 66 61 63 65 20 77 36 30 67 20 73 74 61 74 69 6f face w60g statio
143e0 6e 20 72 65 6d 6f 76 65 20 5b 66 69 6e 64 20 63 n remove [find c
143f0 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 omment=\"defconf
14400 5c 22 5d 22 29 0a 20 20 20 20 3a 66 6f 72 20 69 \"]"). :for i
14410 20 66 72 6f 6d 3d 31 20 74 6f 3d 24 6e 75 6d 57 from=1 to=$numW
14420 69 6c 73 20 64 6f 3d 7b 0a 20 20 20 20 20 20 24 ils do={. $
14430 61 64 64 43 4c 20 28 22 20 2f 69 6e 74 65 72 66 addCL (" /interf
14440 61 63 65 20 77 36 30 67 20 72 65 73 65 74 2d 63 ace w60g reset-c
14450 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 77 6c 61 onfiguration wla
14460 6e 36 30 2d 24 69 22 29 0a 20 20 20 20 7d 0a 20 n60-$i"). }.
14470 20 7d 0a 7d 20 65 6c 73 65 3d 7b 0a 20 20 3a 69 }.} else={. :i
14480 66 20 28 24 77 69 72 65 6c 65 73 73 45 6e 61 62 f ($wirelessEnab
14490 6c 65 64 20 3d 20 31 20 26 26 20 24 75 73 69 6e led = 1 && $usin
144a0 67 57 69 66 69 50 61 63 6b 20 3d 20 30 29 20 64 gWifiPack = 0) d
144b0 6f 3d 7b 0a 20 20 24 61 64 64 43 4c 20 28 22 20 o={. $addCL ("
144c0 2f 69 6e 74 65 72 66 61 63 65 20 77 69 72 65 6c /interface wirel
144d0 65 73 73 20 63 61 70 20 73 65 74 20 65 6e 61 62 ess cap set enab
144e0 6c 65 64 3d 6e 6f 20 69 6e 74 65 72 66 61 63 65 led=no interface
144f0 73 3d 5c 22 5c 22 20 63 61 70 73 2d 6d 61 6e 2d s=\"\" caps-man-
14500 61 64 64 72 65 73 73 65 73 3d 5c 22 5c 22 22 29 addresses=\"\"")
14510 0a 20 20 23 20 72 65 73 65 74 20 77 69 72 65 6c . # reset wirel
14520 65 73 73 0a 20 20 3a 69 66 20 28 24 6e 75 6d 57 ess. :if ($numW
14530 6c 61 6e 73 20 3e 20 30 29 20 64 6f 3d 7b 0a 20 lans > 0) do={.
14540 20 20 20 3a 66 6f 72 20 69 20 66 72 6f 6d 3d 31 :for i from=1
14550 20 74 6f 3d 24 6e 75 6d 57 6c 61 6e 73 20 64 6f to=$numWlans do
14560 3d 7b 0a 20 20 20 20 20 20 24 61 64 64 43 4c 20 ={. $addCL
14570 28 22 20 2f 69 6e 74 65 72 66 61 63 65 20 77 69 (" /interface wi
14580 72 65 6c 65 73 73 20 72 65 73 65 74 2d 63 6f 6e reless reset-con
14590 66 69 67 75 72 61 74 69 6f 6e 20 77 6c 61 6e 24 figuration wlan$
145a0 69 22 29 0a 20 20 20 20 7d 0a 20 20 20 20 24 61 i"). }. $a
145b0 64 64 43 4c 20 28 22 20 2f 69 6e 74 65 72 66 61 ddCL (" /interfa
145c0 63 65 20 77 69 72 65 6c 65 73 73 20 73 65 63 75 ce wireless secu
145d0 72 69 74 79 2d 70 72 6f 66 69 6c 65 20 73 65 74 rity-profile set
145e0 20 64 65 66 61 75 6c 74 20 6d 6f 64 65 3d 6e 6f default mode=no
145f0 6e 65 5c 5c 22 29 0a 20 20 20 20 24 61 64 64 43 ne\\"). $addC
14600 4c 20 28 22 20 20 20 20 20 20 61 75 74 68 65 6e L (" authen
14610 74 69 63 61 74 69 6f 6e 2d 74 79 70 65 73 3d 5c tication-types=\
14620 22 5c 22 20 64 69 73 61 62 6c 65 2d 70 6d 6b 69 "\" disable-pmki
14630 64 3d 6e 6f 20 77 70 61 32 2d 70 72 65 2d 73 68 d=no wpa2-pre-sh
14640 61 72 65 64 2d 6b 65 79 3d 5c 22 5c 22 20 63 6f ared-key=\"\" co
14650 6d 6d 65 6e 74 3d 5c 22 5c 22 20 22 29 0a 0a 20 mment=\"\" ")..
14660 20 20 20 3a 69 66 20 28 24 6e 65 65 64 57 70 73 :if ($needWps
14670 53 79 6e 63 3d 31 29 20 64 6f 3d 7b 0a 20 20 20 Sync=1) do={.
14680 20 20 20 24 61 64 64 43 4c 20 28 22 20 2f 69 6e $addCL (" /in
14690 74 65 72 66 61 63 65 20 77 69 72 65 6c 65 73 73 terface wireless
146a0 20 72 65 73 65 74 2d 63 6f 6e 66 69 67 75 72 61 reset-configura
146b0 74 69 6f 6e 20 77 6c 61 6e 33 22 29 0a 20 20 20 tion wlan3").
146c0 20 20 20 24 61 64 64 43 4c 20 28 22 20 20 2f 69 $addCL (" /i
146d0 6e 74 65 72 66 61 63 65 20 77 69 72 65 6c 65 73 nterface wireles
146e0 73 20 73 65 63 75 72 69 74 79 2d 70 72 6f 66 69 s security-profi
146f0 6c 65 73 20 72 65 6d 6f 76 65 20 5b 66 69 6e 64 les remove [find
14700 20 63 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f comment=\"defco
14710 6e 66 5c 22 5d 22 29 0a 20 20 20 20 7d 0a 20 20 nf\"]"). }.
14720 7d 0a 20 20 23 20 72 65 73 65 74 20 57 49 4c 0a }. # reset WIL.
14730 20 20 3a 69 66 20 28 24 6e 75 6d 57 69 6c 73 20 :if ($numWils
14740 3e 20 30 29 20 64 6f 3d 7b 0a 20 20 20 20 24 61 > 0) do={. $a
14750 64 64 43 4c 20 28 22 20 2f 69 6e 74 65 72 66 61 ddCL (" /interfa
14760 63 65 20 77 36 30 67 20 73 74 61 74 69 6f 6e 20 ce w60g station
14770 72 65 6d 6f 76 65 20 5b 66 69 6e 64 20 63 6f 6d remove [find com
14780 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 5c 22 ment=\"defconf\"
14790 5d 22 29 0a 20 20 20 20 3a 66 6f 72 20 69 20 66 ]"). :for i f
147a0 72 6f 6d 3d 31 20 74 6f 3d 24 6e 75 6d 57 69 6c rom=1 to=$numWil
147b0 73 20 64 6f 3d 7b 0a 20 20 20 20 20 20 24 61 64 s do={. $ad
147c0 64 43 4c 20 28 22 20 2f 69 6e 74 65 72 66 61 63 dCL (" /interfac
147d0 65 20 77 36 30 67 20 72 65 73 65 74 2d 63 6f 6e e w60g reset-con
147e0 66 69 67 75 72 61 74 69 6f 6e 20 77 6c 61 6e 36 figuration wlan6
147f0 30 2d 24 69 22 29 0a 20 20 20 20 7d 0a 20 20 7d 0-$i"). }. }
14800 0a 20 20 23 20 72 65 73 65 74 20 43 41 50 73 4d . # reset CAPsM
14810 41 4e 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 AN. $addCL ("
14820 2f 63 61 70 73 2d 6d 61 6e 20 6d 61 6e 61 67 65 /caps-man manage
14830 72 20 73 65 74 20 65 6e 61 62 6c 65 64 3d 6e 6f r set enabled=no
14840 22 29 0a 20 20 24 61 64 64 43 4c 20 28 22 20 20 "). $addCL ("
14850 2f 63 61 70 73 2d 6d 61 6e 20 6d 61 6e 61 67 65 /caps-man manage
14860 72 20 69 6e 74 65 72 66 61 63 65 20 72 65 6d 6f r interface remo
14870 76 65 20 5b 66 69 6e 64 20 63 6f 6d 6d 65 6e 74 ve [find comment
14880 3d 5c 22 64 65 66 63 6f 6e 66 5c 22 5d 22 29 0a =\"defconf\"]").
14890 20 20 24 61 64 64 43 4c 20 28 22 20 20 2f 63 61 $addCL (" /ca
148a0 70 73 2d 6d 61 6e 20 6d 61 6e 61 67 65 72 20 69 ps-man manager i
148b0 6e 74 65 72 66 61 63 65 20 73 65 74 20 5b 20 66 nterface set [ f
148c0 69 6e 64 20 64 65 66 61 75 6c 74 3d 79 65 73 20 ind default=yes
148d0 5d 20 66 6f 72 62 69 64 3d 6e 6f 22 29 0a 20 20 ] forbid=no").
148e0 24 61 64 64 43 4c 20 28 22 20 20 2f 63 61 70 73 $addCL (" /caps
148f0 2d 6d 61 6e 20 70 72 6f 76 69 73 69 6f 6e 69 6e -man provisionin
14900 67 20 72 65 6d 6f 76 65 20 5b 66 69 6e 64 20 63 g remove [find c
14910 6f 6d 6d 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 omment=\"defconf
14920 5c 22 5d 22 29 0a 20 20 24 61 64 64 43 4c 20 28 \"]"). $addCL (
14930 22 20 20 2f 63 61 70 73 2d 6d 61 6e 20 63 6f 6e " /caps-man con
14940 66 69 67 75 72 61 74 69 6f 6e 20 72 65 6d 6f 76 figuration remov
14950 65 20 5b 66 69 6e 64 20 63 6f 6d 6d 65 6e 74 3d e [find comment=
14960 5c 22 64 65 66 63 6f 6e 66 5c 22 5d 22 29 0a 20 \"defconf\"]").
14970 20 24 61 64 64 43 4c 20 28 22 20 20 2f 63 61 70 $addCL (" /cap
14980 73 2d 6d 61 6e 20 73 65 63 75 72 69 74 79 20 72 s-man security r
14990 65 6d 6f 76 65 20 5b 66 69 6e 64 20 63 6f 6d 6d emove [find comm
149a0 65 6e 74 3d 5c 22 64 65 66 63 6f 6e 66 5c 22 5d ent=\"defconf\"]
149b0 22 29 0a 20 20 7d 0a 7d 0a 0a 24 61 64 64 43 4c "). }.}..$addCL
149c0 20 28 22 7d 22 29 0a 24 61 64 64 43 4c 20 22 3a ("}").$addCL ":
149d0 6c 6f 67 20 69 6e 66 6f 20 44 65 66 63 6f 6e 66 log info Defconf
149e0 5f 73 63 72 69 70 74 5f 66 69 6e 69 73 68 65 64 _script_finished
149f0 3b 22 0a 24 61 64 64 43 4c 20 22 3a 73 65 74 20 ;".$addCL ":set
14a00 64 65 66 63 6f 6e 66 4d 6f 64 65 3b 22 0a 3a 69 defconfMode;".:i
14a10 66 20 28 24 6e 75 6d 57 6c 61 6e 73 20 3e 20 30 f ($numWlans > 0
14a20 29 20 64 6f 3d 7b 0a 20 20 24 61 64 64 43 4c 20 ) do={. $addCL
14a30 22 3a 73 65 74 20 73 73 69 64 3b 22 0a 7d 0a 0a ":set ssid;".}..
14a40 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d #---------------
14a50 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
14a60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
14a70 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
14a80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
14a90 0a 23 20 43 6f 6e 66 20 61 6e 64 20 64 65 73 63 .# Conf and desc
14aa0 72 20 6f 75 74 70 75 74 0a 23 2d 2d 2d 2d 2d 2d r output.#------
14ab0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
14ac0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
14ad0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
14ae0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
14af0 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3a 69 66 20 28 24 ---------.:if ($
14b00 62 46 61 69 6c 20 3d 20 30 29 20 64 6f 3d 7b 0a bFail = 0) do={.
14b10 20 20 3a 70 75 74 20 24 73 74 72 44 65 73 63 3b :put $strDesc;
14b20 0a 20 20 3a 70 75 74 20 24 73 74 72 43 6f 6e 66 . :put $strConf
14b30 3b 0a 7d 0a 0a 23 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ;.}..#----------
14b40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
14b50 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
14b60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
14b70 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
14b80 2d 2d 2d 2d 2d 0a 23 20 43 6c 65 61 72 20 67 6c -----.# Clear gl
14b90 6f 62 61 6c 20 76 61 72 73 0a 23 2d 2d 2d 2d 2d obal vars.#-----
14ba0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
14bb0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
14bc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
14bd0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
14be0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3a 73 65 74 20 ----------.:set
14bf0 6e 54 65 6d 70 3b 0a 3a 73 65 74 20 62 46 61 69 nTemp;.:set bFai
14c00 6c 3b 0a 3a 73 65 74 20 62 44 65 62 75 67 4f 6e l;.:set bDebugOn
14c10 3b 0a 0a 3a 73 65 74 20 73 74 72 44 65 73 63 3b ;..:set strDesc;
14c20 0a 3a 73 65 74 20 73 74 72 43 6f 6e 66 3b 0a 3a .:set strConf;.:
14c30 73 65 74 20 4e 4c 3b 0a 0a 3a 73 65 74 20 66 69 set NL;..:set fi
14c40 6e 64 4e 65 78 74 53 65 63 74 69 6f 6e 3b 0a 3a ndNextSection;.:
14c50 73 65 74 20 67 65 74 46 65 61 74 75 72 65 53 74 set getFeatureSt
14c60 72 69 6e 67 3b 0a 3a 73 65 74 20 69 73 4e 75 6d ring;.:set isNum
14c70 3b 0a 3a 73 65 74 20 70 61 72 73 65 57 69 72 65 ;.:set parseWire
14c80 6c 65 73 73 46 65 61 74 75 72 65 73 3b 0a 3a 73 lessFeatures;.:s
14c90 65 74 20 73 65 74 57 6c 61 6e 3b 0a 3a 73 65 74 et setWlan;.:set
14ca0 20 61 6c 6c 6f 77 44 6e 73 3b 0a 3a 73 65 74 20 allowDns;.:set
14cb0 73 65 74 4c 61 6e 3b 0a 3a 73 65 74 20 73 65 74 setLan;.:set set
14cc0 57 61 6e 50 6f 72 74 3b 0a 3a 73 65 74 20 73 65 WanPort;.:set se
14cd0 74 41 64 6d 69 6e 50 61 73 73 3b 0a 3a 73 65 74 tAdminPass;.:set
14ce0 20 73 65 74 4d 6f 64 65 42 75 74 74 6f 6e 3b 0a setModeButton;.
14cf0 3a 73 65 74 20 73 65 74 57 70 73 42 75 74 74 6f :set setWpsButto
14d00 6e 3b 0a 3a 73 65 74 20 73 65 74 44 69 73 6b 53 n;.:set setDiskS
14d10 68 61 72 69 6e 67 3b 0a 3a 73 65 74 20 73 65 74 haring;.:set set
14d20 46 71 43 6f 64 65 6c 51 75 65 75 65 73 3b 0a 3a FqCodelQueues;.:
14d30 73 65 74 20 73 65 74 57 36 30 47 3b 0a 3a 73 65 set setW60G;.:se
14d40 74 20 73 65 74 57 36 30 47 61 70 3b 0a 3a 73 65 t setW60Gap;.:se
14d50 74 20 73 65 74 49 6e 74 65 72 66 61 63 65 4c 69 t setInterfaceLi
14d60 73 74 73 3b 0a 3a 73 65 74 20 73 65 74 57 70 73 sts;.:set setWps
14d70 53 79 6e 63 3b 0a 3a 73 65 74 20 73 65 74 43 61 Sync;.:set setCa
14d80 70 73 4d 61 6e 3b 0a 3a 73 65 74 20 73 65 74 42 psMan;.:set setB
14d90 6f 6e 64 69 6e 67 3b 0a 0a 3a 73 65 74 20 63 6f onding;..:set co
14da0 6e 66 69 67 4d 6f 64 65 3b 0a 3a 73 65 74 20 64 nfigMode;.:set d
14db0 68 63 70 45 6e 61 62 6c 65 64 3b 0a 3a 73 65 74 hcpEnabled;.:set
14dc0 20 6c 74 65 44 68 63 70 3b 0a 3a 73 65 74 20 77 lteDhcp;.:set w
14dd0 69 72 65 6c 65 73 73 45 6e 61 62 6c 65 64 3b 0a irelessEnabled;.
14de0 3a 73 65 74 20 75 73 69 6e 67 57 69 66 69 50 61 :set usingWifiPa
14df0 63 6b 3b 0a 3a 73 65 74 20 77 6c 61 6e 50 72 65 ck;.:set wlanPre
14e00 66 69 78 3b 0a 3a 73 65 74 20 77 6c 61 6e 4d 6f fix;.:set wlanMo
14e10 64 65 3b 0a 3a 73 65 74 20 69 70 76 36 45 6e 61 de;.:set ipv6Ena
14e20 62 6c 65 64 3b 0a 3a 73 65 74 20 69 73 50 43 49 bled;.:set isPCI
14e30 6e 65 65 64 65 64 3b 0a 3a 73 65 74 20 73 65 74 needed;.:set set
14e40 50 43 49 54 79 70 65 3b 0a 3a 73 65 74 20 69 73 PCIType;.:set is
14e50 50 50 50 6e 65 65 64 65 64 3b 0a 3a 73 65 74 20 PPPneeded;.:set
14e60 73 65 74 50 50 50 4f 55 54 56 61 72 73 3b 0a 3a setPPPOUTVars;.:
14e70 73 65 74 20 6e 65 65 64 44 69 73 6b 53 68 61 72 set needDiskShar
14e80 69 6e 67 3b 0a 3a 73 65 74 20 6e 65 65 64 44 68 ing;.:set needDh
14e90 63 70 43 6c 69 65 6e 74 3b 0a 0a 3a 73 65 74 20 cpClient;..:set
14ea0 61 64 64 43 4c 3b 0a 3a 73 65 74 20 61 64 64 44 addCL;.:set addD
14eb0 4c 3b 0a 3a 73 65 74 20 61 64 64 44 43 4c 3b 0a L;.:set addDCL;.
14ec0 3a 73 65 74 20 70 72 69 6e 74 44 65 62 75 67 3b :set printDebug;
14ed0 0a .