feat(pcf): Add possibility to provision PCC rules from file
The policy decisions are configured in three different locations, as indicated in the pcf.conf The files itself are yaml files, but follow the specification of the Npcf_SMPolicyControl API (3GPP TS 29.512)
Each directory can contain many files and they will each be interpreted as the type indicated by the directory. It is also possible to configure multiple rules of the same type in the same file. All the rules do not need to have their ID set, as the ID is the name of the rule.
TRAFFIC_RULES_DIRECTORY
Contains the traffic rules. It must be structured as the TrafficControlData
element.
Example:
edge-ulcl-scenario:
routeToLocs:
- dnai: access
- dnai: edge
PCC_RULES_DIRECTORY
Contains the PCC rules. It must be structured as the PccRule
element. As seen in the example, when you want to influence traffic decisions, the ID in the refTcData
must refer to the one from the TRAFFIC_RULES_DIRECTORY.
Example:
edge-ulcl-rule:
flowInfos:
- flowDescription: permit out ip from 8.8.8.8 to assigned
precedence: 9
refTcData:
- edge-ulcl-scenario
POLICY_DECISIONS_DIRECTORY
In this directory you can define which PCC rule applies to which PDU session. There are currently four selection criteria:
- SUPI (only IMSI)
- DNN
- SLICE
- DEFAULT
The syntax of the file is as follows:
rule-name:
supi_imsi: <imsi>
dnn: <dnn>
slice:
sst: <sst>
sd: "sd"
pcc_rules:
- edge-ulcl-rule
- <rule2>
- ...
The rules in PCC rules must be created in the PCC_RULES_DIRECTORY first.