@Singleton public final class AclServiceUtils extends Object
Constructor and Description |
---|
AclServiceUtils(org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker,
AclDataUtil aclDataUtil,
AclserviceConfig config,
org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService idManager,
org.opendaylight.infrautils.jobcoordinator.JobCoordinator jobCoordinator) |
Modifier and Type | Method and Description |
---|---|
static List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace> |
aceList(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl acl) |
static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<AclPortsByIp> |
aclPortsByIpPath(String aclName) |
void |
addAclPortsLookup(AclInterface port,
List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> aclList,
List<AllowedAddressPairs> allowedAddresses) |
void |
addAclPortsLookupForInterfaceUpdate(AclInterface portBefore,
AclInterface portAfter) |
Integer |
allocateAclTag(String aclName)
Allocate ACL tag.
|
static Integer |
allocateId(org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService idManager,
String poolName,
String idKey,
Integer defaultId) |
static org.opendaylight.genius.mdsalutil.MatchInfoBase |
buildAclConntrackClassifierTypeMatch(AclConntrackClassifierType conntrackSupportedType) |
static List<org.opendaylight.genius.mdsalutil.MatchInfoBase> |
buildArpIpMatches(IpPrefixOrAddress ipPrefixOrAddress)
Builds the arp ip matches.
|
static List<org.opendaylight.genius.mdsalutil.MatchInfoBase> |
buildBroadcastIpV4Matches(String ipAddr) |
static List<org.opendaylight.genius.mdsalutil.MatchInfoBase> |
buildDhcpMatches(int srcPort,
int dstPort,
int lportTag,
Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase> serviceMode)
Returns the DHCP match.
|
static List<org.opendaylight.genius.mdsalutil.MatchInfoBase> |
buildDhcpV6Matches(int srcPort,
int dstPort,
int lportTag,
Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase> serviceMode)
Returns the DHCPv6 match.
|
static List<org.opendaylight.genius.mdsalutil.MatchInfoBase> |
buildIcmpV6Matches(int icmpType,
int icmpCode,
int lportTag,
Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase> serviceMode)
Returns the ICMPv6 match.
|
static List<? extends org.opendaylight.genius.mdsalutil.MatchInfoBase> |
buildIpAndDstServiceMatch(Integer aclTag,
AllowedAddressPairs aap) |
static List<? extends org.opendaylight.genius.mdsalutil.MatchInfoBase> |
buildIpAndSrcServiceMatch(Integer aclTag,
AllowedAddressPairs aap) |
static List<org.opendaylight.genius.mdsalutil.MatchInfoBase> |
buildIpMatches(IpPrefixOrAddress ipPrefixOrAddress,
AclServiceManager.MatchCriteria matchCriteria)
Builds the ip matches.
|
static List<org.opendaylight.genius.mdsalutil.MatchInfoBase> |
buildIpProtocolMatches(org.opendaylight.genius.mdsalutil.matches.MatchEthernetType etherType,
org.opendaylight.genius.mdsalutil.packet.IPProtocols protocol)
Builds the ip protocol matches.
|
static List<org.opendaylight.genius.mdsalutil.MatchInfoBase> |
buildL2BroadcastMatches() |
static org.opendaylight.genius.mdsalutil.MatchInfoBase |
buildLPortTagMatch(int lportTag,
Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase> serviceMode)
Gets the lport tag match.
|
static Collection<? extends org.opendaylight.genius.mdsalutil.MatchInfoBase> |
buildMatchesForLPortTagAndConntrackClassifierType(int lportTag,
AclConntrackClassifierType conntrackClassifierType,
Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase> serviceMode) |
static List<org.opendaylight.genius.mdsalutil.MatchInfoBase> |
buildMatchesForLPortTagAndRemoteAclTag(Integer lportTag,
Integer remoteAclTag,
Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase> serviceMode) |
static org.opendaylight.genius.mdsalutil.MatchInfoBase |
buildRemoteAclTagMetadataMatch(Integer remoteAclTag) |
static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.service.bindings.services.info.BoundServices> |
buildServiceId(String interfaceName,
short serviceIndex,
Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase> serviceMode)
Builds the service id.
|
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(String interfaceName)
Build the interface state.
|
static List<org.opendaylight.genius.mdsalutil.InstructionInfo> |
createCtMarkInstructionForNewState(Short filterTable,
Long elanId)
This method creates and returns the ct_mark instruction when a ACL rule removed from the
instance.
|
void |
createRemoteAclIdPool()
Creates remote the acl id pools.
|
void |
deleteAcesFromConfigDS(String aclName,
List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace> deletedAceRules) |
void |
deleteAclPortsLookup(AclInterface port,
List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> aclList,
List<AllowedAddressPairs> allowedAddresses) |
void |
deleteAclPortsLookupForInterfaceUpdate(AclInterface portBefore,
AclInterface portAfter) |
void |
deleteIdPool(String poolName)
Delete id pool.
|
void |
deleteRemoteAclIdPool()
Delete remote the acl id pools.
|
static boolean |
doesAceHaveRemoteGroupId(SecurityRuleAttr aceAttr)
Does ACE have remote group id.
|
static boolean |
doesIpv4AddressExists(List<AllowedAddressPairs> aaps)
Does IPv4 address exists in the list of allowed address pair.
|
static boolean |
doesIpv6AddressExists(List<AllowedAddressPairs> aaps)
Does IPv6 address exists in the list of allowed address pair.
|
static List<AllowedAddressPairs> |
excludeMulticastAAPs(List<AllowedAddressPairs> allowedAddresses) |
static SecurityRuleAttr |
getAccessListAttributes(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace ace)
Retrieves the security rule attribute augmentation from the access list.
|
Integer |
getAceFlowPriority(String aclName)
Gets the ace flow priority.
|
static List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace> |
getAceListFromAcl(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl acl) |
static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<AclIpPrefixes> |
getAclIpPrefixesPath(String aclName,
IpPrefixOrAddress ipPrefix) |
Integer |
getAclTag(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid aclId)
Gets the ACL tag from cache.
|
static org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.service.bindings.services.info.BoundServices |
getBoundServices(String serviceName,
short servicePriority,
int flowPriority,
BigInteger cookie,
List<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction> instructions)
Gets the bound services.
|
static String |
getBroadcastAddressFromCidr(String cidr) |
AclserviceConfig |
getConfig() |
static BigInteger |
getDpIdFromIterfaceState(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface interfaceState) |
static BigInteger |
getDropFlowCookie(int lport) |
static Long |
getElanIdFromInterface(String elanInterfaceName,
org.opendaylight.controller.md.sal.binding.api.DataBroker broker) |
static ElanInstance |
getElanInstanceByName(String elanInstanceName,
org.opendaylight.controller.md.sal.binding.api.DataBroker broker) |
static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInstance> |
getElanInstanceConfigurationDataPath(String elanInstanceName) |
static ElanInterface |
getElanInterfaceByElanInterfaceName(String elanInterfaceName,
org.opendaylight.controller.md.sal.binding.api.DataBroker broker) |
static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInterface> |
getElanInterfaceConfigurationDataPathId(String interfaceName) |
static Integer |
getHardTimoutForApplyStatefulChangeOnExistingTraffic(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace ace,
AclServiceUtils aclServiceUtils)
Returns the hard timeout based on the protocol when a ACL rule removed from the instance.
|
static com.google.common.base.Optional<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface> |
getInterface(org.opendaylight.controller.md.sal.binding.api.DataBroker broker,
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(String interfaceName)
Builds the interface identifier.
|
static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface |
getInterfaceStateFromOperDS(org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker,
String interfaceName)
Retrieves the interface state.
|
static List<String> |
getIpBroadcastAddresses(List<SubnetInfo> subnetInfoList) |
static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<PortIds> |
getPortIdsPathInAclPortsLookup(String ruleName,
IpPrefixOrAddress ipPrefix,
String portId) |
static String |
getRecoverServiceRegistryKey() |
static Set<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> |
getRemoteAclIdsByDirection(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl acl,
Class<? extends DirectionBase> direction) |
Set<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> |
getRemoteAclIdsByDirection(List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> aclIds,
Class<? extends DirectionBase> direction) |
static BigInteger |
getRemoteAclTagMetadata(BigInteger remoteAclTag) |
SortedSet<Integer> |
getRemoteAclTags(List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> aclIds,
Class<? extends DirectionBase> direction) |
static List<SubnetInfo> |
getSubnetDiff(List<SubnetInfo> subnetInfo1,
List<SubnetInfo> subnetInfo2)
Gets the subnet difference by performing (subnetInfo1 - subnetInfo2).
|
static List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> |
getUpdatedAclList(List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> updatedAclList,
List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> currentAclList) |
static List<AllowedAddressPairs> |
getUpdatedAllowedAddressPairs(List<AllowedAddressPairs> updatedAllowedAddressPairs,
List<AllowedAddressPairs> currentAllowedAddressPairs) |
static org.opendaylight.genius.mdsalutil.instructions.InstructionWriteMetadata |
getWriteMetadataForAclClassifierType(AclConntrackClassifierType conntrackClassifierType) |
static org.opendaylight.genius.mdsalutil.instructions.InstructionWriteMetadata |
getWriteMetadataForDropFlag() |
static org.opendaylight.genius.mdsalutil.instructions.InstructionWriteMetadata |
getWriteMetadataForRemoteAclTag(Integer remoteAclTag) |
static boolean |
isIPv4Address(AllowedAddressPairs aap) |
static Boolean |
isIpv6Subnet(List<SubnetInfo> subnetInfoList) |
static boolean |
isNotIpAllNetwork(AllowedAddressPairs aap) |
static boolean |
isNotIpv4AllNetwork(AllowedAddressPairs aap) |
protected static boolean |
isNotIpv6AllNetwork(AllowedAddressPairs aap) |
static boolean |
isOfInterest(AclInterface aclInterface)
Indicates whether the interface has port security enabled.
|
static <T extends org.opendaylight.yangtools.yang.binding.DataObject> |
read(org.opendaylight.controller.md.sal.binding.api.DataBroker broker,
org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType datastoreType,
org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path)
Retrieves the object from the datastore.
|
void |
releaseAclTag(String aclName)
Release ACL tag.
|
static void |
releaseId(org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService idManager,
String poolName,
String idKey) |
boolean |
skipDeleteInCaseOfOverlappingIP(String portId,
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid remoteAclId,
IpPrefixOrAddress ipPrefix,
int addOrRemove)
Skip delete in case of overlapping IP.
|
@Inject public AclServiceUtils(org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker, AclDataUtil aclDataUtil, AclserviceConfig config, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService idManager, org.opendaylight.infrautils.jobcoordinator.JobCoordinator jobCoordinator)
public static com.google.common.base.Optional<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface> getInterface(org.opendaylight.controller.md.sal.binding.api.DataBroker broker, String interfaceName)
broker
- the data brokerinterfaceName
- the interface namepublic static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface> getInterfaceIdentifier(String interfaceName)
interfaceName
- the interface name.public static <T extends org.opendaylight.yangtools.yang.binding.DataObject> com.google.common.base.Optional<T> read(org.opendaylight.controller.md.sal.binding.api.DataBroker broker, org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType datastoreType, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path)
T
- type of DataObjectbroker
- the data broker.datastoreType
- the data store type.path
- the wild card path.@Nullable public static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface getInterfaceStateFromOperDS(org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker, String interfaceName)
dataBroker
- the data broker.interfaceName
- the interface name.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(String interfaceName)
interfaceName
- the interface name.@Nullable public static SecurityRuleAttr getAccessListAttributes(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace ace)
ace
- the access list entrypublic static List<org.opendaylight.genius.mdsalutil.MatchInfoBase> buildDhcpMatches(int srcPort, int dstPort, int lportTag, Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase> serviceMode)
srcPort
- the source port.dstPort
- the destination port.lportTag
- the lport tagserviceMode
- ingress or egress servicepublic static List<org.opendaylight.genius.mdsalutil.MatchInfoBase> buildDhcpV6Matches(int srcPort, int dstPort, int lportTag, Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase> serviceMode)
srcPort
- the source port.dstPort
- the destination port.lportTag
- the lport tagserviceMode
- ingress or egresspublic static List<org.opendaylight.genius.mdsalutil.MatchInfoBase> buildIcmpV6Matches(int icmpType, int icmpCode, int lportTag, Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase> serviceMode)
icmpType
- the icmpv6-type.icmpCode
- the icmpv6-code.lportTag
- the lport tagserviceMode
- ingress or egresspublic static List<org.opendaylight.genius.mdsalutil.MatchInfoBase> buildBroadcastIpV4Matches(String ipAddr)
public static List<org.opendaylight.genius.mdsalutil.MatchInfoBase> buildL2BroadcastMatches()
public static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.service.bindings.services.info.BoundServices> buildServiceId(String interfaceName, short serviceIndex, Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase> serviceMode)
interfaceName
- the interface nameserviceIndex
- the service indexserviceMode
- the service modepublic static org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.service.bindings.services.info.BoundServices getBoundServices(String serviceName, short servicePriority, int flowPriority, BigInteger cookie, List<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction> instructions)
serviceName
- the service nameservicePriority
- the service priorityflowPriority
- the flow prioritycookie
- the cookieinstructions
- the instructionspublic static List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> getUpdatedAclList(List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> updatedAclList, List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> currentAclList)
@Nullable public static List<AllowedAddressPairs> getUpdatedAllowedAddressPairs(@Nullable List<AllowedAddressPairs> updatedAllowedAddressPairs, @Nullable List<AllowedAddressPairs> currentAllowedAddressPairs)
@Nullable public static BigInteger getDpIdFromIterfaceState(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface interfaceState)
public static List<String> getIpBroadcastAddresses(List<SubnetInfo> subnetInfoList)
public static List<org.opendaylight.genius.mdsalutil.MatchInfoBase> buildIpMatches(IpPrefixOrAddress ipPrefixOrAddress, AclServiceManager.MatchCriteria matchCriteria)
ipPrefixOrAddress
- the ip prefix or addressmatchCriteria
- the source_ip or destination_ip used for the matchpublic static List<org.opendaylight.genius.mdsalutil.MatchInfoBase> buildArpIpMatches(IpPrefixOrAddress ipPrefixOrAddress)
ipPrefixOrAddress
- the ip prefix or addresspublic static org.opendaylight.genius.mdsalutil.MatchInfoBase buildRemoteAclTagMetadataMatch(Integer remoteAclTag)
public static BigInteger getRemoteAclTagMetadata(BigInteger remoteAclTag)
public static BigInteger getDropFlowCookie(int lport)
public static boolean doesIpv4AddressExists(List<AllowedAddressPairs> aaps)
aaps
- the allowed address pairspublic static boolean doesIpv6AddressExists(List<AllowedAddressPairs> aaps)
aaps
- the allowed address pairspublic static org.opendaylight.genius.mdsalutil.MatchInfoBase buildLPortTagMatch(int lportTag, Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase> serviceMode)
lportTag
- the lport tagserviceMode
- ingress or egress service modepublic static List<org.opendaylight.genius.mdsalutil.MatchInfoBase> buildMatchesForLPortTagAndRemoteAclTag(Integer lportTag, Integer remoteAclTag, Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase> serviceMode)
public static Collection<? extends org.opendaylight.genius.mdsalutil.MatchInfoBase> buildMatchesForLPortTagAndConntrackClassifierType(int lportTag, AclConntrackClassifierType conntrackClassifierType, Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase> serviceMode)
public static org.opendaylight.genius.mdsalutil.instructions.InstructionWriteMetadata getWriteMetadataForAclClassifierType(AclConntrackClassifierType conntrackClassifierType)
public static org.opendaylight.genius.mdsalutil.instructions.InstructionWriteMetadata getWriteMetadataForDropFlag()
public static org.opendaylight.genius.mdsalutil.instructions.InstructionWriteMetadata getWriteMetadataForRemoteAclTag(Integer remoteAclTag)
public static org.opendaylight.genius.mdsalutil.MatchInfoBase buildAclConntrackClassifierTypeMatch(AclConntrackClassifierType conntrackSupportedType)
public AclserviceConfig getConfig()
public static boolean isIPv4Address(AllowedAddressPairs aap)
public static boolean isNotIpv4AllNetwork(AllowedAddressPairs aap)
protected static boolean isNotIpv6AllNetwork(AllowedAddressPairs aap)
public static boolean isNotIpAllNetwork(AllowedAddressPairs aap)
@Nullable public static Long getElanIdFromInterface(String elanInterfaceName, org.opendaylight.controller.md.sal.binding.api.DataBroker broker)
@Nullable public static ElanInterface getElanInterfaceByElanInterfaceName(String elanInterfaceName, org.opendaylight.controller.md.sal.binding.api.DataBroker broker)
public static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInterface> getElanInterfaceConfigurationDataPathId(String interfaceName)
@Nullable public static ElanInstance getElanInstanceByName(String elanInstanceName, org.opendaylight.controller.md.sal.binding.api.DataBroker broker)
public static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInstance> getElanInstanceConfigurationDataPath(String elanInstanceName)
public void deleteAcesFromConfigDS(String aclName, List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace> deletedAceRules)
public static Integer allocateId(org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService idManager, String poolName, String idKey, Integer defaultId)
public static void releaseId(org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService idManager, String poolName, String idKey)
@Nullable public Integer getAclTag(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid aclId)
aclId
- the acl idpublic Integer allocateAclTag(String aclName)
aclName
- the ACL namepublic void releaseAclTag(String aclName)
aclName
- the ACL namepublic static boolean isOfInterest(AclInterface aclInterface)
aclInterface
- the interface.public void deleteIdPool(String poolName)
poolName
- the pool namepublic void createRemoteAclIdPool()
public void deleteRemoteAclIdPool()
public static List<? extends org.opendaylight.genius.mdsalutil.MatchInfoBase> buildIpAndSrcServiceMatch(Integer aclTag, AllowedAddressPairs aap)
public static List<? extends org.opendaylight.genius.mdsalutil.MatchInfoBase> buildIpAndDstServiceMatch(Integer aclTag, AllowedAddressPairs aap)
@Nonnull public static List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace> aceList(@Nonnull org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl acl)
@Nonnull public static List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace> getAceListFromAcl(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl acl)
public static List<org.opendaylight.genius.mdsalutil.MatchInfoBase> buildIpProtocolMatches(org.opendaylight.genius.mdsalutil.matches.MatchEthernetType etherType, org.opendaylight.genius.mdsalutil.packet.IPProtocols protocol)
etherType
- the ether typeprotocol
- the protocolpublic static boolean doesAceHaveRemoteGroupId(SecurityRuleAttr aceAttr)
aceAttr
- the ace attrpublic SortedSet<Integer> getRemoteAclTags(@Nullable List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> aclIds, Class<? extends DirectionBase> direction)
public Set<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> getRemoteAclIdsByDirection(@Nullable List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> aclIds, Class<? extends DirectionBase> direction)
public static Set<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> getRemoteAclIdsByDirection(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl acl, Class<? extends DirectionBase> direction)
public boolean skipDeleteInCaseOfOverlappingIP(String portId, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid remoteAclId, IpPrefixOrAddress ipPrefix, int addOrRemove)
When there are multiple ports (e.g., p1, p2, p3) having same AAP (e.g., 224.0.0.5) configured which are part of single SG, there would be single flow in remote ACL table. When one of these ports (say p1) is deleted, the single flow which is configured in remote ACL table shouldn't be deleted. It should be deleted only when there are no more references to it.
portId
- the port idremoteAclId
- the remote Acl IdipPrefix
- the ip prefixaddOrRemove
- the add or removepublic static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<AclPortsByIp> aclPortsByIpPath(String aclName)
public static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<AclIpPrefixes> getAclIpPrefixesPath(String aclName, IpPrefixOrAddress ipPrefix)
public static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<PortIds> getPortIdsPathInAclPortsLookup(String ruleName, IpPrefixOrAddress ipPrefix, String portId)
public void addAclPortsLookupForInterfaceUpdate(AclInterface portBefore, AclInterface portAfter)
public void deleteAclPortsLookupForInterfaceUpdate(AclInterface portBefore, AclInterface portAfter)
public void addAclPortsLookup(AclInterface port, List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> aclList, List<AllowedAddressPairs> allowedAddresses)
public void deleteAclPortsLookup(AclInterface port, List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> aclList, List<AllowedAddressPairs> allowedAddresses)
public Integer getAceFlowPriority(String aclName)
aclName
- the acl namepublic static Integer getHardTimoutForApplyStatefulChangeOnExistingTraffic(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace ace, AclServiceUtils aclServiceUtils)
AclserviceConfig
class.ace
- the aceaclServiceUtils
- acl service utilspublic static List<org.opendaylight.genius.mdsalutil.InstructionInfo> createCtMarkInstructionForNewState(Short filterTable, Long elanId)
filterTable
- the filterTableelanId
- the Elan idpublic static List<AllowedAddressPairs> excludeMulticastAAPs(@Nullable List<AllowedAddressPairs> allowedAddresses)
public static String getRecoverServiceRegistryKey()
public static Boolean isIpv6Subnet(List<SubnetInfo> subnetInfoList)
public static List<SubnetInfo> getSubnetDiff(List<SubnetInfo> subnetInfo1, List<SubnetInfo> subnetInfo2)
subnetInfo1
- the subnet info 1subnetInfo2
- the subnet info 2Copyright © 2019 OpenDaylight. All rights reserved.