IT 정보

Network slice admission control in 3gpp rel 18

aiproductmanager 2025. 4. 23. 06:26
728x90
반응형
Network slice admission control in 3gpp rel 18
 

 

3GPP Release 18에서는 Network Slice Admission Control 기능이 진화하면서, 특히 5G SA(Core Network) 환경에서 slice 수준의 품질 보장(QoS)과 자원 최적화가 강화되었습니다. 이 기능은 네트워크 슬라이스 기반의 서비스 품질 및 SLA(서비스 수준 협약)를 보장하기 위해 핵심적인 역할을 합니다.


1. Rel-18에서의 주요 개선사항

Rel-18에서는 다음과 같은 사항이 반영되었습니다:

항목 설명
NSACF(Network Slice Admission Control Function) 새롭게 정의되거나 강화된 논리 기능으로, 슬라이스 별로 트래픽을 수용할지 여부를 결정함. SMF 또는 PCF와 협력함.
Policy 기반 Admission PCF와 연동하여 DNN/S-NSSAI 조합, 사용자 위치, 시간대, 로드 상황에 따라 유동적으로 결정
단말 식별 기반 제어 단말의 Subscription(SMF/UDM로부터), 위치, 속성 등을 기반으로 슬라이스 할당 여부 결정
QoS-aware Slice Admission 슬라이스 별로 설정된 QoS 파라미터(e.g. guaranteed bit rate, latency)를 고려한 판단 수행
Rel-17 대비 강화 Rel-17에서는 단순한 subscription 기반 slice 선택이 주였던 반면, Rel-18에서는 network condition, 정책, 로드 등 실시간 요소를 포함한 동적 제어가 핵심

2. 동작 시나리오

슬라이스 접속 요청 시 다음과 같은 절차로 Admission Control이 진행됩니다:

  1. UE가 PDU Session 설정 요청 → 특정 S-NSSAI 포함
  2. AMF가 NSSF를 통해 Slice Access 가능 여부 확인
  3. SMF가 NSACF/PCF를 통해 슬라이스 허용 판단 요청
  4. PCF는 정책 및 실시간 네트워크 상태 기반으로 승인 여부 결정
  5. 승인되면 PDU 세션 설정 → 슬라이스 기반 데이터 서비스 제공

3. 고객(사업자/일반 사용자) 관점 장점

사업자 측면:

  • 슬라이스 자원 효율화: 특정 시간/위치에서 부하 분산 가능
  • QoS SLA 보장: 프리미엄 고객 또는 특정 산업 서비스에 우선순위 제공
  • 비용 최적화: 과도한 자원 낭비 방지

일반 사용자 측면:

  • 서비스 안정성 향상: 슬라이스 오버로드 방지로 끊김 없는 서비스 제공
  • 지연/속도 보장: 필수 서비스(예: AR/VR, 원격의료 등)에서 품질 유지

4. 실제 활용 예시

  • 스마트팩토리 전용 슬라이스: 일반 소비자 슬라이스와 분리, 제조기기 우선 처리
  • 긴급통신 슬라이스: 재난 시 일반 트래픽을 제한하고 응급 슬라이스 우선 허용
  • 이통사 요금제 기반 슬라이스 차등 서비스: 프리미엄 사용자에게 더 빠른 네트워크 제공

 아래에 Rel-18 기반 **Network Slice Admission Control(NSAC)**의 전체 구조를 바탕으로 세 가지로 나누어 정리해드릴게요:


① 시그널링 흐름도 (PDU 세션 설정 중 슬라이스 허용 절차)

[UE] 
 │ 1. PDU Session Establishment Request (S-NSSAI 포함)
 ▼
[AMF]
 │ 2. NSSF에 슬라이스 허용 여부 질의
 ▼
[NSSF]
 │ 3. Slice Access 정보 반환 (Available S-NSSAI)
 ▼
[AMF]
 │ 4. SMF 선택 및 요청 전달
 ▼
[SMF]
 │ 5. NSACF 또는 PCF에 Admission Control 요청
 ▼
[PCF/NSACF]
 │ 6. Policy, Network 상태, Subscription 기반 판단
 │ 7. 허용 / 거부 결정
 ▼
[SMF]
 │ 8. PDU Session 생성 절차 진행
 ▼
[UE]
 │ 9. PDU Session Accept (성공 시)

 


② 장비 구성 예시 (SA 기반 MEC 환경 포함)

     +---------+        +----------+         +-----------+        +--------+
     |   UE    | <----> |   gNB    | <-----> |    UPF    | <----->| DN/MEC |
     +---------+        +----------+         +-----------+        +--------+
                            │
                            ▼
                        +--------+
                        |   AMF  |
                        +--------+
                            │
                            ▼
                        +--------+
                        |   SMF  |
                        +--------+
                            │
                ┌──────────┴──────────┐
                ▼                     ▼
            +--------+           +--------+
            |  PCF   |<--------->| NSACF  | ← (Rel-18)
            +--------+           +--------+
                                    │
                                    ▼
                                +--------+
                                |  UDM   | ← Subscription info
                                +--------+

 

NSACF는 논리적 기능으로 PCF 내부에 통합되거나 별도로 배치 가능


③ Sample JSON Policy (PCF 정책 설정 예)

{
  "policyRuleId": "slice-admission-rule-01",
  "applicableSnssai": {
    "sst": 1,
    "sd": "010203"
  },
  "admissionCriteria": {
    "allowedTime": ["08:00-20:00"],
    "maxLoadThreshold": 80,
    "allowedGeolocation": ["factory-zone-a", "city-hospital"],
    "subscriptionLevel": ["premium", "emergency"]
  },
  "priority": 100,
  "qosPolicy": {
    "5qi": 7,
    "gbr": "1Gbps",
    "latency": "20ms"
  },
  "action": "permit"
}

 

응용 시나리오 예 (Rel-18 적용 예)

사례 설명
스마트시티 교통 제어 교통 신호 제어 장치 슬라이스에 우선순위 할당, 일반 사용자 슬라이스는 혼잡 시 제한
대형 스포츠 행사 이벤트 구역에만 허용된 슬라이스 → 가입자 위치 기반 Admission Control
산업별 과금 모델 슬라이스별 허용량 초과 시 자동 거부 → 오버차지 없이 품질 유지

 

 

① 시나리오별 슬라이스 SLA 정책

시나리오 라이스 이름 SLA 목표 허용 조건 차단 조건
스마트팩토리 제어 SST=1, SD=010203 Latency < 10ms, Availability 99.999% 특정 공장 위치, 프리미엄 기기만 위치 벗어남, 비인가 단말
공공안전 통신 SST=1, SD=999911 Always-on, GBR 1Gbps 응급 서비스 가입자, 우선순위 Class 1 일반 소비자 요금제
대형행사 스트리밍 SST=1, SD=202311 100Mbps 이상 대역폭, Jitter < 30ms VIP 사용자, 행사장 위치 비회원, 타 지역 접속
IoT 저전력 센서망 SST=2, SD=112233 대역폭 < 1Mbps, Power-efficient 인증된 센서 전용 슬라이스 데이터 폭주 시 전체 차단
자율주행 차량 SST=1, SD=777000 Latency < 5ms, Real-time 허용된 구역, 등록된 차량 일반 차량, 위치 외 범위

② NSACF 로직 흐름도 (Policy Decision 단계 중심)

[Step 1] SMF로부터 NSACF 호출
    ↓
[Step 2] NSACF는 입력 파라미터 확인
    - S-NSSAI
    - UE 위치정보
    - Subscription (UDM에서)
    - 네트워크 부하 정보

    ↓
[Step 3] 정책 테이블(Policy Rule DB) 탐색
    - JSON 정책 룰 조건과 매칭
    - 시간 조건 / 위치 조건 / 우선순위 / 부하 기준 비교

    ↓
[Step 4] 판단 결과
    ├─ if 조건 충족 → “Permit”
    ├─ else if 과부하 → “Defer” or “Reject”
    └─ else → “Reject”

    ↓
[Step 5] 결과를 SMF에 전달
    - 승인 → 슬라이스 기반 PDU 세션 생성
    - 거부 → 대체 슬라이스 탐색 또는 실패 응답

 

PCF와 통합된 구조일 경우, Policy Decision Function이 해당 판단 수행


③ Python 기반 Admission Control 시뮬레이터 예시

import datetime

# 샘플 정책
policy = {
    "snssai": {"sst": 1, "sd": "010203"},
    "allowed_time": ("08:00", "20:00"),
    "max_load": 80,
    "allowed_location": ["factory-a", "plant-3"],
    "allowed_subscription": ["premium", "emergency"]
}

# 현재 환경
request = {
    "sst": 1,
    "sd": "010203",
    "current_time": "19:30",
    "network_load": 75,
    "location": "factory-a",
    "subscription": "premium"
}

def check_admission(policy, req):
    time_check = policy["allowed_time"][0] <= req["current_time"] <= policy["allowed_time"][1]
    load_check = req["network_load"] <= policy["max_load"]
    location_check = req["location"] in policy["allowed_location"]
    sub_check = req["subscription"] in policy["allowed_subscription"]
    snssai_check = policy["snssai"]["sst"] == req["sst"] and policy["snssai"]["sd"] == req["sd"]
    
    if all([snssai_check, time_check, load_check, location_check, sub_check]):
        return "Permit"
    elif not load_check:
        return "Defer"
    else:
        return "Reject"

# 시뮬레이션 실행
result = check_admission(policy, request)
print(f"Admission Control Decision: {result}")

 

필요하시면 위 코드를 API 서버형으로 확장하거나, 웹 기반 슬라이스 관리 대시보드 형태로 시각화도 가능합니다. 다음 단계로 어떤 걸 도와드릴까요?

  • 슬라이스 시각화 대시보드?
  • 실시간 슬라이스 매핑 API 예시?
  • PCF 정책 파일 자동 생성기?
  • 실제 3GPP 문서 참조 링크 정리?

 

 

위 이미지는 슬라이스별 현재 부하(Load)를 시각화한 대시보드 형태입니다. 각 슬라이스의 SLA 한계치와 비교하여 색상으로 상태를 표시했습니다:

  • 녹색: 정상 범위
  • 주황색: SLA 임계값 근접
  • 빨간색: SLA 한계 초과 (예: 자율주행 슬라이스)

이제 요청하신 나머지 세 가지 중 두 번째부터 계속 정리해드릴게요.


② 실시간 슬라이스 매핑 API 예시 (FastAPI 기반)

 

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class SliceRequest(BaseModel):
    sst: int
    sd: str
    location: str
    subscription: str
    time: str
    load: int

@app.post("/admission-control/")
def check_slice_admission(req: SliceRequest):
    policy = {
        "sst": 1,
        "sd": "010203",
        "allowed_location": ["factory-a", "plant-3"],
        "allowed_subscription": ["premium", "emergency"],
        "allowed_time": ("08:00", "20:00"),
        "max_load": 80
    }

    decision = "Reject"
    if (req.sst == policy["sst"] and req.sd == policy["sd"]
        and req.location in policy["allowed_location"]
        and req.subscription in policy["allowed_subscription"]
        and policy["allowed_time"][0] <= req.time <= policy["allowed_time"][1]
        and req.load <= policy["max_load"]):
        decision = "Permit"
    elif req.load > policy["max_load"]:
        decision = "Defer"

    return {"decision": decision}

 

/admission-control/ API로 실시간 슬라이스 허용 여부 판단 가능


③ PCF 정책 파일 자동 생성기 예시 (JSON 생성)

 

import json

def generate_policy(snssai, locations, subs, max_load, allowed_time):
    policy = {
        "policyRuleId": f"policy-{snssai['sd']}",
        "snssai": snssai,
        "allowed_location": locations,
        "allowed_subscription": subs,
        "max_load": max_load,
        "allowed_time": allowed_time,
        "action": "permit"
    }
    return json.dumps(policy, indent=4)

# 사용 예
print(generate_policy(
    {"sst": 1, "sd": "010203"},
    ["factory-a", "plant-3"],
    ["premium", "emergency"],
    80,
    ("08:00", "20:00")
))

 

④ 실제 3GPP 문서 참조 링크 (Rel-18 관련)

문서명 설명 링크
TS 23.503 Policy and Charging Control Framework (PCF) 3GPP TS 23.503
TS 23.501 System Architecture for 5G 3GPP TS 23.501
TS 29.510 Npcf_PolicyAuthorization Service 3GPP TS 29.510
TR 23.700-91 Rel-18 Enhancements on Network Slicing TR 23.700-91* (문서번호: 23.700-91)

일부 문서는 로그인 후 3GPP FTP 서버에서 다운로드 필요


이제 이 구조로 실제 PoC나 보고서, 솔루션 설계 문서도 구성 가능합니다. 다음으로 어떤 부분을 확장해드릴까요?

  • 슬라이스 대시보드 HTML/Python 완성본?
  • 시뮬레이터에 여러 슬라이스 병렬 비교?
  • 연동용 SMF/PCF 샘플 인터페이스 정의?
  • 고객사 제안서용 슬라이드 요약? ​

# 부록 8: NWDAF – RIC 연동 기반 구조도 및 설명

## 1. 전체 연동 구조도
```
[UE]
  │ RRC 측정/이벤트
  ▼
[gNB]
  │
  ▼
[Near-RT RIC] ←→ [SMO]
   │                │
   ▼                ▼
[NWDAF]      ←→  AI Model Store / Policy Engine
   │
   ▼
[5G Core (AMF / PCF / SMF)]
```

## 2. 주요 구성 요소 설명
| 구성 요소 | 역할 |
|------------|------|
| **UE** | RRC 상태, QoS 변화, 위치정보 등의 실시간 입력을 전송함 |
| **gNB** | UE로부터의 이벤트를 수신하여 RIC로 전달함 |
| **Near-RT RIC** | gNB로부터 받은 이벤트를 기반으로 수집 정책을 설정하고, 예측 및 제어 로직 실행함 |
| **SMO (Service Management & Orchestration)** | AI 모델의 배포/관리, RIC 정책 설정, SLA 기준 전달 수행함 |
| **NWDAF** | 전체 네트워크 상태(트래픽, 슬라이스, QoE)를 분석하고 예측하여 정책 결정에 활용함 |
| **5GC (AMF/PCF/SMF)** | RIC 및 NWDAF의 판단에 따라 슬라이스 및 QoS 설정을 조정함 |

## 3. 예측 기반 자동 제어 시나리오
### A. 트래픽 과부하 예측
- NWDAF가 특정 셀의 **향후 15분 내 트래픽 초과**를 예측
- SMO가 RIC에 리소스 재조정 정책 하달
- RIC가 해당 셀에 리소스를 미리 증설

### B. 슬라이스 수요 급증 대응
- NWDAF가 슬라이스 X의 사용자 수 급증 예측
- PCF에 슬라이스 우선순위 변경 지시
- SMF가 슬라이스 QoS Rule을 재배정함

### C. QoE 저하 선제 대응
- UE가 핸드오버 실패를 반복할 경우
- RIC가 예측모델에 따라 QoE 저하 예측
- 다른 셀로 강제 재배치 or 슬라이스 변경

## 4. 핵심 표준 문서
| 문서 | 설명 |
|------|------|
| **TS 23.288** | NWDAF 아키텍처, 수집 항목, 정책 연계 흐름 |
| **TS 28.552** | SMO–RIC 간 인터페이스, AI/ML 모델 구조 명세 |
| **TR 38.843** | AI 기반 RAN 수집/제어 구조도 및 예시 시나리오 |
| **TS 23.501 / 503** | 슬라이스 정책 연동 및 제어 흐름 명세

 

아래 캔버스에 요청하신 슬라이스 대시보드 구현, 병렬 시뮬레이터, 인터페이스 정의, 제안서 요약 4가지를 모두 담은 통합 문서를 생성했습니다. 각 구성은 다음과 같습니다:

  1. Streamlit 기반 대시보드 코드
  2. 멀티 슬라이스 병렬 Admission Control 시뮬레이터
  3. SMF ↔ PCF 인터페이스 API 정의(YAML 포맷)
  4. 고객 제안서용 슬라이드 요약 텍스트

아래는 각각의 내용을 실행하거나 시스템에 적용할 수 있도록 요약 정리한 것입니다:


① 슬라이스 대시보드 (Streamlit 기반 실행 방법)

파일 구성 예시 (slice_dashboard.py):

# 실행: streamlit run slice_dashboard.py
import streamlit as st
import pandas as pd

st.title("Network Slice SLA Dashboard")

slices = pd.DataFrame({
    "Slice": ["Factory", "Public Safety", "Event", "IoT", "Auto Vehicles"],
    "Current Load": [68, 45, 85, 30, 95],
    "Max SLA": [80, 60, 90, 50, 95]
})

st.bar_chart(slices.set_index("Slice"))

slices["Status"] = slices.apply(lambda row:
    "Maxed" if row["Current Load"] >= row["Max SLA"] else
    "Caution" if row["Current Load"] >= 0.9 * row["Max SLA"] else
    "Normal", axis=1)

st.dataframe(slices)

 

실행 전 필수 설치:

bash
 
pip install streamlit pandas

 

 

② 여러 슬라이스 병렬 Admission 시뮬레이터

예제 코드:

import datetime

def admission_decision(req, policy):
    now = datetime.datetime.strptime(req["time"], "%H:%M")
    start = datetime.datetime.strptime(policy["time_range"][0], "%H:%M")
    end = datetime.datetime.strptime(policy["time_range"][1], "%H:%M")

    if (req["location"] in policy["locations"] and
        req["subscription"] in policy["subscriptions"] and
        start <= now <= end and
        req["load"] <= policy["max_load"]):
        return "Permit"
    elif req["load"] > policy["max_load"]:
        return "Defer"
    else:
        return "Reject"

# 샘플 정책 및 요청
policy1 = {"locations": ["factory-a"], "subscriptions": ["premium"], "max_load": 80, "time_range": ("08:00", "20:00")}
policy2 = {"locations": ["event-hall"], "subscriptions": ["vip"], "max_load": 90, "time_range": ("10:00", "22:00")}

req1 = {"location": "factory-a", "subscription": "premium", "load": 75, "time": "09:00"}
req2 = {"location": "event-hall", "subscription": "vip", "load": 92, "time": "11:00"}

print("Decision 1:", admission_decision(req1, policy1))  # Permit
print("Decision 2:", admission_decision(req2, policy2))  # Defer

③ SMF ↔ PCF API 인터페이스 정의 (OpenAPI 기반 예)

YAML 문서 (OpenAPI 3.0 포맷 예시):

paths:
  /admission:
    post:
      summary: Slice Admission Control
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                sst:
                  type: integer
                sd:
                  type: string
                location:
                  type: string
                subscription:
                  type: string
                time:
                  type: string
                load:
                  type: integer
      responses:
        200:
          description: Admission Result
          content:
            application/json:
              schema:
                type: object
                properties:
                  decision:
                    type: string

 

이 YAML은 Swagger 기반 문서화 도구 또는 FastAPI에서 활용 가능하며, PCF 기능을 외부 시스템(SMF 등)에서 호출할 수 있게 만듭니다.


 

728x90
반응형

'IT 정보' 카테고리의 다른 글

L4S (Low Latency, Low Loss, Scalable throughput)  (0) 2025.04.23
Support of network slice replacement  (0) 2025.04.23
Supporting LADN per DNN and S=NSSAI  (0) 2025.04.23
SNPN support SNPN Handover  (0) 2025.04.23
QOS monitoring UPF event exposure  (0) 2025.04.23