public class IngressAclServiceImpl extends AbstractAclServiceImpl
Note: Table names used are w.r.t switch. Hence, switch ingress is VM egress and vice versa.
aclDataUtil, aclInterfaceCache, aclServiceUtils, dataBroker, direction, directionString, jobCoordinator, mdsalManager, serviceMode, txRunner
Constructor and Description |
---|
IngressAclServiceImpl(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.
|
Modifier and Type | Method and Description |
---|---|
void |
bindService(AclInterface aclInterface)
Bind service.
|
protected short |
getAclAntiSpoofingTable() |
protected short |
getAclCommitterTable() |
protected short |
getAclConntrackClassifierTable() |
protected short |
getAclConntrackSenderTable() |
protected short |
getAclFilterCumDispatcherTable() |
protected short |
getAclForExistingTrafficTable() |
protected short |
getAclRemoteAclTable() |
protected short |
getAclRuleBasedFilterTable() |
protected void |
ingressAclDhcpAllowServerTraffic(List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries,
BigInteger dpId,
int lportTag,
int addOrRemove)
Add rule to ensure only DHCP server traffic from the specified mac is allowed.
|
protected void |
ingressAclDhcpv6AllowServerTraffic(List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries,
BigInteger dpId,
int lportTag,
int addOrRemove)
Add rule to ensure only DHCPv6 server traffic from the specified mac is allowed.
|
protected boolean |
isValidDirection(Class<? extends DirectionBase> direction) |
protected void |
programAntiSpoofingRules(List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries,
AclInterface port,
List<AllowedAddressPairs> allowedAddresses,
AclServiceManager.Action action,
int addOrRemove)
Programs the anti-spoofing rules.
|
protected void |
programArpRule(List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries,
BigInteger dpId,
int lportTag,
int addOrRemove)
Adds the rule to allow arp packets.
|
protected void |
programBroadcastRules(List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries,
AclInterface port,
int addOrRemove)
Programs broadcast rules.
|
protected void |
programGotoClassifierTableRules(List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries,
BigInteger dpId,
List<AllowedAddressPairs> aaps,
int lportTag,
int addOrRemove) |
protected void |
programIcmpv6RARule(List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries,
AclInterface port,
List<SubnetInfo> subnets,
int addOrRemove) |
protected void |
programRemoteAclTableFlow(List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries,
BigInteger dpId,
Integer aclTag,
AllowedAddressPairs aap,
int addOrRemove) |
protected void |
unbindService(AclInterface aclInterface)
Unbind service.
|
addFlowEntryToList, applyAce, applyAcl, bindAcl, collectDpns, getDispatcherTableResubmitInstructions, getDispatcherTableResubmitInstructions, getElanIdFromAclInterface, getOperAsString, getRemoteAclTags, handleRemoteAclUpdate, programAceRule, programAceSpecificFlows, programAclCommitRuleForConntrack, programAclCommitRuleForNonConntrack, programAclCommitRules, programAclDispatcherTable, programAclPortSpecificFixedRules, programAclRuleMissDropRule, programAclRules, programConntrackInvalidDropRule, programConntrackRecircRule, programConntrackRecircRules, programFirstRemoteAclEntryInDispatcherTable, programFlows, programForAceNotHavingRemoteAclId, programLastRemoteAclEntryInDispatcherTable, programPortSpecificDropRules, removeAce, removeAcl, unbindAcl, updateAcl, updateRemoteAcl
public IngressAclServiceImpl(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)
dataBroker
- the data broker instance.mdsalManager
- the mdsal manager.aclDataUtil
- the acl data util.aclServiceUtils
- the acl service util.jobCoordinator
- the job coordinatoraclInterfaceCache
- the acl interface cachepublic void bindService(AclInterface aclInterface)
bindService
in class AbstractAclServiceImpl
aclInterface
- the acl interfaceprotected void unbindService(AclInterface aclInterface)
unbindService
in class AbstractAclServiceImpl
aclInterface
- the acl interfaceprotected void programAntiSpoofingRules(List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, List<AllowedAddressPairs> allowedAddresses, AclServiceManager.Action action, int addOrRemove)
AbstractAclServiceImpl
programAntiSpoofingRules
in class AbstractAclServiceImpl
flowEntries
- the flow entriesport
- the acl interfaceallowedAddresses
- the allowed addressesaction
- add/modify/remove actionaddOrRemove
- addorRemoveprotected void programGotoClassifierTableRules(List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, BigInteger dpId, List<AllowedAddressPairs> aaps, int lportTag, int addOrRemove)
programGotoClassifierTableRules
in class AbstractAclServiceImpl
protected void programRemoteAclTableFlow(List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, BigInteger dpId, Integer aclTag, AllowedAddressPairs aap, int addOrRemove)
programRemoteAclTableFlow
in class AbstractAclServiceImpl
protected void ingressAclDhcpAllowServerTraffic(List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, BigInteger dpId, int lportTag, int addOrRemove)
flowEntries
- the flow entriesdpId
- the dpidlportTag
- the lport tagaddOrRemove
- is write or deleteprotected void ingressAclDhcpv6AllowServerTraffic(List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, BigInteger dpId, int lportTag, int addOrRemove)
flowEntries
- the flow entriesdpId
- the dpidlportTag
- the lport tagaddOrRemove
- is write or deleteprotected void programIcmpv6RARule(List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, List<SubnetInfo> subnets, int addOrRemove)
programIcmpv6RARule
in class AbstractAclServiceImpl
protected void programArpRule(List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, BigInteger dpId, int lportTag, int addOrRemove)
flowEntries
- the flow entriesdpId
- the dpIdlportTag
- the lport tagaddOrRemove
- whether to add or remove the flowprotected void programBroadcastRules(List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, int addOrRemove)
programBroadcastRules
in class AbstractAclServiceImpl
flowEntries
- the flow entriesport
- the Acl Interface portaddOrRemove
- whether to delete or add flowprotected boolean isValidDirection(Class<? extends DirectionBase> direction)
isValidDirection
in class AbstractAclServiceImpl
protected short getAclAntiSpoofingTable()
getAclAntiSpoofingTable
in class AbstractAclServiceImpl
protected short getAclConntrackClassifierTable()
getAclConntrackClassifierTable
in class AbstractAclServiceImpl
protected short getAclConntrackSenderTable()
getAclConntrackSenderTable
in class AbstractAclServiceImpl
protected short getAclForExistingTrafficTable()
getAclForExistingTrafficTable
in class AbstractAclServiceImpl
protected short getAclFilterCumDispatcherTable()
getAclFilterCumDispatcherTable
in class AbstractAclServiceImpl
protected short getAclRuleBasedFilterTable()
getAclRuleBasedFilterTable
in class AbstractAclServiceImpl
protected short getAclRemoteAclTable()
getAclRemoteAclTable
in class AbstractAclServiceImpl
protected short getAclCommitterTable()
getAclCommitterTable
in class AbstractAclServiceImpl
Copyright © 2019 OpenDaylight. All rights reserved.