Class AbstractAclServiceImpl
- java.lang.Object
-
- org.opendaylight.netvirt.aclservice.AbstractAclServiceImpl
-
- All Implemented Interfaces:
AclServiceListener
- Direct Known Subclasses:
EgressAclServiceImpl,IngressAclServiceImpl
public abstract class AbstractAclServiceImpl extends java.lang.Object implements AclServiceListener
-
-
Field Summary
Fields Modifier and Type Field Description protected AclDataUtilaclDataUtilprotected AclInterfaceCacheaclInterfaceCacheprotected AclServiceUtilsaclServiceUtilsprotected java.lang.Class<? extends DirectionBase>directionprotected java.lang.StringdirectionStringprotected org.opendaylight.infrautils.jobcoordinator.JobCoordinatorjobCoordinatorprotected org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManagermdsalManagerprotected java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase>serviceModeprotected org.opendaylight.genius.infra.ManagedNewTransactionRunnertxRunner
-
Constructor Summary
Constructors Constructor Description AbstractAclServiceImpl(java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase> serviceMode, org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker, org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager, AclDataUtil aclDataUtil, AclServiceUtils aclServiceUtils, org.opendaylight.infrautils.jobcoordinator.JobCoordinator jobCoordinator, AclInterfaceCache aclInterfaceCache)Initialize the member variables.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidaddFlowEntryToList(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, short tableId, java.lang.String flowId, int priority, int idleTimeOut, int hardTimeOut, org.opendaylight.yangtools.yang.common.Uint64 cookie, java.util.List<? extends org.opendaylight.genius.mdsalutil.MatchInfoBase> matches, java.util.List<org.opendaylight.genius.mdsalutil.InstructionInfo> instructions, int addOrRemove)Add Flow to list.booleanapplyAce(AclInterface port, java.lang.String aclName, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace ace)booleanapplyAcl(AclInterface port)booleanbindAcl(AclInterface port)abstract voidbindService(AclInterface aclInterface)Bind service.protected java.util.Set<java.math.BigInteger>collectDpns(@Nullable java.util.Map<java.lang.String,java.util.Set<AclInterface>> mapAclWithPortSet)protected abstract shortgetAclCommitterTable()protected abstract shortgetAclConntrackSenderTable()protected abstract shortgetAclFilterCumDispatcherTable()protected abstract shortgetAclForExistingTrafficTable()protected abstract shortgetAclRemoteAclTable()protected abstract shortgetAclRuleBasedFilterTable()protected java.util.List<org.opendaylight.genius.mdsalutil.InstructionInfo>getDispatcherTableResubmitInstructions()protected java.util.List<org.opendaylight.genius.mdsalutil.InstructionInfo>getDispatcherTableResubmitInstructions(java.util.List<org.opendaylight.genius.mdsalutil.ActionInfo> actionsInfos)Gets the dispatcher table resubmit instructions based on ingress/egress service mode w.r.t switch.protected @Nullable java.lang.LonggetElanIdFromAclInterface(java.lang.String elanInterfaceName)protected java.util.SortedSet<java.lang.Integer>getRemoteAclTags(AclInterface port)protected voidhandleRemoteAclUpdate(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl aclBefore, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl aclAfter, java.util.Collection<AclInterface> portsBefore)protected abstract booleanisValidDirection(java.lang.Class<? extends DirectionBase> direction)protected abstract voidprocessDhcpServiceUpdate(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.util.List<AllowedAddressPairs> allowedAddresses, int addOrRemove)Programs DHCP service flows.protected voidprogramAceRule(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.lang.String aclName, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace ace, int addOrRemove)Programs the ace specific rule.protected voidprogramAceSpecificFlows(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.lang.String aclName, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace ace, @Nullable java.util.Map<java.lang.String,java.util.List<org.opendaylight.genius.mdsalutil.MatchInfoBase>> flowMap, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid remoteAclId, int addOrRemove)protected voidprogramAclCommitRuleForConntrack(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, int lportTag, java.lang.String portId, org.opendaylight.genius.mdsalutil.matches.MatchEthernetType matchEtherType, int addOrRemove)Program acl commit rule for conntrack.protected voidprogramAclCommitRuleForNonConntrack(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, int lportTag, int addOrRemove)Program acl commit rule for non conntrack.protected voidprogramAclCommitRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, int lportTag, java.lang.String portId, int addOrRemove)Program acl commit rules.protected voidprogramAclDispatcherTable(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, int addOrRemove)protected voidprogramAclPortSpecificFixedRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.util.List<AllowedAddressPairs> allowedAddresses, int lportTag, java.lang.String portId, AclServiceManager.Action action, int write)Programs the port specific fixed rules.protected voidprogramAclRuleMissDropRule(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, int lportTag, int addOrRemove)Program ACL rule miss drop rule for a port.protected booleanprogramAclRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.util.List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> aclUuidList, int addOrRemove)Programs the acl custom rules.protected abstract voidprogramAntiSpoofingRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.util.List<AllowedAddressPairs> allowedAddresses, AclServiceManager.Action action, int addOrRemove)Programs the anti-spoofing rules.protected abstract voidprogramBroadcastRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, AclServiceManager.Action action, int addOrRemove)Programs broadcast rules.protected voidprogramConntrackInvalidDropRule(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, int lportTag, int addOrRemove)Adds the rule to drop the conntrack invalid packets .protected voidprogramConntrackRecircRule(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, int lportTag, java.lang.String portId, org.opendaylight.genius.mdsalutil.matches.MatchEthernetType matchEtherType, int addOrRemove)protected voidprogramConntrackRecircRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.util.List<AllowedAddressPairs> aaps, int lportTag, java.lang.String portId, int addOrRemove)Adds the rule to send the packet to the netfilter to check whether it is a known packet.protected abstract voidprogramDhcpService(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, AclServiceManager.Action action, int addOrRemove)Programs DHCP Service flows.protected voidprogramFirstRemoteAclEntryInDispatcherTable(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.lang.Integer firstRemoteAclTag, int addOrRemove)protected voidprogramFlows(java.lang.String jobName, java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, int addOrRemove)protected voidprogramForAceNotHavingRemoteAclId(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.lang.String aclName, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace ace, @Nullable java.util.Map<java.lang.String,java.util.List<org.opendaylight.genius.mdsalutil.MatchInfoBase>> flowMap, int addOrRemove)protected abstract voidprogramGotoClassifierTableRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.util.List<AllowedAddressPairs> aaps, int lportTag, int addOrRemove)protected abstract voidprogramIcmpv6RARule(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.util.List<SubnetInfo> subnets, int addOrRemove)protected voidprogramLastRemoteAclEntryInDispatcherTable(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.lang.Integer lastRemoteAclTag, int addOrRemove)protected voidprogramPortSpecificDropRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, int lportTag, int addOrRemove)Adds the rules to drop the unknown/invalid packets .protected abstract voidprogramRemoteAclTableFlow(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.lang.Integer aclTag, AllowedAddressPairs aap, int addOrRemove)protected abstract voidprogramSubnetBroadcastRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.util.List<SubnetInfo> subnetInfoList, int addOrRemove)Programs broadcast rules.booleanremoveAce(AclInterface port, java.lang.String aclName, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace ace)booleanremoveAcl(AclInterface port)booleanunbindAcl(AclInterface port)protected abstract voidunbindService(AclInterface aclInterface)Unbind service.booleanupdateAcl(AclInterface portBefore, AclInterface portAfter)voidupdateRemoteAcl(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl aclBefore, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl aclAfter, java.util.Collection<AclInterface> portsBefore)
-
-
-
Field Detail
-
mdsalManager
protected final org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager
-
txRunner
protected final org.opendaylight.genius.infra.ManagedNewTransactionRunner txRunner
-
serviceMode
protected final java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase> serviceMode
-
aclDataUtil
protected final AclDataUtil aclDataUtil
-
aclServiceUtils
protected final AclServiceUtils aclServiceUtils
-
jobCoordinator
protected final org.opendaylight.infrautils.jobcoordinator.JobCoordinator jobCoordinator
-
aclInterfaceCache
protected final AclInterfaceCache aclInterfaceCache
-
direction
protected final java.lang.Class<? extends DirectionBase> direction
-
directionString
protected final java.lang.String directionString
-
-
Constructor Detail
-
AbstractAclServiceImpl
public AbstractAclServiceImpl(java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase> serviceMode, org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker, org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager, AclDataUtil aclDataUtil, AclServiceUtils aclServiceUtils, org.opendaylight.infrautils.jobcoordinator.JobCoordinator jobCoordinator, AclInterfaceCache aclInterfaceCache)Initialize the member variables.- Parameters:
serviceMode- the service modedataBroker- the data broker instance.mdsalManager- the mdsal manager instance.aclDataUtil- the acl data util.aclServiceUtils- the acl service util.jobCoordinator- the job coordinatoraclInterfaceCache- the acl interface cache
-
-
Method Detail
-
applyAcl
public boolean applyAcl(AclInterface port)
- Specified by:
applyAclin interfaceAclServiceListener
-
bindAcl
public boolean bindAcl(AclInterface port)
- Specified by:
bindAclin interfaceAclServiceListener
-
unbindAcl
public boolean unbindAcl(AclInterface port)
- Specified by:
unbindAclin interfaceAclServiceListener
-
updateAcl
public boolean updateAcl(AclInterface portBefore, AclInterface portAfter)
- Specified by:
updateAclin interfaceAclServiceListener
-
getRemoteAclTags
protected java.util.SortedSet<java.lang.Integer> getRemoteAclTags(AclInterface port)
-
programAclDispatcherTable
protected void programAclDispatcherTable(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, int addOrRemove)
-
programFirstRemoteAclEntryInDispatcherTable
protected void programFirstRemoteAclEntryInDispatcherTable(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.lang.Integer firstRemoteAclTag, int addOrRemove)
-
programLastRemoteAclEntryInDispatcherTable
protected void programLastRemoteAclEntryInDispatcherTable(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.lang.Integer lastRemoteAclTag, int addOrRemove)
-
programAclRules
protected boolean programAclRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.util.List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> aclUuidList, int addOrRemove)Programs the acl custom rules.- Parameters:
flowEntries- the flow entriesport- acl interfaceaclUuidList- the list of acl uuid to be appliedaddOrRemove- whether to delete or add flow- Returns:
- program succeeded
-
programAceRule
protected void programAceRule(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.lang.String aclName, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace ace, int addOrRemove)Programs the ace specific rule.- Parameters:
flowEntries- flow entriesport- acl interfaceaclName- the acl nameace- rule to be programaddOrRemove- whether to delete or add flow
-
programForAceNotHavingRemoteAclId
protected void programForAceNotHavingRemoteAclId(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.lang.String aclName, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace ace, @Nullable java.util.Map<java.lang.String,java.util.List<org.opendaylight.genius.mdsalutil.MatchInfoBase>> flowMap, int addOrRemove)
-
programAceSpecificFlows
protected void programAceSpecificFlows(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.lang.String aclName, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace ace, @Nullable java.util.Map<java.lang.String,java.util.List<org.opendaylight.genius.mdsalutil.MatchInfoBase>> flowMap, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid remoteAclId, int addOrRemove)
-
removeAcl
public boolean removeAcl(AclInterface port)
- Specified by:
removeAclin interfaceAclServiceListener
-
applyAce
public boolean applyAce(AclInterface port, java.lang.String aclName, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace ace)
- Specified by:
applyAcein interfaceAclServiceListener
-
removeAce
public boolean removeAce(AclInterface port, java.lang.String aclName, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace ace)
- Specified by:
removeAcein interfaceAclServiceListener
-
updateRemoteAcl
public void updateRemoteAcl(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl aclBefore, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl aclAfter, java.util.Collection<AclInterface> portsBefore)- Specified by:
updateRemoteAclin interfaceAclServiceListener
-
bindService
public abstract void bindService(AclInterface aclInterface)
Bind service.- Parameters:
aclInterface- the acl interface
-
unbindService
protected abstract void unbindService(AclInterface aclInterface)
Unbind service.- Parameters:
aclInterface- the acl interface
-
programDhcpService
protected abstract void programDhcpService(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, AclServiceManager.Action action, int addOrRemove)Programs DHCP Service flows.- Parameters:
flowEntries- the flow entriesport- the acl interfaceaction- add/modify/remove actionaddOrRemove- addorRemove
-
processDhcpServiceUpdate
protected abstract void processDhcpServiceUpdate(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.util.List<AllowedAddressPairs> allowedAddresses, int addOrRemove)Programs DHCP service flows.- Parameters:
flowEntries- the flow entriesport- the acl interfaceallowedAddresses- the allowed addressesaddOrRemove- addorRemove
-
programAntiSpoofingRules
protected abstract void programAntiSpoofingRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.util.List<AllowedAddressPairs> allowedAddresses, AclServiceManager.Action action, int addOrRemove)Programs the anti-spoofing rules.- Parameters:
flowEntries- the flow entriesport- the acl interfaceallowedAddresses- the allowed addressesaction- add/modify/remove actionaddOrRemove- addorRemove
-
programBroadcastRules
protected abstract void programBroadcastRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, AclServiceManager.Action action, int addOrRemove)Programs broadcast rules.- Parameters:
flowEntries- the flow entriesport- the Acl Interface portaddOrRemove- whether to delete or add flow
-
programSubnetBroadcastRules
protected abstract void programSubnetBroadcastRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.util.List<SubnetInfo> subnetInfoList, int addOrRemove)Programs broadcast rules.- Parameters:
flowEntries- the flow entriesport- the Acl Interface portsubnetInfoList- the port subnet info listaddOrRemove- whether to delete or add flow
-
programIcmpv6RARule
protected abstract void programIcmpv6RARule(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.util.List<SubnetInfo> subnets, int addOrRemove)
-
addFlowEntryToList
protected void addFlowEntryToList(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, short tableId, java.lang.String flowId, int priority, int idleTimeOut, int hardTimeOut, org.opendaylight.yangtools.yang.common.Uint64 cookie, java.util.List<? extends org.opendaylight.genius.mdsalutil.MatchInfoBase> matches, java.util.List<org.opendaylight.genius.mdsalutil.InstructionInfo> instructions, int addOrRemove)Add Flow to list.- Parameters:
dpId- the dpIdtableId- the tableIdflowId- the flowIdpriority- the priorityidleTimeOut- the idle timeouthardTimeOut- the hard timeoutcookie- the cookiematches- the list of matches to be writtedinstructions- the list of instruction to be written.addOrRemove- add or remove the entries.
-
programFlows
protected void programFlows(java.lang.String jobName, java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, int addOrRemove)
-
getDispatcherTableResubmitInstructions
protected java.util.List<org.opendaylight.genius.mdsalutil.InstructionInfo> getDispatcherTableResubmitInstructions()
-
getDispatcherTableResubmitInstructions
protected java.util.List<org.opendaylight.genius.mdsalutil.InstructionInfo> getDispatcherTableResubmitInstructions(java.util.List<org.opendaylight.genius.mdsalutil.ActionInfo> actionsInfos)
Gets the dispatcher table resubmit instructions based on ingress/egress service mode w.r.t switch.- Parameters:
actionsInfos- the actions infos- Returns:
- the instructions for dispatcher table resubmit
-
handleRemoteAclUpdate
protected void handleRemoteAclUpdate(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl aclBefore, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.Acl aclAfter, java.util.Collection<AclInterface> portsBefore)
-
programRemoteAclTableFlow
protected abstract void programRemoteAclTableFlow(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.lang.Integer aclTag, AllowedAddressPairs aap, int addOrRemove)
-
collectDpns
protected java.util.Set<java.math.BigInteger> collectDpns(@Nullable java.util.Map<java.lang.String,java.util.Set<AclInterface>> mapAclWithPortSet)
-
programAclPortSpecificFixedRules
protected void programAclPortSpecificFixedRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.util.List<AllowedAddressPairs> allowedAddresses, int lportTag, java.lang.String portId, AclServiceManager.Action action, int write)Programs the port specific fixed rules.- Parameters:
flowEntries- the flow entriesdpId- the dp idallowedAddresses- the allowed addresseslportTag- the lport tagportId- the portIdaction- the actionwrite- whether to add or remove the flow.
-
programGotoClassifierTableRules
protected abstract void programGotoClassifierTableRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.util.List<AllowedAddressPairs> aaps, int lportTag, int addOrRemove)
-
programConntrackRecircRules
protected void programConntrackRecircRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.util.List<AllowedAddressPairs> aaps, int lportTag, java.lang.String portId, int addOrRemove)Adds the rule to send the packet to the netfilter to check whether it is a known packet.- Parameters:
flowEntries- the flow entriesdpId- the dpIdaaps- the allowed address pairslportTag- the lport tagportId- the portIdaddOrRemove- whether to add or remove the flow
-
programConntrackRecircRule
protected void programConntrackRecircRule(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, int lportTag, java.lang.String portId, org.opendaylight.genius.mdsalutil.matches.MatchEthernetType matchEtherType, int addOrRemove)
-
programPortSpecificDropRules
protected void programPortSpecificDropRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, int lportTag, int addOrRemove)Adds the rules to drop the unknown/invalid packets .- Parameters:
flowEntries- the flow entriesdpId- the dpIdlportTag- the lport tagaddOrRemove- whether to add or remove the flow
-
programConntrackInvalidDropRule
protected void programConntrackInvalidDropRule(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, int lportTag, int addOrRemove)Adds the rule to drop the conntrack invalid packets .- Parameters:
flowEntries- the flow entriesdpId- the dpIdlportTag- the lport tagaddOrRemove- whether to add or remove the flow
-
programAclRuleMissDropRule
protected void programAclRuleMissDropRule(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, int lportTag, int addOrRemove)Program ACL rule miss drop rule for a port.- Parameters:
flowEntries- the flow entriesdpId- the dp idlportTag- the lport tagaddOrRemove- the add or remove
-
programAclCommitRules
protected void programAclCommitRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, int lportTag, java.lang.String portId, int addOrRemove)Program acl commit rules.- Parameters:
flowEntries- the flow entriesdpId- the dp idlportTag- the lport tagportId- the port idaddOrRemove- the add or remove
-
programAclCommitRuleForConntrack
protected void programAclCommitRuleForConntrack(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, int lportTag, java.lang.String portId, org.opendaylight.genius.mdsalutil.matches.MatchEthernetType matchEtherType, int addOrRemove)Program acl commit rule for conntrack.- Parameters:
flowEntries- the flow entriesdpId- the dp idlportTag- the lport tagportId- the port idmatchEtherType- the match ether typeaddOrRemove- the add or remove
-
programAclCommitRuleForNonConntrack
protected void programAclCommitRuleForNonConntrack(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, int lportTag, int addOrRemove)Program acl commit rule for non conntrack.- Parameters:
flowEntries- the flow entriesdpId- the dp idlportTag- the lport tagaddOrRemove- the add or remove
-
getElanIdFromAclInterface
protected @Nullable java.lang.Long getElanIdFromAclInterface(java.lang.String elanInterfaceName)
-
isValidDirection
protected abstract boolean isValidDirection(java.lang.Class<? extends DirectionBase> direction)
-
getAclConntrackSenderTable
protected abstract short getAclConntrackSenderTable()
-
getAclForExistingTrafficTable
protected abstract short getAclForExistingTrafficTable()
-
getAclFilterCumDispatcherTable
protected abstract short getAclFilterCumDispatcherTable()
-
getAclRuleBasedFilterTable
protected abstract short getAclRuleBasedFilterTable()
-
getAclRemoteAclTable
protected abstract short getAclRemoteAclTable()
-
getAclCommitterTable
protected abstract short getAclCommitterTable()
-
-