# 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` 的專案目錄底下執行


**Step 1**
把需要的開發工具安裝到環境中


```
sudo pip install -r requirements.txt
```
並且安裝tcpreplay

```
sudo apt install tcpreplay
```
<br/><br/><br/><br/><br/><br/>
**Step 2**
到 `ORAN-Packet-Generator` 的專案目錄底下執行主程式


```
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

**可以自定義目標MAC address,預設為broadcast**
• S-Plane:

<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
• C-Plane(type 1):

<br/><br/><br/>
• C-Plane(type 3):

<br/><br/><br/><br/><br/>
• U-Plane:

### **發送封包之前先開啟wireshark**
備註:如果未安裝過wireshark請先執行以下指令來安裝wireshark,如果已經安裝,請跳過此步驟

```
sudo apt install wireshark
```
如果已經安裝過就可以直接開啟wireshark

```
sudo wireshark
```
<br/><br/><br/><br/><br/>
並且選擇使用哪張網卡(本篇說明以en33網卡為例,請依實際需求選擇即可)

在Apply a display filter... 那一列輸入要觀察的Protocol(以ptp為例)後,按下Enter

開啟I/O Graph

確認Y軸更改為Bits,並且確認Enbled只有勾選我們要觀測的ptp

<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
### **到ORAN Packet Generator網頁上發送封包**
(以s_plane , 10M ,180秒, Broadcast為例 )
填完資料後按下Submit後:

點擊Submit發送封包,並且回到wireshark的I/O Graphs來觀察發送情況

也可以在wireshark上看到每個封包詳細的資訊

封包發送完畢後可以在ORAN Packet Generator網頁上看到剛剛發送封包的相關資訊

同時執行app.py的terminal也會在發送完封包回報剛剛發送的情況
包括速度,時長以及使用的網卡
因為是使用兩個執行緒去送封包,每個執行緒會負責10M/2的速度
