# ORAN Packet Generator 使用手冊 ### **開發環境** | 開發項目 | 工具(套件) | 版本 | | -------- | -------- | -------- | | 環境 | Linux | 22.04 | |人機介面-網頁框架|Flask|3.0.0| |人機介面-網頁渲染|Bootstrap-Flask|2.3.3| |人機介面-表單管理|Flask-WTF|1.2.1| |人機介面-網卡偵測|Netiface|0.11.0| |C/S/U-Plane封包|Scapy|2.5.0| ### **程式功能** | 程式名稱 | 程式功能 | 備註 | | -------- | -------- | -------- | |`app.py`|使用者介面 Server|| |`form.py`|管理參數表單|| |`c_packet_type1.py`|定義c-plane-type 1封包結構|| |`c_packet_type3.py`|定義c-plane-type 3封包結構|| |`s_plane.py`|定義s-plane封包結構|| |`u_plane.py`|定義u-plane封包結構|| --- ### **如何開啟網頁** 到 `ORAN-Packet-Generator` 的專案目錄底下執行 ![image](https://hackmd.io/_uploads/BkUsbv4EC.png) ![ORAN_packert_generator](https://hackmd.io/_uploads/SJ3Fx25r0.png) **Step 1** 把需要的開發工具安裝到環境中 ![requiemants](https://hackmd.io/_uploads/BkxJeh9B0.png) ![cmd_requiemants](https://hackmd.io/_uploads/SkJlbhcBA.png) ``` sudo pip install -r requirements.txt ``` 並且安裝tcpreplay ![cmd_install_tcpreplay](https://hackmd.io/_uploads/H1JYWTcB0.png) ``` sudo apt install tcpreplay ``` <br/><br/><br/><br/><br/><br/> **Step 2** 到 `ORAN-Packet-Generator` 的專案目錄底下執行主程式 ![app_py](https://hackmd.io/_uploads/rk_glh5S0.png) ![cmd_app_py](https://hackmd.io/_uploads/SycHfn5rR.png) ``` sudo python3 app.py ``` <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> **Step 3** 到 browser 輸入 `127.0.0.1:5000` **預覽** 完成上面3步之後就可以正常的把網頁開起來,會長這樣: • 首頁: 可以選擇S-Plane,U-Plane,C-Plane ![homw](https://hackmd.io/_uploads/SkvEh69BR.png) **可以自定義目標MAC address,預設為broadcast** • S-Plane: ![image](https://hackmd.io/_uploads/rJOnLB4ER.png) <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> • C-Plane(type 1): ![image](https://hackmd.io/_uploads/HJ5Q7B4VC.png) <br/><br/><br/> • C-Plane(type 3): ![image](https://hackmd.io/_uploads/S17VXr4NC.png) <br/><br/><br/><br/><br/> • U-Plane: ![image](https://hackmd.io/_uploads/rk0VQBEEC.png) ### **發送封包之前先開啟wireshark** 備註:如果未安裝過wireshark請先執行以下指令來安裝wireshark,如果已經安裝,請跳過此步驟 ![cmd_install_wireshark](https://hackmd.io/_uploads/Bko2X2cH0.png) ``` sudo apt install wireshark ``` 如果已經安裝過就可以直接開啟wireshark ![cmd_sudo_wireshark](https://hackmd.io/_uploads/rymRPh5SC.png) ``` sudo wireshark ``` <br/><br/><br/><br/><br/> 並且選擇使用哪張網卡(本篇說明以en33網卡為例,請依實際需求選擇即可) ![ens33](https://hackmd.io/_uploads/B1EuDDaBA.png) 在Apply a display filter... 那一列輸入要觀察的Protocol(以ptp為例)後,按下Enter ![ptp](https://hackmd.io/_uploads/S1Bn0a5r0.png) 開啟I/O Graph ![IO_graphs_ptp](https://hackmd.io/_uploads/rycR0TcHA.png) 確認Y軸更改為Bits,並且確認Enbled只有勾選我們要觀測的ptp ![確認filtered_ptp](https://hackmd.io/_uploads/S19v1AqrC.png) <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> ### **到ORAN Packet Generator網頁上發送封包** (以s_plane , 10M ,180秒, Broadcast為例 ) 填完資料後按下Submit後: ![封包發送](https://hackmd.io/_uploads/ryAI_2cHR.png) 點擊Submit發送封包,並且回到wireshark的I/O Graphs來觀察發送情況 ![sending_ptp](https://hackmd.io/_uploads/HylGW05rA.png) 也可以在wireshark上看到每個封包詳細的資訊 ![wireshark_sending_ptp](https://hackmd.io/_uploads/ByaeWCcBR.png) 封包發送完畢後可以在ORAN Packet Generator網頁上看到剛剛發送封包的相關資訊 ![Packet Information_v1](https://hackmd.io/_uploads/HJNc525SA.png) 同時執行app.py的terminal也會在發送完封包回報剛剛發送的情況 包括速度,時長以及使用的網卡 因為是使用兩個執行緒去送封包,每個執行緒會負責10M/2的速度 ![terminal_tcpreplay complete successfully_v1](https://hackmd.io/_uploads/H1fuohcSR.png)