02_network 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506
  1. #!/bin/sh
  2. . /lib/functions/system.sh
  3. . /lib/functions/uci-defaults.sh
  4. . /lib/functions/k2t.sh
  5. ath79_setup_interfaces()
  6. {
  7. local board="$1"
  8. case "$board" in
  9. adtran,bsap1800-v2|\
  10. adtran,bsap1840|\
  11. alfa-network,ap121f|\
  12. aruba,ap-105|\
  13. avm,fritz1750e|\
  14. avm,fritz300e|\
  15. comfast,cf-wr752ac-v1|\
  16. comfast,cf-e130n-v2|\
  17. devolo,dvl1200i|\
  18. devolo,dvl1750c|\
  19. devolo,dvl1750i|\
  20. devolo,dvl1750x|\
  21. dlink,dir-505|\
  22. engenius,ecb1750|\
  23. enterasys,ws-ap3705i|\
  24. glinet,gl-ar300m-lite|\
  25. netgear,ex6400|\
  26. netgear,ex7300|\
  27. ocedo,koala|\
  28. ocedo,raccoon|\
  29. pcs,cap324|\
  30. pisen,ts-d084|\
  31. pisen,wmb001n|\
  32. pisen,wmm003n|\
  33. siemens,ws-ap3610|\
  34. tplink,cpe210-v2|\
  35. tplink,cpe210-v3|\
  36. tplink,cpe510-v2|\
  37. tplink,cpe510-v3|\
  38. tplink,cpe610-v1|\
  39. tplink,re350k-v1|\
  40. tplink,re355-v1|\
  41. tplink,re450-v1|\
  42. tplink,re450-v2|\
  43. tplink,re450-v3|\
  44. tplink,tl-wr902ac-v1|\
  45. ubnt,bullet-m-ar7240|\
  46. ubnt,bullet-m-ar7241|\
  47. ubnt,bullet-m-xw|\
  48. ubnt,lap-120|\
  49. ubnt,litebeam-ac-gen2|\
  50. ubnt,nanobeam-ac|\
  51. ubnt,nanobridge-m|\
  52. ubnt,nanostation-ac-loco|\
  53. ubnt,nanostation-loco-m|\
  54. ubnt,nanostation-loco-m-xw|\
  55. ubnt,picostation-m|\
  56. ubnt,powerbeam-5ac-500|\
  57. ubnt,powerbeam-5ac-gen2|\
  58. ubnt,rocket-m|\
  59. ubnt,unifiac-lite|\
  60. ubnt,unifiac-lr|\
  61. ubnt,unifiac-mesh|\
  62. ubnt,unifi|\
  63. wd,mynet-wifi-rangeextender|\
  64. winchannel,wb2000)
  65. ucidef_set_interface_lan "eth0"
  66. ;;
  67. avm,fritz4020|\
  68. pcs,cr3000|\
  69. tplink,archer-c58-v1|\
  70. tplink,archer-c59-v1|\
  71. tplink,archer-c59-v2)
  72. ucidef_set_interface_wan "eth1"
  73. ucidef_add_switch "switch0" \
  74. "0@eth0" "1:lan:1" "2:lan:4" "3:lan:3" "4:lan:2"
  75. ;;
  76. buffalo,bhr-4grv|\
  77. buffalo,wzr-hp-g450h)
  78. ucidef_add_switch "switch0" \
  79. "0@eth0" "2:lan" "3:lan" "4:lan" "5:lan" "1:wan"
  80. ;;
  81. buffalo,bhr-4grv2|\
  82. trendnet,tew-823dru)
  83. ucidef_add_switch "switch0" \
  84. "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth0"
  85. ;;
  86. buffalo,wzr-hp-ag300h|\
  87. tplink,archer-c25-v1|\
  88. tplink,archer-c60-v1|\
  89. tplink,archer-c60-v2|\
  90. tplink,archer-c60-v3|\
  91. tplink,tl-wdr3500-v1|\
  92. tplink,tl-wr842n-v1|\
  93. tplink,tl-wr842n-v3|\
  94. ubnt,airrouter)
  95. ucidef_set_interface_wan "eth1"
  96. ucidef_add_switch "switch0" \
  97. "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
  98. ;;
  99. buffalo,wzr-hp-g302h-a1a0)
  100. ucidef_add_switch "switch0" \
  101. "0@eth0" "1:lan:1" "3:lan:4" "4:lan:3" "5:lan:2" "2:wan"
  102. ;;
  103. comfast,cf-e110n-v2|\
  104. comfast,cf-e120a-v3|\
  105. comfast,cf-e314n-v2|\
  106. tplink,cpe210-v1|\
  107. tplink,cpe220-v2|\
  108. tplink,cpe220-v3|\
  109. tplink,cpe510-v1|\
  110. tplink,wbs210-v2|\
  111. tplink,wbs510-v1|\
  112. tplink,wbs510-v2|\
  113. ubnt,nanostation-m|\
  114. ubnt,routerstation)
  115. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  116. ;;
  117. comfast,cf-e560ac)
  118. ucidef_set_interface_wan "eth1"
  119. ucidef_add_switch "switch0" \
  120. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan"
  121. ;;
  122. comfast,cf-wr650ac-v1|\
  123. comfast,cf-wr650ac-v2)
  124. ucidef_add_switch "switch0" \
  125. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth1"
  126. ;;
  127. devolo,dvl1200e|\
  128. devolo,dvl1750e|\
  129. ocedo,ursus)
  130. ucidef_set_interface_lan "eth0 eth1"
  131. ;;
  132. devolo,magic-2-wifi)
  133. ucidef_add_switch "switch0" \
  134. "0@eth0" "2:wan" "3:lan" "4:lan"
  135. ;;
  136. dlink,dir-825-b1)
  137. ucidef_set_interface_wan "eth1"
  138. ucidef_add_switch "switch0" \
  139. "0:lan" "1:lan" "2:lan" "3:lan" "5@eth0"
  140. ;;
  141. dlink,dir-825-c1|\
  142. dlink,dir-835-a1|\
  143. dlink,dir-842-c1|\
  144. dlink,dir-842-c2|\
  145. dlink,dir-842-c3|\
  146. dlink,dir-859-a1|\
  147. engenius,epg5000|\
  148. tplink,archer-c2-v3|\
  149. tplink,tl-wr1043nd-v4|\
  150. tplink,tl-wr1043n-v5)
  151. ucidef_add_switch "switch0" \
  152. "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan"
  153. ;;
  154. elecom,wrc-1750ghbk2-i|\
  155. elecom,wrc-300ghbk2-i|\
  156. sitecom,wlr-8100)
  157. ucidef_add_switch "switch0" \
  158. "0@eth0" "2:lan:4" "3:lan:3" "4:lan:2" "5:lan:1" "1:wan"
  159. ;;
  160. embeddedwireless,dorin)
  161. ucidef_add_switch "switch0" \
  162. "0@eth0" "1:wan" "2:lan:3" "3:lan:2"
  163. ;;
  164. engenius,ews511ap)
  165. ucidef_set_interface_lan "eth0 eth1" "dhcp"
  166. ;;
  167. etactica,eg200)
  168. ucidef_set_interface_lan "eth0" "dhcp"
  169. ;;
  170. glinet,gl-ar750)
  171. ucidef_set_interface_wan "eth1"
  172. ucidef_add_switch "switch0" \
  173. "0@eth0" "1:lan" "2:lan"
  174. ;;
  175. iodata,etg3-r|\
  176. iodata,wn-ac1167dgr|\
  177. iodata,wn-ac1600dgr|\
  178. iodata,wn-ac1600dgr2|\
  179. iodata,wn-ag300dgr|\
  180. pcs,cr5000|\
  181. sitecom,wlr-7100|\
  182. wd,mynet-n750)
  183. ucidef_add_switch "switch0" \
  184. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
  185. ;;
  186. librerouter,librerouter-v1)
  187. ucidef_add_switch "switch0" \
  188. "0@eth0" "5:wan" "6@eth1" "4:lan"
  189. ;;
  190. nec,wg1200cr|\
  191. ubnt,nanostation-ac|\
  192. yuncore,a782|\
  193. yuncore,xd4200)
  194. ucidef_add_switch "switch0" \
  195. "0@eth0" "2:lan" "3:wan"
  196. ;;
  197. nec,wg800hp)
  198. ucidef_add_switch "switch0" \
  199. "0@eth0" "2:lan" "3:lan" "4:lan" "1:wan"
  200. ;;
  201. netgear,wndr3700|\
  202. netgear,wndr3700-v2|\
  203. netgear,wndr3800|\
  204. netgear,wndr3800ch)
  205. ucidef_set_interface_wan "eth1"
  206. ucidef_add_switch "switch0" \
  207. "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5u@eth0"
  208. ucidef_add_switch_attr "switch0" "blinkrate" 2
  209. ucidef_add_switch_port_attr "switch0" 1 led 6
  210. ucidef_add_switch_port_attr "switch0" 2 led 9
  211. ucidef_add_switch_port_attr "switch0" 5 led 2
  212. ;;
  213. netgear,wnr2200-8m|\
  214. netgear,wnr2200-16m)
  215. ucidef_set_interface_wan "eth0"
  216. ucidef_add_switch "switch0" \
  217. "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
  218. ;;
  219. phicomm,k2t)
  220. ucidef_add_switch "switch0" \
  221. "0@eth0" "3:lan:1" "5:lan:2" "4:wan"
  222. ;;
  223. qihoo,c301)
  224. ucidef_set_interface_wan "eth1"
  225. ucidef_add_switch "switch0" \
  226. "0@eth0" "2:lan" "3:lan"
  227. ;;
  228. rosinson,wr818)
  229. ucidef_add_switch "switch0" \
  230. "0@eth0" "1:lan" "2:lan" "3:wan"
  231. ;;
  232. teltonika,rut955|\
  233. teltonika,rut955-h7v3c0)
  234. ucidef_set_interface_wan "eth1"
  235. ucidef_add_switch "switch0" \
  236. "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1"
  237. ;;
  238. tplink,archer-a7-v5|\
  239. tplink,archer-c6-v2|\
  240. tplink,archer-c6-v2-us|\
  241. tplink,archer-c7-v4|\
  242. tplink,archer-c7-v5|\
  243. tplink,tl-wdr3600-v1|\
  244. tplink,tl-wdr4300-v1|\
  245. tplink,tl-wdr4300-v1-il|\
  246. tplink,tl-wdr4310-v1)
  247. ucidef_add_switch "switch0" \
  248. "0@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "1:wan"
  249. ;;
  250. tplink,archer-c5-v1|\
  251. tplink,archer-c7-v1|\
  252. tplink,archer-c7-v2|\
  253. tplink,tl-wdr4900-v2)
  254. ucidef_add_switch "switch0" \
  255. "0@eth1" "2:lan" "3:lan" "4:lan" "5:lan" "6@eth0" "1:wan"
  256. ;;
  257. tplink,archer-d50-v1)
  258. ucidef_add_switch "switch0" \
  259. "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "1:wan"
  260. ;;
  261. tplink,archer-d7-v1|\
  262. tplink,archer-d7b-v1)
  263. ucidef_add_switch "switch0" \
  264. "0@eth1" "3:lan:3" "4:lan:2" "5:lan:1" "6@eth0" "2:wan:4" "1:wan:5"
  265. ;;
  266. tplink,tl-mr6400-v1)
  267. ucidef_set_interfaces_lan_wan "eth0.1 eth1" "usb0"
  268. ucidef_add_switch "switch0" \
  269. "0@eth0" "1:lan:1" "2:lan:3" "3:lan:2"
  270. ;;
  271. tplink,tl-wr842n-v2)
  272. ucidef_set_interface_wan "eth1"
  273. ucidef_add_switch "switch0" \
  274. "0@eth0" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
  275. ;;
  276. tplink,tl-wr1043nd-v1)
  277. ucidef_add_switch "switch0" \
  278. "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0"
  279. ;;
  280. tplink,tl-wr1043nd-v2|\
  281. tplink,tl-wr1043nd-v3|\
  282. tplink,tl-wr1045nd-v2)
  283. ucidef_add_switch "switch0" \
  284. "0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan" "6@eth0"
  285. ;;
  286. tplink,tl-wr2543-v1)
  287. ucidef_add_switch "switch0" \
  288. "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0"
  289. ;;
  290. ubnt,acb-isp)
  291. ucidef_set_interface_wan "eth1"
  292. ucidef_add_switch "switch0" \
  293. "0@eth0" "2:lan:1" "3:lan:3" "4:lan:2"
  294. ;;
  295. ubnt,edgeswitch-5xp)
  296. ucidef_set_interface_wan "eth1"
  297. ucidef_add_switch "switch0" \
  298. "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:lan"
  299. ;;
  300. ubnt,edgeswitch-8xp)
  301. ucidef_set_interface_wan "eth1"
  302. ucidef_add_switch "switch0" \
  303. "0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "4:lan:5" "5:lan:6" "6:lan:7" "7:lan:8" "8@eth0"
  304. ;;
  305. ubnt,routerstation-pro)
  306. ucidef_set_interface_wan "eth0"
  307. ucidef_add_switch "switch0" \
  308. "0@eth1" "2:lan:3" "3:lan:2" "4:lan:1"
  309. ;;
  310. ubnt,nanostation-m-xw)
  311. ucidef_add_switch "switch0" \
  312. "0@eth0" "5:lan" "1:wan"
  313. ;;
  314. ubnt,unifiac-mesh-pro|\
  315. ubnt,unifiac-pro)
  316. ucidef_add_switch "switch0" \
  317. "0@eth0" "2:lan:1" "3:lan:2"
  318. ;;
  319. zbtlink,zbt-wd323|\
  320. xiaomi,mi-router-4q)
  321. ucidef_set_interface_wan "eth1"
  322. ucidef_add_switch "switch0" \
  323. "0@eth0" "3:lan:1" "4:lan:2"
  324. ;;
  325. *)
  326. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  327. ;;
  328. esac
  329. }
  330. ath79_setup_macs()
  331. {
  332. local board="$1"
  333. case "$board" in
  334. adtran,bsap1800-v2|\
  335. adtran,bsap1840)
  336. lan_mac=$(mtd_get_mac_binary "Board data" 2)
  337. label_mac=$lan_mac
  338. ;;
  339. alfa-network,ap121f)
  340. label_mac=$(mtd_get_mac_binary art 0x1002)
  341. ;;
  342. avm,fritz1750e|\
  343. avm,fritz450e)
  344. label_mac=$(fritz_tffs -n macwlan -i $(find_mtd_part "tffs (1)"))
  345. ;;
  346. avm,fritz300e)
  347. lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
  348. label_mac=$(fritz_tffs -n macwlan -i $(find_mtd_part "tffs (1)"))
  349. ;;
  350. avm,fritz4020)
  351. lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
  352. wan_mac=$(fritz_tffs -n macb -i $(find_mtd_part "tffs (1)"))
  353. ;;
  354. devolo,magic-2-wifi)
  355. label_mac=$(macaddr_add "$(mtd_get_mac_binary art 0x1002)" 3)
  356. ;;
  357. dlink,dir-825-b1)
  358. lan_mac=$(mtd_get_mac_text "caldata" 0xffa0)
  359. wan_mac=$(mtd_get_mac_text "caldata" 0xffb4)
  360. ;;
  361. dlink,dir-505)
  362. lan_mac=$(mtd_get_mac_text "mac" 0x4)
  363. ;;
  364. dlink,dir-825-c1|\
  365. dlink,dir-835-a1)
  366. lan_mac=$(mtd_get_mac_text "mac" 0x4)
  367. wan_mac=$(mtd_get_mac_text "mac" 0x18)
  368. ;;
  369. dlink,dir-842-c1|\
  370. dlink,dir-842-c2|\
  371. dlink,dir-842-c3|\
  372. nec,wg1200cr)
  373. lan_mac=$(mtd_get_mac_ascii devdata "lanmac")
  374. wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
  375. label_mac=$lan_mac
  376. ;;
  377. dlink,dir-859-a1|\
  378. qihoo,c301|\
  379. wd,mynet-n750)
  380. lan_mac=$(mtd_get_mac_ascii devdata "lanmac")
  381. wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
  382. ;;
  383. elecom,wrc-1750ghbk2-i|\
  384. elecom,wrc-300ghbk2-i)
  385. wan_mac=$(macaddr_add "$(mtd_get_mac_binary art 0x1002)" -2)
  386. ;;
  387. engenius,ecb1750)
  388. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  389. label_mac=$(mtd_get_mac_ascii u-boot-env athaddr)
  390. ;;
  391. engenius,epg5000)
  392. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  393. wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
  394. ;;
  395. engenius,ews511ap)
  396. lan_mac=$(mtd_get_mac_text "u-boot-env" 0xe9)
  397. eth1_mac=$(macaddr_add "$lan_mac" 1)
  398. ucidef_set_interface "eth0" ifname "eth0" protocol "none" macaddr "$lan_mac"
  399. ucidef_set_interface "eth1" ifname "eth1" protocol "none" macaddr "$eth1_mac"
  400. ;;
  401. enterasys,ws-ap3705i)
  402. label_mac=$(mtd_get_mac_ascii u-boot-env0 ethaddr)
  403. ;;
  404. iodata,etg3-r)
  405. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  406. wan_mac=$(macaddr_add "$lan_mac" -1)
  407. label_mac=$wan_mac
  408. ;;
  409. iodata,wn-ac1167dgr|\
  410. iodata,wn-ac1600dgr|\
  411. iodata,wn-ac1600dgr2|\
  412. iodata,wn-ag300dgr)
  413. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  414. wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
  415. label_mac=$wan_mac
  416. ;;
  417. jjplus,ja76pf2)
  418. wan_mac=$(fconfig -s -r -d $(find_mtd_part "RedBoot config") -n alias/ethaddr)
  419. lan_mac=$(macaddr_add "$wan_mac" 1)
  420. ;;
  421. nec,wg800hp)
  422. lan_mac=$(mtd_get_mac_text board_data 0x280)
  423. wan_mac=$(mtd_get_mac_text board_data 0x480)
  424. label_mac=$wan_mac
  425. ;;
  426. netgear,wndr3700|\
  427. netgear,wndr3700-v2|\
  428. netgear,wndr3800)
  429. lan_mac=$(macaddr_setbit_la "$(mtd_get_mac_binary art 0x0)")
  430. ;;
  431. phicomm,k2t)
  432. lan_mac=$(k2t_get_mac "lan_mac")
  433. wan_mac=$(k2t_get_mac "wan_mac")
  434. ;;
  435. rosinson,wr818)
  436. wan_mac=$(mtd_get_mac_binary factory 0x0)
  437. lan_mac=$(macaddr_setbit_la "$wan_mac")
  438. ;;
  439. sitecom,wlr-7100|\
  440. sitecom,wlr-8100)
  441. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  442. wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
  443. label_mac=$lan_mac
  444. ;;
  445. tplink,archer-a7-v5|\
  446. tplink,archer-c7-v4|\
  447. tplink,archer-c7-v5|\
  448. tplink,tl-wr1043nd-v4|\
  449. tplink,tl-wr1043n-v5)
  450. base_mac=$(mtd_get_mac_binary info 0x8)
  451. wan_mac=$(macaddr_add "$base_mac" 1)
  452. ;;
  453. tplink,tl-wdr3600-v1|\
  454. tplink,tl-wdr4300-v1|\
  455. tplink,tl-wdr4300-v1-il)
  456. base_mac=$(mtd_get_mac_binary u-boot 0x1fc00)
  457. wan_mac=$(macaddr_add "$base_mac" 1)
  458. ;;
  459. trendnet,tew-823dru)
  460. lan_mac=$(mtd_get_mac_text mac 0x4)
  461. wan_mac=$(mtd_get_mac_text mac 0x18)
  462. label_mac=$wan_mac
  463. ;;
  464. ubnt,airrouter|\
  465. ubnt,bullet-m-ar7240|\
  466. ubnt,bullet-m-ar7241|\
  467. ubnt,nanobridge-m|\
  468. ubnt,nanostation-loco-m|\
  469. ubnt,nanostation-m|\
  470. ubnt,picostation-m|\
  471. ubnt,rocket-m|\
  472. ubnt,unifi)
  473. label_mac=$(cat /sys/class/ieee80211/phy0/macaddress)
  474. ;;
  475. ubnt,litebeam-ac-gen2|\
  476. ubnt,powerbeam-5ac-500|\
  477. ubnt,powerbeam-5ac-gen2)
  478. label_mac=$(mtd_get_mac_binary art 0x5006)
  479. ;;
  480. ubnt,routerstation|\
  481. ubnt,routerstation-pro)
  482. wan_mac=$(fconfig -s -r -d $(find_mtd_part "RedBoot config") -n ar7100_esa)
  483. lan_mac=$(macaddr_add "$wan_mac" 1)
  484. ;;
  485. wd,mynet-wifi-rangeextender)
  486. lan_mac=$(nvram get et0macaddr)
  487. ;;
  488. esac
  489. [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
  490. [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
  491. [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
  492. }
  493. board_config_update
  494. board=$(board_name)
  495. ath79_setup_interfaces $board
  496. ath79_setup_macs $board
  497. board_config_flush
  498. exit 0