Class Ipv6ServiceUtils


  • @Singleton
    public class Ipv6ServiceUtils
    extends java.lang.Object
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address ALL_NODES_MCAST_ADDR  
      static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address UNSPECIFIED_ADDR  
    • Constructor Summary

      Constructors 
      Constructor Description
      Ipv6ServiceUtils​(org.opendaylight.mdsal.binding.api.DataBroker broker, org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalUtil, IpV6NAConfigHelper ipV6NAConfigHelper, Ipv6serviceConfig ipv6ServiceConfig)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void bindIpv6Service​(java.lang.String interfaceName, java.lang.Long elanTag, short tableId)  
      static java.lang.String buildIpv6MonitorJobKey​(java.lang.String ip)  
      static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface> buildStateInterfaceId​(java.lang.String interfaceName)
      Build the interface state.
      org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.service.bindings.services.info.BoundServices getBoundServices​(java.lang.String serviceName, short servicePriority, int flowPriority, org.opendaylight.yangtools.yang.common.Uint64 cookie, java.util.List<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction> instructions)  
      @Nullable org.opendaylight.yangtools.yang.common.Uint64 getDpIdFromInterfaceState​(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface interfaceState)  
      static org.opendaylight.yangtools.yang.common.Uint64 getDpnIdFromNodeConnectorId​(org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId nodeConnectorId)  
      @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface getInterface​(java.lang.String interfaceName)
      Retrieves the Interface from the datastore.
      static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface> getInterfaceIdentifier​(java.lang.String interfaceName)
      Builds the interface identifier.
      @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface getInterfaceStateFromOperDS​(java.lang.String interfaceName)
      Retrieves the interface state.
      org.opendaylight.genius.mdsalutil.ActionInfo getLearnActionForNsDrop​(java.lang.Long hardTimeoutinMs)  
      static long getRemoteBCGroup​(long elanTag)  
      void installIcmpv6NaForwardFlow​(short tableId, IVirtualPort vmPort, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.lang.Long elanTag, int addOrRemove)  
      void installIcmpv6NaPuntFlow​(short tableId, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix ipv6Prefix, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.lang.Long elanTag, int addOrRemove)  
      void installIcmpv6NaResponderFlow​(short tableId, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.lang.Long elanTag, int lportTag, IVirtualPort intf, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address ndTargetAddr, java.lang.String rtrIntMacAddress, int addOrRemove, org.opendaylight.genius.infra.TypedReadWriteTransaction tx, java.lang.Boolean isTllOptionSet)  
      void installIcmpv6NsDefaultPuntFlow​(short tableId, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.lang.Long elanTag, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address ipv6Address, int addOrRemove, org.opendaylight.genius.infra.TypedReadWriteTransaction tx)  
      void installIcmpv6NsPuntFlow​(short tableId, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.lang.Long elanTag, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address ipv6Address, int addOrRemove)  
      void installIcmpv6RsPuntFlow​(short tableId, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.lang.Long elanTag, int addOrRemove)  
      void instIcmpv6NsMatchFlow​(short tableId, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.lang.Long elanTag, int lportTag, java.lang.String vmMacAddress, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address ndTargetAddr, int addOrRemove, org.opendaylight.genius.infra.TypedReadWriteTransaction tx, java.lang.Boolean isSllOptionSet)  
      static boolean isIpv6Subnet​(VirtualSubnet subnet)  
      static boolean isVmPort​(java.lang.String deviceOwner)  
      <T extends org.opendaylight.yangtools.yang.binding.DataObject>
      java.util.Optional<T>
      read​(org.opendaylight.mdsal.common.api.LogicalDatastoreType datastoreType, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path)
      Retrieves the object from the datastore.
      void unbindIpv6Service​(java.lang.String interfaceName)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • ALL_NODES_MCAST_ADDR

        public static final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address ALL_NODES_MCAST_ADDR
      • UNSPECIFIED_ADDR

        public static final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address UNSPECIFIED_ADDR
    • Constructor Detail

      • Ipv6ServiceUtils

        @Inject
        public Ipv6ServiceUtils​(org.opendaylight.mdsal.binding.api.DataBroker broker,
                                org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalUtil,
                                IpV6NAConfigHelper ipV6NAConfigHelper,
                                Ipv6serviceConfig ipv6ServiceConfig)
    • Method Detail

      • read

        public <T extends org.opendaylight.yangtools.yang.binding.DataObject> java.util.Optional<T> read​(org.opendaylight.mdsal.common.api.LogicalDatastoreType datastoreType,
                                                                                                         org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path)
        Retrieves the object from the datastore.
        Parameters:
        datastoreType - the data store type.
        path - the wild card path.
        Returns:
        the required object.
      • getInterface

        public @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface getInterface​(java.lang.String interfaceName)
        Retrieves the Interface from the datastore.
        Parameters:
        interfaceName - the interface name
        Returns:
        the interface.
      • getInterfaceIdentifier

        public static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface> getInterfaceIdentifier​(java.lang.String interfaceName)
        Builds the interface identifier.
        Parameters:
        interfaceName - the interface name.
        Returns:
        the interface identifier.
      • buildStateInterfaceId

        public static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface> buildStateInterfaceId​(java.lang.String interfaceName)
        Build the interface state.
        Parameters:
        interfaceName - the interface name.
        Returns:
        the interface state.
      • getInterfaceStateFromOperDS

        public @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface getInterfaceStateFromOperDS​(java.lang.String interfaceName)
        Retrieves the interface state.
        Parameters:
        interfaceName - the interface name.
        Returns:
        the interface state.
      • installIcmpv6NsPuntFlow

        public void installIcmpv6NsPuntFlow​(short tableId,
                                            org.opendaylight.yangtools.yang.common.Uint64 dpId,
                                            java.lang.Long elanTag,
                                            org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address ipv6Address,
                                            int addOrRemove)
      • installIcmpv6RsPuntFlow

        public void installIcmpv6RsPuntFlow​(short tableId,
                                            org.opendaylight.yangtools.yang.common.Uint64 dpId,
                                            java.lang.Long elanTag,
                                            int addOrRemove)
      • installIcmpv6NaForwardFlow

        public void installIcmpv6NaForwardFlow​(short tableId,
                                               IVirtualPort vmPort,
                                               org.opendaylight.yangtools.yang.common.Uint64 dpId,
                                               java.lang.Long elanTag,
                                               int addOrRemove)
      • installIcmpv6NaPuntFlow

        public void installIcmpv6NaPuntFlow​(short tableId,
                                            org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix ipv6Prefix,
                                            org.opendaylight.yangtools.yang.common.Uint64 dpId,
                                            java.lang.Long elanTag,
                                            int addOrRemove)
      • getBoundServices

        public org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.service.bindings.services.info.BoundServices getBoundServices​(java.lang.String serviceName,
                                                                                                                                                                            short servicePriority,
                                                                                                                                                                            int flowPriority,
                                                                                                                                                                            org.opendaylight.yangtools.yang.common.Uint64 cookie,
                                                                                                                                                                            java.util.List<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction> instructions)
      • bindIpv6Service

        public void bindIpv6Service​(java.lang.String interfaceName,
                                    java.lang.Long elanTag,
                                    short tableId)
      • unbindIpv6Service

        public void unbindIpv6Service​(java.lang.String interfaceName)
      • getDpIdFromInterfaceState

        public @Nullable org.opendaylight.yangtools.yang.common.Uint64 getDpIdFromInterfaceState​(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface interfaceState)
      • getDpnIdFromNodeConnectorId

        public static org.opendaylight.yangtools.yang.common.Uint64 getDpnIdFromNodeConnectorId​(org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId nodeConnectorId)
      • getRemoteBCGroup

        public static long getRemoteBCGroup​(long elanTag)
      • buildIpv6MonitorJobKey

        public static java.lang.String buildIpv6MonitorJobKey​(java.lang.String ip)
      • isVmPort

        public static boolean isVmPort​(java.lang.String deviceOwner)
      • isIpv6Subnet

        public static boolean isIpv6Subnet​(VirtualSubnet subnet)
      • getLearnActionForNsDrop

        public org.opendaylight.genius.mdsalutil.ActionInfo getLearnActionForNsDrop​(java.lang.Long hardTimeoutinMs)
      • instIcmpv6NsMatchFlow

        public void instIcmpv6NsMatchFlow​(short tableId,
                                          org.opendaylight.yangtools.yang.common.Uint64 dpId,
                                          java.lang.Long elanTag,
                                          int lportTag,
                                          java.lang.String vmMacAddress,
                                          org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address ndTargetAddr,
                                          int addOrRemove,
                                          org.opendaylight.genius.infra.TypedReadWriteTransaction tx,
                                          java.lang.Boolean isSllOptionSet)
                                   throws java.util.concurrent.ExecutionException,
                                          java.lang.InterruptedException
        Throws:
        java.util.concurrent.ExecutionException
        java.lang.InterruptedException
      • installIcmpv6NaResponderFlow

        public void installIcmpv6NaResponderFlow​(short tableId,
                                                 org.opendaylight.yangtools.yang.common.Uint64 dpId,
                                                 java.lang.Long elanTag,
                                                 int lportTag,
                                                 IVirtualPort intf,
                                                 org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address ndTargetAddr,
                                                 java.lang.String rtrIntMacAddress,
                                                 int addOrRemove,
                                                 org.opendaylight.genius.infra.TypedReadWriteTransaction tx,
                                                 java.lang.Boolean isTllOptionSet)
                                          throws java.util.concurrent.ExecutionException,
                                                 java.lang.InterruptedException
        Throws:
        java.util.concurrent.ExecutionException
        java.lang.InterruptedException
      • installIcmpv6NsDefaultPuntFlow

        public void installIcmpv6NsDefaultPuntFlow​(short tableId,
                                                   org.opendaylight.yangtools.yang.common.Uint64 dpId,
                                                   java.lang.Long elanTag,
                                                   org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address ipv6Address,
                                                   int addOrRemove,
                                                   org.opendaylight.genius.infra.TypedReadWriteTransaction tx)
                                            throws java.util.concurrent.ExecutionException,
                                                   java.lang.InterruptedException
        Throws:
        java.util.concurrent.ExecutionException
        java.lang.InterruptedException