def send_association_release_message(self):
        # If setup is not established no need to release
        if self._smf_assoc_state != UPFAssociationState.ESTABLISHED:
            return

        #Create Node association release message
        assoc_message = UPFAssociationState(
            state_version=self._smf_assoc_version + 1,
            assoc_state=UPFAssociationState.RELEASE)

        self._send_association_request_message(assoc_message)
        self._smf_assoc_state = UPFAssociationState.RELEASE
        self._smf_assoc_version = 0
Example #2
0
    def send_association_setup_message(self):

        teid_range_indicate, teid_range_value =\
                  self._get_teid_pool_range()

        #Create Node association setup message
        assoc_message= \
           UPFAssociationState(
                           state_version=self._smf_assoc_version,
                           assoc_state=UPFAssociationState.ESTABLISHED,
                           feature_set=UPFFeatureSet(f_teid=True),
                           recovery_time_stamp=self._recovery_timestamp.GetCurrentTime(),
                           ip_resource_schema=\
                             [UserPlaneIPResourceSchema(ipv4_address=self.config.downlink_ip,
                                                        teid_range_indication=teid_range_indicate,
                                                        teid_range=teid_range_value)]
                           )

        self._assoc_mon_thread = hub.spawn(self._monitor_association, assoc_message)
    def get_node_assoc_message(self):
        node_message = UPFNodeState(upf_id=self._node_id)

        teid_range_indicate, teid_range_value =\
                         self._get_teid_pool_range()

        #Create Node association setup message
        assoc_message = \
           UPFAssociationState(
                           state_version=self._smf_assoc_version,
                           assoc_state=UPFAssociationState.ESTABLISHED,
                           feature_set=UPFFeatureSet(f_teid=True),
                           recovery_time_stamp=self._recovery_timestamp.GetCurrentTime(),
                           ip_resource_schema=\
                             [UserPlaneIPResourceSchema(ipv4_address=self.config.downlink_ip,
                                                        teid_range_indication=teid_range_indicate,
                                                        teid_range=teid_range_value)]
                           )

        node_message.associaton_state.CopyFrom(assoc_message)
        return node_message