20170112_jeffrey - silenceuncrio/diary GitHub Wiki
Index
- 0840 - ieee 802.1ag 加 itu-t y.1731
- 1010 - 把 IEEE 802.1ag 和 ITU-T Y.1731 扛下來 - 12 周
- 1050 - firmware upgrade 還有 issue 要考慮
- 1715 - 搞定 dual image
0840
ariel 被我昨天估的 工時嚇到了
ieee 802.1ag 加上 itu-t y.1731 估了 28 周... 7個月
早上好好跟她聊一下
看怎麼樣分階段把菜端出去
ieee 802.1ag 目前已經併在 ieee 802.1q 裡面
最新的 ieee 802.1q 是 2014 年版
相關的章節有
-
- Principles of Connectivity Fault Management operation
-
- CFM entity operation
-
- CFM protocols
-
- Encoding of CFM PDUs
-
- CFM in systems
-
- DDCFM operations and protocols
29. DDCFM operations and protocols
我以前也沒看過
ITU-T G.8013/Y.31731
全名為
Operation, administration and maintenance (OAM) functions and mechanisms for Ethernet-based networks
1010
跟 ariel 和 john 聊完之後還是需要我把 IEEE 802.1ag 和 ITU-T Y.1731 扛下來
而且把時間縮成 12 周
不過我要列一下 我們針對 IEEE 802.1ag 和 ITU-T Y.1731 會實作的項目讓 ariel 下禮拜方便跟客戶討論
同時這也是一個具體的書面承諾... 才不會陷入無窮追加功能的局面
先來列一下 IEEE 802.1ag 我們要提供的功能
- 4 management end point, each management point support the following functions
- continuity check
- loopback
ITU-T Y.1731 的部分, 每個 MEP 我們會提供
- frame loss measurement
- frame delay measurement
綜括一下 IEEE 802.1ag 和 ITU-T Y.1731 我們 M300 會提供的功能
- 4 management end point, each management point support the following functions
- continuity check
- loopback
- frame loss measurement
- frame delay measurement
1050
firmware upgrade 還有 issue 要考慮
假設目前 primary firmware(版本1.1) 是在 A 區, secondary firmware(版本 1.0) 在 B 區
我們做 firmware upgrade 的動作把新的 firmware(版本 1.2) upgrade 到 m300 上
這時我們會把 firmware(版本 1.2) 放到 secondary firmware B 區去
在確定 firmware 燒錄的動作都完成之後
我們會修改 uboot env 來切換 primary 跟 secondary
primary firmware(版本1.2) 是在 B 區, secondary firmware(版本 1.1) 在 A 區
不幸的是我們某個 linux 上的 application 沒寫好讓系統開機發生異常
避免進入無限開機異常的循環
我們要有一個機制在這種尷尬的時候把 primary 和 secondary 作切換並讓使用者知道 firmware(版本1.2) 是個雷
1715
以下 uboot env 搞定 dual image
=> printenv
app_choose=if printenv no_good; then echo replace primary app; run app_replace; saveenv; else echo run primary app; fi
app_primary=b
app_replace=if test ${app_primary} = a; then echo a to b; setenv app_primary b; setenv app_secondary a; else echo b to a; setenv app_primary a; setenv app_secondary b; fi
app_secondary=a
baudrate=115200
bootargs=console=ttymxc0,115200 ubi.mtd=9 root=ubi0:rootfs_b rootfstype=ubifs mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
bootargs_a=echo bootargs for room a; setenv bootargs console=ttymxc0,115200 ubi.mtd=4 root=ubi0:rootfs_a rootfstype=ubifs mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
bootargs_b=echo bootargs for room b; setenv bootargs console=ttymxc0,115200 ubi.mtd=9 root=ubi0:rootfs_b rootfstype=ubifs mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
bootcmd=run app_choose; echo run bootargs_${app_primary}; run bootargs_${app_primary}; run nandread_${app_primary}; setenv no_good 1; saveenv; bootz ${loadaddr} - ${fdt_addr}
bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
bootdelay=3
console=ttymxc0
dtb_a_addr=0x00E00000
dtb_b_addr=0x08E00000
ethact=FEC1
ethprime=FEC
fdt_addr=0x83000000
fdt_high=0xffffffff
initrd_addr=0x83800000
initrd_high=0xffffffff
kernel_a_addr=0x00400000
kernel_b_addr=0x08400000
loadaddr=0x80800000
mfgtool_args=setenv bootargs console=${console},${baudrate} rdinit=/linuxrc g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber="" mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
nandread_a=nand read ${loadaddr} ${kernel_a_addr} 0x800000;nand read ${fdt_addr} ${dtb_a_addr} 0x100000;
nandread_b=nand read ${loadaddr} ${kernel_b_addr} 0x800000;nand read ${fdt_addr} ${dtb_b_addr} 0x100000;
no_good=1
panel=TFT43AB
Environment size: 2281/1048572 bytes
=>
application 開起來視為正常服務後要記得把 no_good
EV 清掉
不然 u-boot 會把 primary application replace 掉