ULCL 實作 - ianchen0119/Introduce-to-5GC GitHub Wiki

ULCL 介紹

圖 1:取自 User plane Architecture for the Uplink Classifier

取自 TS 23.501

早期的 EPC(4G CN)並沒有分流的概念,而 5GC 提出了 Uplink Classifier 的架構,讓核心網路可以針對不同的業務區隔不同類型的流量。 以上圖來說,充當 Uplink Classifier 的 Branching UPF 會識別來自 N3 的資料流,依據自身的設定將流量透過 N9 接口轉發給不同的 Anchor UPF。

下行資料流如何被處理?

當 Anchor UPF 收來來自 N6 接口的 DL Data flow 會將它轉發到 Branching UPF,等到 Branching UPF 從 N9 接口收到資料流後,會將所有資料流匯整在一起發送給 RAN。

小試身手:使用 free5gc-compose 模擬 ULCL 場景

目前 free5GC 的官方文件對於 ULCL 的設定方式並沒有交代的非常清楚,唯一的教學影片又需要架設多台 Virtual Machine。 為了節省時間,筆者使用 free5gc-compose 去實作 ULCL,架構上會有 3 個 UPF,分別是:

  • Branching UPF
  • Anchor UPF - 1
  • Anchor UPF - 2

Branching UPF 作為 Uplink Classifier,其餘兩個 UPF 會從 N9 Interface 接收到來自 Branching UPF 的 Uplink Data Flow。 當 Anchor UPF 收到來自 N6 的 Downlink Data 時,會透過 N9 將資料轉發給 Branching UPF,Branching UPF 會負責將這些 Downlink Data 傳送至 RAN。

使用教學

先打開終端機輸入以下命令取得 free5gc-compose:

git clone https://github.com/free5gc/free5gc-compose.git
cd free5gc-compose

切換至 ulcl 分支:

git checkout ulcl-example

編譯 Service 所需要的 Docker image:

make base
docker-compose build

編譯完成後,使用以下命令啟動它:

sudo docker-compose up

使用完後,可以使用以下命令移除已建立的容器:

docker-compose rm

References