Class EgressAclServiceImpl
- java.lang.Object
- 
- org.opendaylight.netvirt.aclservice.AbstractAclServiceImpl
- 
- org.opendaylight.netvirt.aclservice.EgressAclServiceImpl
 
 
- 
- All Implemented Interfaces:
- AclServiceListener
 
 public class EgressAclServiceImpl extends AbstractAclServiceImpl Provides the implementation for egress (w.r.t VM) ACL service.Note: Table names used are w.r.t switch. Hence, switch ingress is VM egress and vice versa. 
- 
- 
Field Summary- 
Fields inherited from class org.opendaylight.netvirt.aclservice.AbstractAclServiceImplaclDataUtil, aclInterfaceCache, aclServiceUtils, direction, directionString, jobCoordinator, mdsalManager, serviceMode, txRunner
 
- 
 - 
Constructor SummaryConstructors Constructor Description EgressAclServiceImpl(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 SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbindService(AclInterface aclInterface)Bind service.protected shortgetAclCommitterTable()protected shortgetAclConntrackSenderTable()protected shortgetAclFilterCumDispatcherTable()protected shortgetAclForExistingTrafficTable()protected shortgetAclRemoteAclTable()protected shortgetAclRuleBasedFilterTable()protected booleanisValidDirection(java.lang.Class<? extends DirectionBase> direction)protected voidprocessDhcpServiceUpdate(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.util.List<AllowedAddressPairs> allowedAddresses, int addOrRemove)Programs DHCP service flows.protected 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 voidprogramArpRule(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.util.List<AllowedAddressPairs> allowedAddresses, int lportTag, int addOrRemove)Adds the rule to allow arp packets.protected voidprogramBroadcastRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, AclServiceManager.Action action, int addOrRemove)Programs broadcast rules.protected voidprogramDhcpService(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, AclServiceManager.Action action, int addOrRemove)Programs DHCP Service flows.protected 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 voidprogramIcmpv6RARule(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.util.List<SubnetInfo> subnets, int addOrRemove)protected 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 voidprogramSubnetBroadcastRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.util.List<SubnetInfo> subnetInfoList, int addOrRemove)Programs broadcast rules.protected voidunbindService(AclInterface aclInterface)Unbind service.- 
Methods inherited from class org.opendaylight.netvirt.aclservice.AbstractAclServiceImpladdFlowEntryToList, applyAce, applyAcl, bindAcl, collectDpns, getDispatcherTableResubmitInstructions, getDispatcherTableResubmitInstructions, getElanIdFromAclInterface, getRemoteAclTags, handleRemoteAclUpdate, programAceRule, programAceSpecificFlows, programAclCommitRuleForConntrack, programAclCommitRuleForNonConntrack, programAclCommitRules, programAclDispatcherTable, programAclPortSpecificFixedRules, programAclRuleMissDropRule, programAclRules, programConntrackInvalidDropRule, programConntrackRecircRule, programConntrackRecircRules, programFirstRemoteAclEntryInDispatcherTable, programFlows, programForAceNotHavingRemoteAclId, programLastRemoteAclEntryInDispatcherTable, programPortSpecificDropRules, removeAce, removeAcl, unbindAcl, updateAcl, updateRemoteAcl
 
- 
 
- 
- 
- 
Constructor Detail- 
EgressAclServiceImplpublic EgressAclServiceImpl(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 Detail- 
bindServicepublic void bindService(AclInterface aclInterface) Bind service.- Specified by:
- bindServicein class- AbstractAclServiceImpl
- Parameters:
- aclInterface- the acl interface
 
 - 
unbindServiceprotected void unbindService(AclInterface aclInterface) Unbind service.- Specified by:
- unbindServicein class- AbstractAclServiceImpl
- Parameters:
- aclInterface- the acl interface
 
 - 
programDhcpServiceprotected void programDhcpService(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, AclServiceManager.Action action, int addOrRemove)Programs DHCP Service flows.- Specified by:
- programDhcpServicein class- AbstractAclServiceImpl
- Parameters:
- flowEntries- the flow entries
- port- the acl interface
- action- add/modify/remove action
- addOrRemove- addorRemove
 
 - 
processDhcpServiceUpdateprotected void processDhcpServiceUpdate(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.util.List<AllowedAddressPairs> allowedAddresses, int addOrRemove)Programs DHCP service flows.- Specified by:
- processDhcpServiceUpdatein class- AbstractAclServiceImpl
- Parameters:
- flowEntries- the flow entries
- port- the acl interface
- allowedAddresses- the allowed addresses
- addOrRemove- addorRemove
 
 - 
programAntiSpoofingRulesprotected void programAntiSpoofingRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.util.List<AllowedAddressPairs> allowedAddresses, AclServiceManager.Action action, int addOrRemove)Description copied from class:AbstractAclServiceImplPrograms the anti-spoofing rules.- Specified by:
- programAntiSpoofingRulesin class- AbstractAclServiceImpl
- Parameters:
- flowEntries- the flow entries
- port- the acl interface
- allowedAddresses- the allowed addresses
- action- add/modify/remove action
- addOrRemove- addorRemove
 
 - 
programRemoteAclTableFlowprotected 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)- Specified by:
- programRemoteAclTableFlowin class- AbstractAclServiceImpl
 
 - 
programGotoClassifierTableRulesprotected 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)- Specified by:
- programGotoClassifierTableRulesin class- AbstractAclServiceImpl
 
 - 
programArpRuleprotected void programArpRule(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, org.opendaylight.yangtools.yang.common.Uint64 dpId, java.util.List<AllowedAddressPairs> allowedAddresses, int lportTag, int addOrRemove)Adds the rule to allow arp packets.- Parameters:
- flowEntries- the flow entries
- dpId- the dpId
- allowedAddresses- the allowed addresses
- lportTag- the lport tag
- addOrRemove- whether to add or remove the flow
 
 - 
programIcmpv6RARuleprotected void programIcmpv6RARule(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.util.List<SubnetInfo> subnets, int addOrRemove)- Specified by:
- programIcmpv6RARulein class- AbstractAclServiceImpl
 
 - 
programBroadcastRulesprotected void programBroadcastRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, AclServiceManager.Action action, int addOrRemove)Programs broadcast rules.- Specified by:
- programBroadcastRulesin class- AbstractAclServiceImpl
- Parameters:
- flowEntries- the flow entries
- port- the Acl Interface port
- addOrRemove- whether to delete or add flow
 
 - 
programSubnetBroadcastRulesprotected void programSubnetBroadcastRules(java.util.List<org.opendaylight.genius.mdsalutil.FlowEntity> flowEntries, AclInterface port, java.util.List<SubnetInfo> subnetInfoList, int addOrRemove)Programs broadcast rules.- Specified by:
- programSubnetBroadcastRulesin class- AbstractAclServiceImpl
- Parameters:
- flowEntries- the flow entries
- port- the Acl Interface port
- subnetInfoList- the port subnet info list
- addOrRemove- whether to delete or add flow
 
 - 
isValidDirectionprotected boolean isValidDirection(java.lang.Class<? extends DirectionBase> direction) - Specified by:
- isValidDirectionin class- AbstractAclServiceImpl
 
 - 
getAclConntrackSenderTableprotected short getAclConntrackSenderTable() - Specified by:
- getAclConntrackSenderTablein class- AbstractAclServiceImpl
 
 - 
getAclForExistingTrafficTableprotected short getAclForExistingTrafficTable() - Specified by:
- getAclForExistingTrafficTablein class- AbstractAclServiceImpl
 
 - 
getAclFilterCumDispatcherTableprotected short getAclFilterCumDispatcherTable() - Specified by:
- getAclFilterCumDispatcherTablein class- AbstractAclServiceImpl
 
 - 
getAclRuleBasedFilterTableprotected short getAclRuleBasedFilterTable() - Specified by:
- getAclRuleBasedFilterTablein class- AbstractAclServiceImpl
 
 - 
getAclRemoteAclTableprotected short getAclRemoteAclTable() - Specified by:
- getAclRemoteAclTablein class- AbstractAclServiceImpl
 
 - 
getAclCommitterTableprotected short getAclCommitterTable() - Specified by:
- getAclCommitterTablein class- AbstractAclServiceImpl
 
 
- 
 
-