@Singleton public final class AclServiceUtils extends Object
Modifier and Type | Field and Description |
---|---|
static AclserviceConfig.DefaultBehavior |
DEFAULT_ALLOW |
static AclserviceConfig.DefaultBehavior |
DEFAULT_DENY |
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 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) |
static void |
addLportTagMetadataMatch(int lportTag,
List<org.opendaylight.genius.mdsalutil.MatchInfoBase> flowMatches,
Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase> serviceMode) |
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 boolean |
containsMatchFieldType(List<org.opendaylight.genius.mdsalutil.MatchInfoBase> flows,
Class<? extends org.opendaylight.genius.mdsalutil.NxMatchInfo> type) |
static boolean |
containsTcpMatchField(List<org.opendaylight.genius.mdsalutil.MatchInfoBase> flows) |
static boolean |
containsUdpMatchField(List<org.opendaylight.genius.mdsalutil.MatchInfoBase> flows) |
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.
|
void |
deleteSubnetInfo(String portId) |
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 |
getAccesssListAttributes(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 org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl |
getAcl(org.opendaylight.controller.md.sal.binding.api.DataBroker broker,
String aclKey)
Retrieves the acl matching the key from the data store.
|
static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl> |
getAclInstanceIdentifier(String aclKey)
Creates the Acl instance identifier.
|
static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<AclIpPrefixes> |
getAclIpPrefixesPath(String aclName,
IpPrefixOrAddress ipPrefix) |
static String |
getAclKeyForSynchronization(String key)
Returns ACL specific key for synchronization.
|
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 |
getDpnForInterface(org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService interfaceManagerRpcService,
String ifName)
Get the data path number for the interface.
|
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 Map<String,List<org.opendaylight.genius.mdsalutil.MatchInfoBase>> |
getFlowForAllowedAddresses(List<AllowedAddressPairs> syncAllowedAddresses,
Map<String,List<org.opendaylight.genius.mdsalutil.MatchInfoBase>> flowMatchesMap,
boolean isSourceIpMacMatch) |
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 List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> |
getInterfaceAcls(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface port)
Checks whether port security is enabled for the port.
|
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.genius.mdsalutil.MatchInfoBase |
getMatchInfoByType(List<org.opendaylight.genius.mdsalutil.MatchInfoBase> flows,
Class<? extends org.opendaylight.genius.mdsalutil.NxMatchInfo> type) |
static List<AllowedAddressPairs> |
getPortAllowedAddresses(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface port) |
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).
|
List<SubnetInfo> |
getSubnetInfo(String portId) |
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 |
isOfAclInterest(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl acl) |
static boolean |
isOfInterest(AclInterface aclInterface)
Indicates whether the interface has port security enabled.
|
static boolean |
isPortSecurityEnabled(AclInterface port)
Checks whether port security is enabled for the port.
|
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.
|
public static final AclserviceConfig.DefaultBehavior DEFAULT_DENY
public static final AclserviceConfig.DefaultBehavior DEFAULT_ALLOW
@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.public static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl getAcl(org.opendaylight.controller.md.sal.binding.api.DataBroker broker, String aclKey)
broker
- the data brokeraclKey
- the acl keypublic static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl> getAclInstanceIdentifier(String aclKey)
aclKey
- the acl keypublic static BigInteger getDpnForInterface(org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService interfaceManagerRpcService, String ifName)
interfaceManagerRpcService
- interfaceManagerRpcService instance.ifName
- the interface name.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.public static boolean isPortSecurityEnabled(AclInterface port)
port
- the port.public static List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> getInterfaceAcls(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface port)
port
- the port.public static SecurityRuleAttr getAccesssListAttributes(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)
public static List<AllowedAddressPairs> getUpdatedAllowedAddressPairs(List<AllowedAddressPairs> updatedAllowedAddressPairs, List<AllowedAddressPairs> currentAllowedAddressPairs)
public static List<AllowedAddressPairs> getPortAllowedAddresses(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface port)
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 Map<String,List<org.opendaylight.genius.mdsalutil.MatchInfoBase>> getFlowForAllowedAddresses(List<AllowedAddressPairs> syncAllowedAddresses, Map<String,List<org.opendaylight.genius.mdsalutil.MatchInfoBase>> flowMatchesMap, boolean isSourceIpMacMatch)
public static boolean isNotIpv4AllNetwork(AllowedAddressPairs aap)
protected static boolean isNotIpv6AllNetwork(AllowedAddressPairs aap)
public static boolean isNotIpAllNetwork(AllowedAddressPairs aap)
public static Long getElanIdFromInterface(String elanInterfaceName, org.opendaylight.controller.md.sal.binding.api.DataBroker broker)
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)
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 List<SubnetInfo> getSubnetInfo(String portId)
public void deleteSubnetInfo(String portId)
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 org.opendaylight.genius.mdsalutil.MatchInfoBase getMatchInfoByType(List<org.opendaylight.genius.mdsalutil.MatchInfoBase> flows, Class<? extends org.opendaylight.genius.mdsalutil.NxMatchInfo> type)
public static boolean containsMatchFieldType(List<org.opendaylight.genius.mdsalutil.MatchInfoBase> flows, Class<? extends org.opendaylight.genius.mdsalutil.NxMatchInfo> type)
public static boolean containsTcpMatchField(List<org.opendaylight.genius.mdsalutil.MatchInfoBase> flows)
public static boolean containsUdpMatchField(List<org.opendaylight.genius.mdsalutil.MatchInfoBase> flows)
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)
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)
public static boolean isOfAclInterest(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl acl)
public static void addLportTagMetadataMatch(int lportTag, List<org.opendaylight.genius.mdsalutil.MatchInfoBase> flowMatches, Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase> serviceMode)
public static String getAclKeyForSynchronization(String key)
key
- the generic keypublic 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(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(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(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.