---
# System prepended metadata

title: ORAN Packet Generator 使用手冊

---

# 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)









