Commit 5a393a5a authored by Georgios P. Katsikas's avatar Georgios P. Katsikas
Browse files

feat: P4 UPF service handler based on SD-Fabric

parent 26f5a3cf
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -359,6 +359,7 @@ enum ServiceTypeEnum {
  SERVICETYPE_IP_LINK = 11;
  SERVICETYPE_TAPI_LSP = 12;
  SERVICETYPE_IPOWDM = 13;
  SERVICETYPE_UPF = 14;
}

enum ServiceStatusEnum {
+3 −0
Original line number Diff line number Diff line
@@ -38,6 +38,9 @@ class DeviceTypeEnum(Enum):
    EMULATED_PACKET_ROUTER          = 'emu-packet-router'
    EMULATED_PACKET_SWITCH          = 'emu-packet-switch'
    EMULATED_XR_CONSTELLATION       = 'emu-xr-constellation'
    EMULATED_ORAN_DU                = 'oran-du'
    EMULATED_ORAN_CU                = 'oran-cu'
    EMULATED_ORAN_CN                = 'oran-cn'

    # Real device types
    CLIENT                          = 'client'
+1 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ class ORM_ServiceTypeEnum(enum.Enum):
    IP_LINK                   = ServiceTypeEnum.SERVICETYPE_IP_LINK
    IPOWDM                    = ServiceTypeEnum.SERVICETYPE_IPOWDM
    TAPI_LSP                  = ServiceTypeEnum.SERVICETYPE_TAPI_LSP
    UPF                       = ServiceTypeEnum.SERVICETYPE_UPF

grpc_to_enum__service_type = functools.partial(
    grpc_to_enum, ServiceTypeEnum, ORM_ServiceTypeEnum)
+44 −2
Original line number Diff line number Diff line
@@ -20,8 +20,50 @@ class FilterFieldEnum(Enum):
    SERVICE_TYPE  = 'service_type'
    DEVICE_DRIVER = 'device_driver'

# Map allowed filter fields to allowed values per Filter field.
# If no restriction (free text) None is specified
SERVICE_TYPE_VALUES = {
    ServiceTypeEnum.SERVICETYPE_UNKNOWN,
    ServiceTypeEnum.SERVICETYPE_L3NM,
    ServiceTypeEnum.SERVICETYPE_L2NM,
    ServiceTypeEnum.SERVICETYPE_L1NM,
    ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE,
    ServiceTypeEnum.SERVICETYPE_TE,
    ServiceTypeEnum.SERVICETYPE_E2E,
    ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY,
    ServiceTypeEnum.SERVICETYPE_QKD,
    ServiceTypeEnum.SERVICETYPE_INT,
    ServiceTypeEnum.SERVICETYPE_ACL,
    ServiceTypeEnum.SERVICETYPE_IP_LINK,
    ServiceTypeEnum.SERVICETYPE_IPOWDM,
    ServiceTypeEnum.SERVICETYPE_TAPI_LSP,
    ServiceTypeEnum.SERVICETYPE_UPF,
}

DEVICE_DRIVER_VALUES = {
    DeviceDriverEnum.DEVICEDRIVER_UNDEFINED,
    DeviceDriverEnum.DEVICEDRIVER_OPENCONFIG,
    DeviceDriverEnum.DEVICEDRIVER_TRANSPORT_API,
    DeviceDriverEnum.DEVICEDRIVER_P4,
    DeviceDriverEnum.DEVICEDRIVER_IETF_NETWORK_TOPOLOGY,
    DeviceDriverEnum.DEVICEDRIVER_ONF_TR_532,
    DeviceDriverEnum.DEVICEDRIVER_XR,
    DeviceDriverEnum.DEVICEDRIVER_IETF_L2VPN,
    DeviceDriverEnum.DEVICEDRIVER_GNMI_OPENCONFIG,
    DeviceDriverEnum.DEVICEDRIVER_OPTICAL_TFS,
    DeviceDriverEnum.DEVICEDRIVER_IETF_ACTN,
    DeviceDriverEnum.DEVICEDRIVER_OC,
    DeviceDriverEnum.DEVICEDRIVER_QKD,
    DeviceDriverEnum.DEVICEDRIVER_IETF_L3VPN,
    DeviceDriverEnum.DEVICEDRIVER_IETF_SLICE,
    DeviceDriverEnum.DEVICEDRIVER_NCE,
    DeviceDriverEnum.DEVICEDRIVER_SMARTNIC,
    DeviceDriverEnum.DEVICEDRIVER_MORPHEUS,
    DeviceDriverEnum.DEVICEDRIVER_RYU,
    DeviceDriverEnum.DEVICEDRIVER_GNMI_NOKIA_SRLINUX,
    DeviceDriverEnum.DEVICEDRIVER_OPENROADM,
    DeviceDriverEnum.DEVICEDRIVER_RESTCONF_OPENCONFIG,
}

# Map allowed filter fields to allowed values per Filter field. If no restriction (free text) None is specified
FILTER_FIELD_ALLOWED_VALUES = {
    FilterFieldEnum.SERVICE_TYPE.value  : set(ServiceTypeEnum.values()),
    FilterFieldEnum.DEVICE_DRIVER.value : set(DeviceDriverEnum.values()),
+7 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ from .p4_fabric_tna_int.p4_fabric_tna_int_service_handler import P4FabricINTServ
from .p4_fabric_tna_l2_simple.p4_fabric_tna_l2_simple_service_handler import P4FabricL2SimpleServiceHandler
from .p4_fabric_tna_l3.p4_fabric_tna_l3_service_handler import P4FabricL3ServiceHandler
from .p4_fabric_tna_acl.p4_fabric_tna_acl_service_handler import P4FabricACLServiceHandler
from .p4_fabric_tna_upf.p4_fabric_tna_upf_service_handler import P4FabricUPFServiceHandler
from .tapi_lsp.Tapi_LSPServiceHandler import Tapi_LSPServiceHandler
from .tapi_tapi.TapiServiceHandler import TapiServiceHandler
from .tapi_xr.TapiXrServiceHandler import TapiXrServiceHandler
@@ -153,6 +154,12 @@ SERVICE_HANDLERS = [
            FilterFieldEnum.DEVICE_DRIVER: DeviceDriverEnum.DEVICEDRIVER_P4,
        }
    ]),
    (P4FabricUPFServiceHandler, [
        {
            FilterFieldEnum.SERVICE_TYPE: ServiceTypeEnum.SERVICETYPE_UPF,
            FilterFieldEnum.DEVICE_DRIVER: DeviceDriverEnum.DEVICEDRIVER_P4,
        }
    ]),
    (L2NM_IETFL2VPN_ServiceHandler, [
        {
            FilterFieldEnum.SERVICE_TYPE  : ServiceTypeEnum.SERVICETYPE_L2NM,
Loading