工具:WireShark 2.6.4
一、抓取封包
從ONU側抓取封包如圖所示:本次抓取封包為ONU上線注冊。
注:上圖的attr mask掩碼,不包含ME ID,對照标準看屬性時,此mask從ME ID的下一項對應。
二、分析
這裡以實體ONT2-G為例:
上圖所示即為整個OMCI封包段,前兩個位元組為Transaction correlation identifier,第3個位元組,49意思是OLT發送請求到ONU,類型是為GET,這點wireshark已經解析,具體位元組含義和參考ITU-T988.x相關協定。
如下圖:
第三個位元組相關說明:AR=1,請求,AK=1,響應。再看action,由該位元組的5-1位辨別,定義如下:
是以49 >>> 0100 10001 ,即OLT向ONU請求。
0a是OMCI GPON裝置辨別。
0101 >> 257,十六進制換算成十進制,查找此實體ID。
發現此實體類型為ONT2-G。
其詳細定義為:
再看後兩個位元組:
這裡實際是該實體的索引,即Managed entity ID。
繼續往後看:
這裡就是mask;e0 00 >> 1110 0000 0000 0000
也就是請求其實體對應的前三項。
後面的全0,和幀尾可不理會(幀尾為校驗碼)。
再看ONU回應的封包:
同理,前兩個位元組為Transaction correlation identifier;第三個位元組29 >> 0010 1001,是ONU回應OLT的GET,AK = 1。
response封包格式如下:
跟請求封包一樣,0a為omci 裝置辨別。01 01 為實體類型,00 00 為ME ID,00 辨別get成功,e0 00為屬性掩碼。
後面的即為ONU上報的資料,如下圖:
根據其實體位元組定義來分析回的封包中包含哪些資料。