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 AclDataUtil
aclDataUtil
protected AclInterfaceCache
aclInterfaceCache
protected AclServiceUtils
aclServiceUtils
protected java.lang.Class<? extends DirectionBase>
direction
protected java.lang.String
directionString
protected org.opendaylight.infrautils.jobcoordinator.JobCoordinator
jobCoordinator
protected org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager
mdsalManager
protected java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase>
serviceMode
protected org.opendaylight.genius.infra.ManagedNewTransactionRunner
txRunner
-
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.mdsal.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 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.boolean
applyAce(AclInterface port, java.lang.String aclName, Ace ace)
boolean
applyAcl(AclInterface port)
boolean
bindAcl(AclInterface port)
abstract void
bindService(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 short
getAclCommitterTable()
protected abstract short
getAclConntrackSenderTable()
protected abstract short
getAclFilterCumDispatcherTable()
protected abstract short
getAclForExistingTrafficTable()
protected abstract short
getAclRemoteAclTable()
protected abstract short
getAclRuleBasedFilterTable()
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.Long
getElanIdFromAclInterface(java.lang.String elanInterfaceName)
protected java.util.SortedSet<java.lang.Integer>
getRemoteAclTags(AclInterface port)
protected void
handleRemoteAclUpdate(Acl aclBefore, Acl aclAfter, java.util.Collection<AclInterface> portsBefore)
protected abstract boolean
isValidDirection(java.lang.Class<? extends DirectionBase> direction)
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.protected void
programAceRule(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.lang.String aclName, Ace ace, int addOrRemove)
Programs the ace specific rule.protected void
programAceSpecificFlows(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.lang.String aclName, 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 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.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.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.protected void
programAclDispatcherTable(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, int addOrRemove)
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.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.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.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.protected abstract void
programBroadcastRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, AclServiceManager.Action action, int addOrRemove)
Programs broadcast rules.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 .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)
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.protected abstract void
programDhcpService(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, AclServiceManager.Action action, int addOrRemove)
Programs DHCP Service flows.protected void
programFirstRemoteAclEntryInDispatcherTable(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.lang.Integer firstRemoteAclTag, int addOrRemove)
protected void
programFlows(java.lang.String jobName, java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, int addOrRemove)
protected void
programForAceNotHavingRemoteAclId(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.lang.String aclName, Ace ace, @Nullable java.util.Map<java.lang.String,java.util.List<org.opendaylight.genius.mdsalutil.MatchInfoBase>> flowMap, int addOrRemove)
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)
protected abstract void
programIcmpv6RARule(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.util.List<SubnetInfo> subnets, int addOrRemove)
protected void
programLastRemoteAclEntryInDispatcherTable(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.lang.Integer lastRemoteAclTag, int addOrRemove)
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 .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)
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.boolean
removeAce(AclInterface port, java.lang.String aclName, Ace ace)
boolean
removeAcl(AclInterface port)
boolean
unbindAcl(AclInterface port)
protected abstract void
unbindService(AclInterface aclInterface)
Unbind service.boolean
updateAcl(AclInterface portBefore, AclInterface portAfter)
void
updateRemoteAcl(Acl aclBefore, 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.mdsal.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:
applyAcl
in interfaceAclServiceListener
-
bindAcl
public boolean bindAcl(AclInterface port)
- Specified by:
bindAcl
in interfaceAclServiceListener
-
unbindAcl
public boolean unbindAcl(AclInterface port)
- Specified by:
unbindAcl
in interfaceAclServiceListener
-
updateAcl
public boolean updateAcl(AclInterface portBefore, AclInterface portAfter)
- Specified by:
updateAcl
in 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, 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, 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, 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:
removeAcl
in interfaceAclServiceListener
-
applyAce
public boolean applyAce(AclInterface port, java.lang.String aclName, Ace ace)
- Specified by:
applyAce
in interfaceAclServiceListener
-
removeAce
public boolean removeAce(AclInterface port, java.lang.String aclName, Ace ace)
- Specified by:
removeAce
in interfaceAclServiceListener
-
updateRemoteAcl
public void updateRemoteAcl(Acl aclBefore, Acl aclAfter, java.util.Collection<AclInterface> portsBefore)
- Specified by:
updateRemoteAcl
in 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(Acl aclBefore, 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()
-
-