Commit df683bbd authored by Mudassar Khan's avatar Mudassar Khan
Browse files

add uml diagrams

parent 158b047a
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -230,10 +230,9 @@ The offboarding is triggered when the MEC 011 service shuts down (scenario deact

#### 4.2.1.3 Flow diagram

<!-- TODO -->
![Automatic Onboarding/Offboarding Flow](media/automatic-onboarding.puml)
![Automatic Onboarding/Offboarding Flow](media/automatic_onboarding.png)

> NOTE: The PlantUML source for this diagram is available at `media/automatic-onboarding.puml`.
<!-- > NOTE: The PlantUML source for this diagram is available at `media/automatic-onboarding.puml`. -->

#### 4.2.1.4 Configuration

@@ -298,10 +297,10 @@ When a MEC application deregisters a service via `DELETE /applications/{appInsta
   c. On success (HTTP 204), deletes the Redis mapping.

#### 4.2.2.3 Flow diagram
<!-- TODO -->
![Onboarding/Offboarding of Services Produced by MEC Applications](media/custom-service-onboarding.puml)

> NOTE: The PlantUML source for this diagram is available at `media/custom-service-onboarding.puml`.
![Onboarding/Offboarding of Services Produced by MEC Applications](media/service-producing-mec-apps.png)

<!-- > NOTE: The PlantUML source for this diagram is available at `media/custom-service-onboarding.puml`. -->

### 4.2.3 Conclusion

@@ -411,10 +410,10 @@ The discovery endpoint supports vendor-specific MEC query filters:
Supported CAPIF event types: `SERVICE_API_AVAILABLE`, `SERVICE_API_UNAVAILABLE`, `SERVICE_API_UPDATE`.

### 4.3.4 Flow diagram
<!-- TODO -->
![MEC Application Access to OCF Exposed APIs](media/mec-app-ocf-access.puml)

> NOTE: The PlantUML source for this diagram is available at `media/mec-app-ocf-access.puml`.
![MEC Application Access to OCF Exposed APIs](media/mec_app_access_ocf_exposed_APIs.png)

<!-- > NOTE: The PlantUML source for this diagram is available at `media/mec-app-ocf-access.puml`. -->

# 5 Rebrand ETSI MEC Sandbox into EdgeNative-X

+58 −0
Original line number Diff line number Diff line
@startuml automatic-onboarding
!theme plain
title Automatic Onboarding / Offboarding Flow

skinparam sequenceMessageAlign center
skinparam responseMessageBelowArrow true

participant "MEC 011\nService" as MEC011
participant "CAPIF Client\n(capif-client)" as CC
participant "OCF Register\nServer" as REG
participant "OCF Core\nFunction (CCF)" as CCF

== Initialization (Background Goroutine) ==

MEC011 -> CC: Init()

group Exponential Backoff (max 6 retries)
  CC -> REG: POST /login\n[Basic Auth: admin credentials]
  REG --> CC: 200 OK\n{access_token, refresh_token}

  CC -> REG: POST /createUser\n[Bearer: admin_token]\n{username: UUID, password, enterprise: ETSI}
  REG --> CC: 201 Created\n{uuid}

  CC -> REG: GET /getauth\n[Basic Auth: provider credentials]
  REG --> CC: 200 OK\n{access_token, ca_root,\nccf_onboarding_url, ccf_publish_url,\nccf_discover_url, ccf_security_url}

  CC -> CC: Generate 3 CSRs\n(AMF, AEF, APF)\nRSA 2048 / SHA256

  CC -> CCF: POST /{ccf_api_onboarding_url}\n[Bearer: access_token]\n{apiProvFuncs: [AMF_CSR, AEF_CSR, APF_CSR],\napiProvDomInfo: provider_domain}
  CCF --> CC: 201 Created\n{apiProvDomId, apiProvFuncs:\n[amfId+cert, aefId+cert, apfId+cert]}

  CC -> CC: Build mutual TLS clients\n- APF TLS client (publishing)\n- AMF TLS client (offboarding)
end

CC --> MEC011: ready = true

MEC011 -> CC: RegisterCapifService()
CC -> CCF: POST /{ccf_publish_url}/{apfId}\n[mTLS: APF cert]\n{ServiceAPIDescription:\ncapif-register-{sandbox}}
CCF --> CC: 201 Created\n{apiId}

== Shutdown ==

MEC011 -> CC: UnpublishAllServices()
loop For each published service
  CC -> CCF: DELETE /{ccf_publish_url}/{apfId}/{apiId}\n[mTLS: APF cert]
  CCF --> CC: 204 No Content
end

MEC011 -> CC: Cleanup()
CC -> CCF: DELETE /{ccf_api_onboarding_url}/{apiProvDomId}\n[mTLS: AMF cert]
CCF --> CC: 204 No Content

CC -> REG: DELETE /deleteUser/{userUUID}\n[Bearer: admin_token]
REG --> CC: 200 OK

CC --> MEC011: ready = false

@enduml
+52.2 KiB
Loading image diff...
+54 −0
Original line number Diff line number Diff line
@startuml mec-app-ocf-access
!theme plain
title MEC Application Access to OCF Exposed APIs

skinparam sequenceMessageAlign center
skinparam responseMessageBelowArrow true

participant "MEC\nApplication" as APP
participant "MEC 011 Service\n(service-mgmt)" as SM
participant "OCF Register\nServer" as REG
participant "OCF Core\nFunction (CCF)" as CCF

== Step 1: Discover OCF via MEC 011 ==

APP -> SM: GET /mec_service_mgmt/v1/services\n?ser_category_id=capifId
SM --> APP: 200 OK\n[ServiceInfo: capif-register-{sandbox}\nEndpoints: login, createUser, getauth,\ndiscover, onboard]

== Step 2: Register as API Invoker on OCF ==

APP -> REG: POST /login\n[Basic Auth: credentials]
REG --> APP: 200 OK\n{access_token, refresh_token}

APP -> REG: POST /createUser\n[Bearer: admin_token]\n{username, password}
REG --> APP: 201 Created\n{uuid}

APP -> REG: GET /getauth\n[Basic Auth: user credentials]
REG --> APP: 200 OK\n{access_token, ca_root,\nccf_onboarding_url, ccf_discover_url}

APP -> APP: Generate CSR\nfor API Invoker Function

APP -> CCF: POST /{ccf_onboarding_url}\n[Bearer: access_token]\n{apiInvPubKey: CSR,\nnotificationDestUri}
CCF --> APP: 201 Created\n{apiInvokerId, signed_cert}

== Step 3: Discover Published APIs ==

APP -> CCF: GET /{ccf_discover_url}\n?api-invoker-id={apiInvokerId}\n[mTLS: Invoker cert]
CCF --> APP: 200 OK\n{ServiceAPIDescriptions:\n[apiName, aefProfiles,\nresources, interfaceDescriptions]}

== Step 4: Invoke Discovered MEC Services ==

APP -> APP: Extract IPv4, port, URI\nfrom ServiceAPIDescription

APP -> SM: GET https://{ipv4}:{port}{uri}\n(Direct MEC service invocation)
SM --> APP: 200 OK\n{MEC service response}

== Step 5: Cleanup ==

APP -> CCF: DELETE /{ccf_onboarding_url}/{apiInvokerId}\n[mTLS: Invoker cert]
CCF --> APP: 204 No Content

APP -> REG: DELETE /deleteUser/{uuid}\n[Bearer: admin_token]
REG --> APP: 200 OK

@enduml
+51.4 KiB
Loading image diff...
Loading