Split up_peer into pfcp_{node,entity}_peer (details)
Validate session remote CP F-SEID and use it to transmit session (details)
Commit
546786c5365aa6a33f4cb18e9487cd5f962cefdb
by Pau Espin Pedrol
Split up_peer into pfcp_{node,entity}_peer
Match our data domain with the specifications in 3GPP TS 29.244: """ CP function: A node with a Control Plane function (see 3GPP TS 23.214 [2]) supporting one or more PFCP entities. A Control Plane function, i.e. a Control Plane Node, is identified by the Node ID that is set to either an FQDN or an IP address.
UP function: A node with a User Plane function (see 3GPP TS 23.214 [2]) supporting one or more PFCP entities. A User Plane function, i.e. a User Plane Node, is identified by the Node ID that is set to either a FQDN or an IP address.
Node: Either a CP function or an UP function supporting one or more PFCP entities. A Node is identified by the Node ID, which is set to either an FQDN or an IP address.
PFCP Entity: An endpoint in a CP (or UP) function supporting PFCP, that is identified by the IP address. The IP address of a PFCP entity may or may not be the IP address included in the Node ID. """
In general, we have a "pfcp_node_peer 1-1 pfcp_entity_peer" relation, and this is what so far is implemented here. In the future we can improve code to support a "pfcp_node_peer 1-* pfcp_entity_peer" relation, which can actually be implemented in 2 different ways (2 different features) as explained in 3GPP TS 29.244 section 5.22.
Due to those 2 different features, it's actually difficult to figure out where to install the FSM with the association state (entity vs node). For now, leave it at the pfcp_entity_peer level, in order to simplify the implementation and make the changes in this patch easier to follow. Hence, pfcp_node_peer is so far only used to track Node-Id changes, and is released as soon as all its PFCP Entities are released.