hpimdm/tree/root_state_machine.py
def interfaces_roles_dont_change_and_best_upstream_neighbor_reelected(interface: 'TreeInterfaceRoot'):
        """
        Interfaces roles dont change (this interface remains Root) AND
        BestUpstreamNeighbor changes AND
        BestUpstreamNeighbor is not null
        (other router was elected as the responsible for forwarding multicast data packets)

        OR

        Interfaces roles dont change (this interface remains Root) AND
        BestUpstreamNeighbor transmitted a new IamUpstream message AND
        that neighbor is still responsible for forwarding multicast data packet
        (a new IamUpstream message was received from the BestUpstreamNeighbor but that router is still responsible for
        forwarding multicast data packets)
        """
        interface.logger.debug('interfaces_roles_dont_change_and_best_upstream_neighbor_reelected')
        interface.send_my_interest()

        Interfaces roles dont change (this interface remains Root) AND
        BestUpstreamNeighbor changes AND
        BestUpstreamNeighbor is not null
        (other router was elected as the responsible for forwarding multicast data packets)

        OR

        Interfaces roles dont change (this interface remains Root) AND
        BestUpstreamNeighbor transmitted a new IamUpstream message AND
        that neighbor is still responsible for forwarding multicast data packet
        (a new IamUpstream message was received from the BestUpstreamNeighbor but that router is still responsible for
        forwarding multicast data packets)
        
Interfaces roles dont change (this interface remains Root) AND
BestUpstreamNeighbor changes AND
BestUpstreamNeighbor is not null
(other router was elected as the responsible for forwarding multicast data packets)

OR

Interfaces roles dont change (this interface remains Root) AND
BestUpstreamNeighbor transmitted a new IamUpstream message AND
that neighbor is still responsible for forwarding multicast data packet
(a new IamUpstream message was received from the BestUpstreamNeighbor but that router is still responsible for
forwarding multicast data packets)
Interfaces roles dont change ( this interface remains Root ) AND BestUpstreamNeighbor changes AND BestUpstreamNeighbor is not null ( other router was elected as the responsible for forwarding multicast data packets ) OR Interfaces roles dont change ( this interface remains Root ) AND BestUpstreamNeighbor transmitted a new IamUpstream message AND that neighbor is still responsible for forwarding multicast data packet ( a new IamUpstream message was received from the BestUpstreamNeighbor but that router is still responsible for forwarding multicast data packets )
def interfaces_roles_dont_change_and_best_upstream_neighbor_reelected(interface: 'TreeInterfaceRoot'):
        interface.logger.debug('interfaces_roles_dont_change_and_best_upstream_neighbor_reelected')
        interface.send_my_interest()
def interfaces_roles_dont_change_and_best_upstream_neighbor_reelected ( interface : 'TreeInterfaceRoot' ) : interface . logger . debug ( 'interfaces_roles_dont_change_and_best_upstream_neighbor_reelected' ) interface . send_my_interest ( )
Interfaces roles dont change (this interface remains Root) AND
BestUpstreamNeighbor changes AND
BestUpstreamNeighbor is not null
(other router was elected as the responsible for forwarding multicast data packets)
Interfaces roles dont change ( this interface remains Root ) AND BestUpstreamNeighbor changes AND BestUpstreamNeighbor is not null ( other router was elected as the responsible for forwarding multicast data packets )
"""
        Interfaces roles dont change (this interface remains Root) AND
        BestUpstreamNeighbor changes AND
        BestUpstreamNeighbor is not null
        (other router was elected as the responsible for forwarding multicast data packets)

        OR

        Interfaces roles dont change (this interface remains Root) AND
        BestUpstreamNeighbor transmitted a new IamUpstream message AND
        that neighbor is still responsible for forwarding multicast data packet
        (a new IamUpstream message was received from the BestUpstreamNeighbor but that router is still responsible for
        forwarding multicast data packets)
        """
interface
'TreeInterfaceRoot'