キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
796
閲覧回数
0
いいね!
0
コメント
Tomonobu Okada
Cisco Employee
Cisco Employee

はじめに

Cisco CUPS(Control and User Plane Separation) ソリューションにおける Sx インターフェースの Load/Overload Control 機能について説明したいと思います。本機能は 3GPP TS 29.244 で定義されていて、Sx のみではなく 5G の SMF/UPF 間の N4 インターフェースでも同様の機能になります。

Screen Shot 2020-07-24 at 23.33.52.png

Sx および N4 インターフェースでは PFCP(Packet Forwarding Control Protocol) というプロトコルを使用してデータをやり取りします。Load/Overload Control 機能も PFCP プロトコルに組み込まれています。

機能概要

デフォルトの状態では CP は単純にセッション数を元に新規セッションを UP に割り当てます。つまり、最もセッション数が低い UP が選択され、基本ラウンドロビンのような形になります。Load/Overload Control 機能を有効にすると、UP は CP に対して LCI(Load Control Information) および OCI(Overload Control Information) を送ります。CP はこれらの情報を元に、セッション数ではなく UP の負荷が均等になるようにセッションを割り当てます。

以下の3つのモードが定義されています。

  • Normal: 通常の状態。
  • Overload: 負荷が上がり Overload になっている状態。CP で Control メッセージのスロットルをおこなう。 
  • Self Protection: Overload よりもさらに負荷が上がっている状態。UP で Control メッセージのスロットルをおこなう。

UP の選択は以下のように実行されます。

  • もし全ての UP が Normal モードの場合、LCI が最も低い UP が選択される
  • もし UP が Overload モードの場合、OCI が最も低い UP が選択される
  • もし LCI/OCI ともに同じ値の場合、セッション数が低い UP が選択される

Overload モードの場合、Reduction Metric に応じてメッセージのスロットルが実施されます。Overload Reduction Metric はパーセンテージになっていて、この値を満たすように CP は対象 UP に対する Sx Session Establishment Request をスロットルします。なお、eMPS(high priority) セッションに関してはスロットルの対象にはなりません。

Self Protection モードの場合は UP で新規セッションが Reject されます。また、Self Protection モードが継続すると、UP は徐々に Session Termination をトリガーし始めます。これは、Sx Session Report Request を通じて CP にリクエストされます。

Overload/Self Protection モードではデータスロットルも実行されます。新規 Stream がドロップされたり、データの速度制限が適用されたりします。

設定

CP では Load/Overload Control を有効にする必要があります。

sx-service SX-SVC1
sx-protocol supported-features load-control
sx-protocol supported-features overload-control

UP では以下のように userplane-load-control-profile と userplane-overload-control-profile を設定します。パラメータは環境によって調整する必要があります。

userplane-overload-control-profile OL-PROFILE-1
system-weightage system-cpu-utilization 60 system-memory-utilization 40 license-session-utilization 0
sessmgr-weightage sessmgr-cpu-utilization 60 sessmgr-memory-utilization 40
overload-threshold system lower-limit 75 upper-limit 80 sessmgr lower-limit 75 upper-limit 80 vpp-cpu lower-limit 75 upper-limit 80
#exit
userplane-load-control-profile LC-PROFILE-1
system-weightage system-cpu-utilization 30 system-memory-utilization 30 license-session-utilization 40
sessmgr-weightage sessmgr-cpu-utilization 60 sessmgr-memory-utilization 40
#exit

そしてそれぞれの profile を user-plane-service に紐付けます。

user-plane-service UP-SVC
associate userplane-load-control-profile UP-LC-PROFILE-1
associate userplane-overload-control-profile UP-OL-PROFILE-1

各パラメータの細かい内容はここでは省略しますが、各種 weightage の設定でどのメトリクスに重きをおくかにより load の値も変わりますので、慎重に検証・設定する必要があります。Load/Overload どちらの設定にも共通の項目として inclusion-frequency advertisement-interval がありますが、これはこの程度のインターバルで LCI/OCI の値を Sx のメッセージに含めるか設定するものです。

動作確認

まず CP で機能を有効にすると、その情報が UP に対してアップデートされます。

[U-PLANE]PFCP Rx PDU, from 2001:10:1:200::1:8805 to 2001:10:1:200::101:8805 (34)
SEID: NA, Message type: SX_ASSOCIATION_UPDATE_REQUEST (0x07)
--- skip ---
CP Function Features:
Type: 89 Length: 1
Value:
LOAD: 1
OVRL: 1
Hex: 0059 0001 03

この情報を見て UP は CP が機能をサポートしていると判断し、LCI/OCI を送り始めます。

LOAD CONTROL INFO:
Value:
SEQUENCE NUMBER:
Value: 1595569013
METRIC:
Value: 70

OVERLOAD CONTROL INFO:
Value:
SEQUENCE NUMBER:
Value: 1595568456
METRIC:
Value: 5
TIMER:
Value:
Timer Unit: 2 seconds
Timer Value: 15
OCI FLAGS:
Value:
AOCI: 1

CP 上では show sx peers コマンドで LCI/OCI の一覧が確認できます。

[local]saegw-cp# show sx peers
--- skip ---
||||| Sx Service No of
||||| ID Restart
||||| | Recovery | Current Max Peer
vvvvv v Group Name Node ID Peer ID Timestamp v Sessions Sessions State LCI OCI
----- ---- -------------------- ------------------------------ ---------- ------------------- ---- --------- --------- -------- ---- ----
UAACE 2 UP1 2001:10:1:200::101 33554438 2020-07-23:10:55:48 0 29 29 NONE 10 0
UAACE 2 UP1 2001:10:1:200::102 33554439 2020-07-23:10:56:02 0 1 30 NONE 45 0

show sx peers full address コマンドで UP ごとのさらに細かい情報が確認できます。

[local]saegw-cp# show sx peers full address 2001:10:1:200::101
Peer IP : 2001:10:1:200::101
Sx Service Id : 2
Group Name : UP1
Current Session : 29
Max Session : 29

Negotiated feature
Load Control : NA
Overload Control : NA

Load Control Information
Load Sequence Number : 1595585865
Load Metric : 10

Overload Control Information
Overload Sequence Number : 0
Overload Reduction Metric : 0
Overload Validity Timer : 0 secs

UP では、show user-plane-service statistics all コマンドで Load/Overload の状態を確認することができます。

Overload Stats:
Current State : Normal
Number of time self-protection condition reached in user plane : 0
No of Session Eshtablishment Req rejected during self-protection mode : 0
No of Session Modif Req rejected during self-protection mode : 0
No of eMPS Session Eshtablishment Req allowed during self-protection mode : 0
No of eMPS Session Modif Req allowed during self-protection mode : 0
Overload reduction metric : 0
Current Overload factor system : 10
Current Overload factor sessmgr : 10
Current Overload factor vpp cpu : 10

Overload Data Stats:
Total Packets dropped due to overload : 0
Total Bytes dropped due to overload : 0
Total Packets dropped in self-protection mode : 0
Total Bytes dropped in self-protection mode : 0

Load Stats:
Load metric : 10
Current Load factor system : 10
Current Load factor sessmgr : 10
Current Load factor vpp cpu : 10

 UP を Overload 状態にしてみます。

Overload Stats:
Current State : Overload
Number of time self-protection condition reached in user plane : 0
No of Session Eshtablishment Req rejected during self-protection mode : 0
No of Session Modif Req rejected during self-protection mode : 0
No of eMPS Session Eshtablishment Req allowed during self-protection mode : 0
No of eMPS Session Modif Req allowed during self-protection mode : 0
Overload reduction metric : 52
Current Overload factor system : 75
Current Overload factor sessmgr : 78
Current Overload factor vpp cpu : 79

Overload Data Stats:
Total Packets dropped due to overload : 0
Total Bytes dropped due to overload : 0
Total Packets dropped in self-protection mode : 0
Total Bytes dropped in self-protection mode : 0

Load Stats:
Load metric : 75
Current Load factor system : 75
Current Load factor sessmgr : 78
Current Load factor vpp cpu : 79

 OCI が同じなので均等に配分されますが、スロットルが実行されていることが分かります。

|||||  Sx Service                                                                            No of
||||| ID Restart
||||| | Recovery | Current Max Peer
vvvvv v Group Name Node ID Peer ID Timestamp v Sessio ns Sessions State LCI OCI
----- ---- -------------------- ------------------------------ ---------- ------------------- ---- --------- --------- -------- ---- ----
UAACE 2 UP1 2001:10:1:200::101 33554438 2020-07-23:10:55:48 0 16 29 NONE 75 52
UAACE 2 UP1 2001:10:1:200::102 33554439 2020-07-23:10:56:02 0 14 30 NONE 75 52
[local]saegw-cp# show sx-service statistics all | more

Session Management Messages:
Session Establishment Request:
Total TX: 18869 Total RX: 754
Initial TX: 18869 Initial RX: 0
Retrans TX: 0 Retrans RX: 0
Discarded: 754
No Rsp RX: 0
Throttled: 754

この場合の session disconnect reason は sx-no-resource になります。

[local]saegw-cp# show session disconnect-reasons
Session Disconnect Statistics

Total Disconnects: 5437

Disconnect Reason Num Disc Percentage
----------------------------------------------------- ---------- ----------
sx-no-resource 5273 96.98363

データ通信もスロットルされていることが確認できます。

Overload Data Stats:
Total Packets dropped due to overload : 932
Total Bytes dropped due to overload : 954368
Total Packets dropped in self-protection mode : 0
Total Bytes dropped in self-protection mode : 0

さらに Self Protection モードにしてみます。新規セッションが UP で Reject されていることが分かります。

Overload Stats:
Current State :Self Protection
Number of time self-protection condition reached in user plane : 0
No of Session Eshtablishment Req rejected during self-protection mode : 1
No of Session Modif Req rejected during self-protection mode : 0
No of eMPS Session Eshtablishment Req allowed during self-protection mode : 0
No of eMPS Session Modif Req allowed during self-protection mode : 0
Overload reduction metric : 100
Current Overload factor system : 81
Current Overload factor sessmgr : 78
Current Overload factor vpp cpu : 79

Overload Data Stats:
Total Packets dropped due to overload : 0
Total Bytes dropped due to overload : 0
Total Packets dropped in self-protection mode : 0
Total Bytes dropped in self-protection mode : 0

Load Stats:
Load metric : 75
Current Load factor system : 75
Current Load factor sessmgr : 78
Current Load factor vpp cpu : 79
[U-PLANE]PFCP Tx PDU, from 2001:10:1:200::102:8805 to 2001:10:1:200::1:50014 (21)
SEID: 0x000800000000347B, Message type: SX_SESSION_ESTABLISHMENT_RESPONSE (0x33)
--- skip ---
INFORMATION ELEMENTS
CAUSE:
Type: 19 Length: 1
Value:
Cause: PFCP_CAUSE_PFCP_ENTITY_IN_CONGESTION (0x4A)
Hex: 0013 0001 4A

 さらに Self Protection が継続すると、既存セッションの切断が UP からリクエストされます。

[C-PLANE]PFCP Rx PDU, from 2001:10:1:200::102:50070 to 2001:10:1:200::1:8805 (29)
SEID: 0x0008000000000121, Message type: SX_SESSION_REPORT_REQUEST (0x38)
--- skip ---
INFORMATION ELEMENTS
REPORT TYPE:
Type: 39 Length: 1
Self Protection Termination Report
Hex: 0027 0001 10

Session disconnect reason は graceful-term-up-self-protectn となります。

[local]saegw-cp# show session disconnect-reasons

Disconnect Reason Num Disc Percentage
----------------------------------------------------- ---------- ----------
graceful-term-up-self-protectn 31 0.54790

まとめ

このように単純にセッション数によるラウンドロビンではなく UP の負荷状態によって CP/UP 共同で自動的に適切なアクションを取れることは非常にメリットがあると言えます。ただしパラメータを適切に調整しないと特定の UP にセッションの偏りが発生するなどの問題が発生する可能性があるため、ぜひ検証のうえお試しください。

Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします