Interface BGPPeerRegistry

  • All Superinterfaces:
    AutoCloseable
    All Known Implementing Classes:
    StrictBGPPeerRegistry

    public interface BGPPeerRegistry
    extends AutoCloseable
    Registry that contains configured bgp peers ready for when a bgp session is established with remote peer. IP address is uses as a key for configured peers. TODO Is IP sufficient ID for peers ?
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void addPeer​(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressNoZone ip, BGPSessionListener peer, BGPSessionPreferences prefs)
      Add configured peer, its IP address and preferences.
      BGPSessionListener getPeer​(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressNoZone ip, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4AddressNoZone sourceId, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4AddressNoZone remoteId, Open open)
      Get configured peer after BGP session was successfully established.
      BGPSessionPreferences getPeerPreferences​(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressNoZone ip)
      Get preferences for a remote peer.
      boolean isPeerConfigured​(@NonNull org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressNoZone ip)
      Check whether peer on provided IP address is present in this registry.
      @NonNull org.opendaylight.yangtools.concepts.Registration registerPeerRegisterListener​(@NonNull PeerRegistryListener listener)
      Register PeerRegistryListener, which listens to the changes in peer registry (add peer, remove peer).
      @NonNull org.opendaylight.yangtools.concepts.Registration registerPeerSessionListener​(PeerRegistrySessionListener listener)
      Register PeerRegistrySessionListener, which listens to the changes in sessions of peers in peer registry (create session, remove session).
      void removePeer​(@NonNull org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressNoZone ip)
      Remove configured peer from registry.
      void removePeerSession​(@NonNull org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressNoZone ip)
      Remove peer session from registry.
      void updatePeerPreferences​(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressNoZone ip, BGPSessionPreferences preferences)
      Set new preferences.
    • Method Detail

      • addPeer

        void addPeer​(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressNoZone ip,
                     BGPSessionListener peer,
                     BGPSessionPreferences prefs)
        Add configured peer, its IP address and preferences. To be used when a BGP session is established.
        Parameters:
        ip - address of remote peer
        peer - configured peer as BGPSessionListener
        prefs - session preferences for configured peer
      • removePeer

        void removePeer​(@NonNull org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressNoZone ip)
        Remove configured peer from registry.
        Parameters:
        ip - address of remote peer
      • removePeerSession

        void removePeerSession​(@NonNull org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressNoZone ip)
        Remove peer session from registry.
        Parameters:
        ip - address of remote peer
      • isPeerConfigured

        boolean isPeerConfigured​(@NonNull org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressNoZone ip)
        Check whether peer on provided IP address is present in this registry.
        Parameters:
        ip - address of remote peer
        Returns:
        true if peer is present false otherwise
      • getPeer

        BGPSessionListener getPeer​(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressNoZone ip,
                                   org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4AddressNoZone sourceId,
                                   org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4AddressNoZone remoteId,
                                   Open open)
                            throws BGPDocumentedException
        Get configured peer after BGP session was successfully established. Called by negotiators.
        Parameters:
        ip - address of remote peer
        sourceId - BGP ID of peer that initiated the session (current device or remote peer)
        remoteId - BGP ID of peer that accepted the session (current device or remote peer)
        open - remote Open message
        Returns:
        BGPSessionListener configured Peer as BGP listener
        Throws:
        BGPDocumentedException - if session establishment cannot be finished successfully
        IllegalStateException - if there is no peer configured for provided ip address
      • getPeerPreferences

        BGPSessionPreferences getPeerPreferences​(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressNoZone ip)
        Get preferences for a remote peer.
        Parameters:
        ip - address of remote peer
        Returns:
        BGP session preferences for configured peer
        Throws:
        IllegalStateException - if there is no peer configured for provided ip address
      • registerPeerRegisterListener

        @NonNull org.opendaylight.yangtools.concepts.Registration registerPeerRegisterListener​(@NonNull PeerRegistryListener listener)
        Register PeerRegistryListener, which listens to the changes in peer registry (add peer, remove peer). After registration, an initial drop is provided by calling onPeerAdded().
        Parameters:
        listener - The PeerRegistryListener to be registered.
        Returns:
        Registration ticked, used for closing of registration.
      • registerPeerSessionListener

        @NonNull org.opendaylight.yangtools.concepts.Registration registerPeerSessionListener​(PeerRegistrySessionListener listener)
        Register PeerRegistrySessionListener, which listens to the changes in sessions of peers in peer registry (create session, remove session). After registration, an initial drop is provided by calling onSessionCreated().
        Parameters:
        listener - The PeerRegistrySessionListener to be registered.
        Returns:
        Registration ticked, used for closing of registration.
      • updatePeerPreferences

        void updatePeerPreferences​(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressNoZone ip,
                                   BGPSessionPreferences preferences)
        Set new preferences. In case of graceful restart execution we need to send updated GracefulRestartCapability when sesison re-establish, information which tables where preserved during restart will change. Note that this method only updates preferences of already registered peer. To add new peer to registry use addPeer().
        Parameters:
        ip - of neighbor
        preferences - to send in OPEN message