{ "type": "array", "objects": { "description": "This type represents the general information of a traffic rule.", "type": "object", "required": [ "trafficRuleId", "filterType", "priority", "trafficFilter", "action", "state" ], "properties": { "trafficRuleId": { "description": "Identify the traffic rule.", "type": "string", "example": "TrafficRule1" }, "filterType": { "description": "Definition of filter per FLOW or PACKET. If flow the filter match UE->EPC packet and the reverse packet is handled in the same context", "type": "string", "enum": [ "FLOW", "PACKET" ], "example": "FLOW" }, "priority": { "description": "Priority of this traffic rule. If traffic rule conflicts, the one with higher priority take precedence", "type": "integer", "format": "uint32", "example": 1 }, "trafficFilter": { "type": "array", "items": { "description": "This type represents the traffic filter.", "type": "object", "properties": { "srcAddress": { "description": "An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes.", "type": "array", "items": { "description": "Identify the traffic ip address.", "type": "string", "example": "192.168.1.1" } }, "dstAddress": { "description": "An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes.", "type": "array", "items": { "description": "Identify the traffic ip address.", "type": "string", "example": "192.168.1.1" } }, "srcPort": { "description": "A port or a range of ports", "type": "array", "items": { "description": "A port", "type": "string", "example": "8080" } }, "dstPort": { "description": "A port or a range of ports", "type": "array", "items": { "description": "A port", "type": "string", "example": "8080" } }, "protocol": { "description": "Specify the protocol of the traffic filter", "type": "array", "items": { "description": "Protocol of the traffic filter", "type": "string", "example": "?" } }, "token": { "description": "Used for token based traffic rule", "type": "array", "items": { "description": "Used for token based traffic rule", "type": "string", "example": "?" } }, "srcTunnelAddress": { "description": "Used for GTP tunnel based traffic rule", "type": "array", "items": { "description": "Used for GTP tunnel based traffic rule", "type": "string", "example": "?" } }, "tgtTunnelAddress": { "description": "Used for GTP tunnel based traffic rule", "type": "array", "items": { "description": "Used for GTP tunnel based traffic rule", "type": "string", "example": "?" } }, "srcTunnelPort": { "description": "Used for GTP tunnel based traffic rule", "type": "array", "items": { "description": "Used for GTP tunnel based traffic rule", "type": "string", "example": "?" } }, "dstTunnelPort": { "description": "Used for GTP tunnel based traffic rule", "type": "array", "items": { "description": "Used for GTP tunnel based traffic rule", "type": "string", "example": "?" } }, "qCI": { "description": "Used to match all packets that have the same Quality Class Indicator (QCI).", "type": "integer", "format": "uint32", "example": 1 }, "dSCP": { "description": "Used to match all IPv4 packets that have the same Differentiated Services Code Point (DSCP)", "type": "integer", "format": "uint32", "example": 0 }, "tC": { "description": "Used to match all IPv6 packets that have the same Traffic Class.", "type": "integer", "format": "uint32", "example": 1 } } } }, "action": { "description": "The action of the MEC host data plane when a packet matches the trafficFilter\n ", "type": "string", "enum": [ "DROP", "FORWARD_DECAPSULATED", "FORWARD_ENCAPSULATED", "PASSTHROUGH", "DUPLICATE_DECAPSULATED", "DUPLICATE_ENCAPSULATED" ], "example": "DROP" }, "dstInterface": { "description": "This type represents the destination interface. If the action is FORWARD_DECAPSULATED, FORWARD_ENCAPSULATED or PASSTHROUGH one value shall be provided. If the action is DUPLICATE_DECAPSULATED or DUPLICATE_ENCAPSULATED, two values shall be provided. If the action is DROP, no value shall be provided.", "type": "object", "required": [ "interfaceType" ], "properties": { "interfaceType": { "description": "Type of the interface", "type": "string", "enum": [ "TUNNEL", "MAC", "IP" ], "example": "TUNNEL" }, "tunnelInfo": { "description": "This type represents the tunnel information.", "type": "object", "required": [ "tunnelType" ], "properties": { "tunnelType": { "description": "This type represents the tunnel information.", "type": "string", "enum": [ "GTP_U", "GRE" ], "example": "GTP_U" }, "tunnelDstAddress": { "description": "Destination address of the tunnel", "type": "string", "example": "?" }, "tunnelSrcAddress": { "description": "Source address of the tunnel", "type": "string", "example": "?" } } }, "srcMacAddress": { "description": "Source address identifies the MAC address of the interface", "type": "string", "example": "02-00-00-00-00-00" }, "dstMacAddress": { "description": "Source address identifies the MAC address of the interface", "type": "string", "example": "02-00-00-00-00-00" }, "dstIpAddress": { "description": "IP address of the remote destination", "type": "string", "example": "192.0.2.0" } } }, "state": { "description": "Contains the traffic rule state. This attribute may be updated using HTTP PUT method", "type": "string", "enum": [ "ACTIVE", "INACTIVE" ], "example": "ACTIVE" } } } }