Skip to content
Snippets Groups Projects
Unverified Commit b2332d95 authored by Yan-Wei Chen's avatar Yan-Wei Chen Committed by GitHub
Browse files

Support to configure UP security (#11)

* Support to configure UP security

* Support to enable or disable UP security
parent 1057fb2b
No related branches found
No related tags found
No related merge requests found
...@@ -6,18 +6,35 @@ import _ from 'lodash'; ...@@ -6,18 +6,35 @@ import _ from 'lodash';
let snssaiToString = (snssai) => snssai.sst.toString(16).padStart(2, '0').toUpperCase() + snssai.sd let snssaiToString = (snssai) => snssai.sst.toString(16).padStart(2, '0').toUpperCase() + snssai.sd
function smDatasFromSliceConfiguration(sliceConfiguration) { function dnnConfigurationFromSliceConfiguration(dnnConfig){
return _.map(sliceConfiguration, slice => { if (dnnConfig.upSecurityChk === true) {
return { return {
"singleNssai": { "sscModes": {
"sst": slice.snssai.sst, "defaultSscMode": "SSC_MODE_1",
"sd": slice.snssai.sd "allowedSscModes": ["SSC_MODE_2", "SSC_MODE_3"]
}, },
"dnnConfigurations": _.fromPairs(_.map(slice.dnnConfigurations, dnnConfig => [ "pduSessionTypes": {
// key "defaultSessionType": "IPV4",
dnnConfig.dnn, "allowedSessionTypes": ["IPV4"]
// value },
{ "sessionAmbr": {
"uplink": dnnConfig.uplinkAmbr,
"downlink": dnnConfig.downlinkAmbr
},
"5gQosProfile": {
"5qi": dnnConfig["5qi"],
"arp": {
"priorityLevel": 8
},
"priorityLevel": 8
},
"upSecurity": {
"upIntegr": dnnConfig.upIntegrity,
"upConfid": dnnConfig.upConfidentiality
}
}
}
return {
"sscModes": { "sscModes": {
"defaultSscMode": "SSC_MODE_1", "defaultSscMode": "SSC_MODE_1",
"allowedSscModes": ["SSC_MODE_2", "SSC_MODE_3"] "allowedSscModes": ["SSC_MODE_2", "SSC_MODE_3"]
...@@ -38,6 +55,20 @@ function smDatasFromSliceConfiguration(sliceConfiguration) { ...@@ -38,6 +55,20 @@ function smDatasFromSliceConfiguration(sliceConfiguration) {
"priorityLevel": 8 "priorityLevel": 8
} }
} }
}
function smDatasFromSliceConfiguration(sliceConfiguration) {
return _.map(sliceConfiguration, slice => {
return {
"singleNssai": {
"sst": slice.snssai.sst,
"sd": slice.snssai.sd
},
"dnnConfigurations": _.fromPairs(_.map(slice.dnnConfigurations, dnnConfig => [
// key
dnnConfig.dnn,
// value
dnnConfigurationFromSliceConfiguration(dnnConfig)
])) ]))
} }
}) })
...@@ -103,6 +134,18 @@ function sliceConfigurationsFromSubscriber(subscriber) { ...@@ -103,6 +134,18 @@ function sliceConfigurationsFromSubscriber(subscriber) {
} }
}) })
} }
if (dnnConfigs[dnn].upSecurity !== null){
return {
dnn: dnn,
uplinkAmbr: dnnConfigs[dnn].sessionAmbr.uplink,
downlinkAmbr: dnnConfigs[dnn].sessionAmbr.downlink,
"5qi": dnnConfigs[dnn]["5gQosProfile"]["5qi"],
flowRules: flowRules,
upSecurityChk: true,
upIntegrity: dnnConfigs[dnn].upSecurity.upIntegr,
upConfidentiality: dnnConfigs[dnn].upSecurity.upConfid
};
}
return { return {
dnn: dnn, dnn: dnn,
uplinkAmbr: dnnConfigs[dnn].sessionAmbr.uplink, uplinkAmbr: dnnConfigs[dnn].sessionAmbr.uplink,
...@@ -303,6 +346,45 @@ class SubscriberModal extends Component { ...@@ -303,6 +346,45 @@ class SubscriberModal extends Component {
items: { $ref: "#/definitions/FlowInformation" }, items: { $ref: "#/definitions/FlowInformation" },
maxItems: 1, maxItems: 1,
title: "Flow Rules" title: "Flow Rules"
},
upSecurityChk: {
"type": "boolean",
title: "UP Security",
"default": false
},
},
"dependencies": {
upSecurityChk: {
"oneOf": [
{
"properties": {
upSecurityChk: {
"enum": [false]
}
},
},
{
"properties": {
upSecurityChk: {
"enum": [true]
},
upIntegrity: {
type: "string",
title: "Integrity of UP Security",
enum: ["NOT_NEEDED", "PREFERRED", "REQUIRED"],
},
upConfidentiality: {
type: "string",
title: "Confidentiality of UP Security",
enum: ["NOT_NEEDED", "PREFERRED", "REQUIRED"],
},
},
"required": [
"upIntegrity",
"upConfidentiality"
]
}
]
} }
}, },
}, },
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment