public abstract class AbstractEgressAclServiceImpl extends AbstractAclServiceImpl
Note: Table names used are w.r.t switch. Hence, switch ingress is VM egress and vice versa.
aclDataUtil, aclServiceUtils, dataBroker, mdsalManager, serviceMode
Constructor and Description |
---|
AbstractEgressAclServiceImpl(org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker,
org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager,
AclDataUtil aclDataUtil,
AclServiceUtils aclServiceUtils)
Initialize the member variables.
|
Modifier and Type | Method and Description |
---|---|
void |
bindService(AclInterface aclInterface)
Bind service.
|
protected org.opendaylight.genius.mdsalutil.MatchInfoBase |
buildLPortTagMatch(int lportTag) |
protected void |
egressAclDhcpDropServerTraffic(BigInteger dpId,
String dhcpMacAddress,
int lportTag,
int addOrRemove)
Anti-spoofing rule to block the Ipv4 DHCP server traffic from the port.
|
protected void |
egressAclDhcpv6DropServerTraffic(BigInteger dpId,
String dhcpMacAddress,
int lportTag,
int addOrRemove)
Anti-spoofing rule to block the Ipv6 DHCP server traffic from the port.
|
protected short |
getEgressAclFilterTable() |
protected short |
getEgressAclRemoteAclTable() |
protected short |
getStatefulEgressAclApplyOnExistingTrafficTable() |
protected void |
programAceRule(AclInterface port,
int addOrRemove,
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,
List<AllowedAddressPairs> syncAllowedAddresses)
Programs the ace custom rule.
|
protected boolean |
programAclRules(AclInterface port,
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 void |
programArpRule(BigInteger dpId,
List<AllowedAddressPairs> allowedAddresses,
int lportTag,
int addOrRemove)
Adds the rule to allow arp packets.
|
protected void |
programBroadcastRules(AclInterface port,
int addOrRemove)
Programs broadcast rules.
|
protected void |
programGeneralFixedRules(AclInterface port,
String dhcpMacAddress,
List<AllowedAddressPairs> allowedAddresses,
AclServiceManager.Action action,
int addOrRemove)
Program the default anti-spoofing rules.
|
protected abstract String |
syncSpecificAclFlow(BigInteger dpId,
int lportTag,
int addOrRemove,
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace ace,
String portId,
Map<String,List<org.opendaylight.genius.mdsalutil.MatchInfoBase>> flowMap,
String flowName) |
protected void |
unbindService(AclInterface aclInterface)
Unbind service.
|
protected void |
updateArpForAllowedAddressPairs(BigInteger dpId,
int lportTag,
List<AllowedAddressPairs> deletedAAP,
List<AllowedAddressPairs> addedAAP)
Update arp for allowed address pairs.
|
protected void |
updateRemoteAclTableForPort(AclInterface port,
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid acl,
int addOrRemove,
AllowedAddressPairs ip,
BigInteger aclId,
BigInteger dpId) |
applyAce, applyAcl, bindAcl, collectDpns, getAclFlowPriority, getDispatcherTableResubmitInstructions, getIpPrefixOrAddress, getOperAsString, programSpecificFixedRules, rebindAcl, removeAce, removeAcl, syncFlow, unbindAcl, updateAcl
public AbstractEgressAclServiceImpl(org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker, org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager, AclDataUtil aclDataUtil, AclServiceUtils aclServiceUtils)
dataBroker
- the data broker instance.mdsalManager
- the mdsal manager instance.aclDataUtil
- the acl data util.aclServiceUtils
- the acl service util.public 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 programGeneralFixedRules(AclInterface port, String dhcpMacAddress, List<AllowedAddressPairs> allowedAddresses, AclServiceManager.Action action, int addOrRemove)
AbstractAclServiceImpl
programGeneralFixedRules
in class AbstractAclServiceImpl
port
- the acl interfacedhcpMacAddress
- the dhcp mac address.allowedAddresses
- the allowed addressesaction
- add/modify/remove actionaddOrRemove
- addorRemoveprotected void updateArpForAllowedAddressPairs(BigInteger dpId, int lportTag, List<AllowedAddressPairs> deletedAAP, List<AllowedAddressPairs> addedAAP)
AbstractAclServiceImpl
updateArpForAllowedAddressPairs
in class AbstractAclServiceImpl
dpId
- the dp idlportTag
- the lport tagdeletedAAP
- the deleted allowed address pairsaddedAAP
- the added allowed address pairsprotected boolean programAclRules(AclInterface port, List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> aclUuidList, int addOrRemove)
AbstractAclServiceImpl
programAclRules
in class AbstractAclServiceImpl
port
- acl interfaceaclUuidList
- the list of acl uuid to be appliedaddOrRemove
- whether to delete or add flowprotected void programAceRule(AclInterface port, int addOrRemove, 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, List<AllowedAddressPairs> syncAllowedAddresses)
AbstractAclServiceImpl
programAceRule
in class AbstractAclServiceImpl
port
- acl interfaceaddOrRemove
- whether to delete or add flowaclName
- the acl nameace
- rule to be programsyncAllowedAddresses
- the allowed addressesprotected void updateRemoteAclTableForPort(AclInterface port, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid acl, int addOrRemove, AllowedAddressPairs ip, BigInteger aclId, BigInteger dpId)
updateRemoteAclTableForPort
in class AbstractAclServiceImpl
protected short getEgressAclFilterTable()
protected short getEgressAclRemoteAclTable()
protected short getStatefulEgressAclApplyOnExistingTrafficTable()
protected abstract String syncSpecificAclFlow(BigInteger dpId, int lportTag, int addOrRemove, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.Ace ace, String portId, Map<String,List<org.opendaylight.genius.mdsalutil.MatchInfoBase>> flowMap, String flowName)
protected void egressAclDhcpDropServerTraffic(BigInteger dpId, String dhcpMacAddress, int lportTag, int addOrRemove)
dpId
- the dpIddhcpMacAddress
- the Dhcp mac addresslportTag
- the lport tagaddOrRemove
- add/remove the flow.protected void egressAclDhcpv6DropServerTraffic(BigInteger dpId, String dhcpMacAddress, int lportTag, int addOrRemove)
dpId
- the dpIddhcpMacAddress
- the Dhcp mac addresslportTag
- the lport tagaddOrRemove
- add/remove the flow.protected void programArpRule(BigInteger dpId, List<AllowedAddressPairs> allowedAddresses, int lportTag, int addOrRemove)
dpId
- the dpIdallowedAddresses
- the allowed addresseslportTag
- the lport tagaddOrRemove
- whether to add or remove the flowprotected void programBroadcastRules(AclInterface port, int addOrRemove)
programBroadcastRules
in class AbstractAclServiceImpl
port
- the Acl Interface portaddOrRemove
- whether to delete or add flowprotected org.opendaylight.genius.mdsalutil.MatchInfoBase buildLPortTagMatch(int lportTag)
Copyright © 2018 OpenDaylight. All rights reserved.