Documentation ¶
Overview ¶
Package aclplugin implements the ACL Plugin that handles management of VPP Access lists.
Index ¶
- type ACLConfigurator
- func (plugin *ACLConfigurator) Close()
- func (plugin *ACLConfigurator) ConfigureACL(acl *acl.AccessLists_Acl) error
- func (plugin *ACLConfigurator) DeleteACL(acl *acl.AccessLists_Acl) error
- func (plugin *ACLConfigurator) Init() (err error)
- func (plugin *ACLConfigurator) ModifyACL(oldACL *acl.AccessLists_Acl, newACL *acl.AccessLists_Acl) error
- func (plugin *ACLConfigurator) Resync(acls []*acl.AccessLists_Acl, log logging.Logger) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ACLConfigurator ¶
type ACLConfigurator struct { Log logging.Logger GoVppmux govppmux.API ACLL3L4Indexes idxvpp.NameToIdxRW ACLL2Indexes idxvpp.NameToIdxRW // mapping for L2 ACLs SwIfIndexes ifaceidx.SwIfIndex Stopwatch *measure.Stopwatch // timer used to measure and store time // contains filtered or unexported fields }
ACLConfigurator runs in the background in its own goroutine where it watches for any changes in the configuration of ACLs as modelled by the proto file "../model/acl/acl.proto" and stored in ETCD under the key "/vnf-agent/{agent-label}/vpp/config/v1/acl/". Updates received from the northbound API are compared with the VPP run-time configuration and differences are applied through the VPP binary API.
func (*ACLConfigurator) ConfigureACL ¶
func (plugin *ACLConfigurator) ConfigureACL(acl *acl.AccessLists_Acl) error
ConfigureACL creates access list with provided rules and sets this list to every relevant interface
func (*ACLConfigurator) DeleteACL ¶
func (plugin *ACLConfigurator) DeleteACL(acl *acl.AccessLists_Acl) error
DeleteACL removes existing ACL. To detach ACL from interfaces, list of interfaces has to be provided
func (*ACLConfigurator) Init ¶
func (plugin *ACLConfigurator) Init() (err error)
Init goroutines, channels and mappings
func (*ACLConfigurator) ModifyACL ¶
func (plugin *ACLConfigurator) ModifyACL(oldACL *acl.AccessLists_Acl, newACL *acl.AccessLists_Acl) error
ModifyACL modifies previously created access list. L2 access list is removed and recreated, L3/L4 access list is modified directly. List of interfaces is refreshed as well
func (*ACLConfigurator) Resync ¶
func (plugin *ACLConfigurator) Resync(acls []*acl.AccessLists_Acl, log logging.Logger) error
Resync writes ACLs to the empty VPP
Directories ¶
Path | Synopsis |
---|---|
Package binapi defines the aclplugin's southbound API.
|
Package binapi defines the aclplugin's southbound API. |
acl
Code generated by govpp binapi-generator DO NOT EDIT.
|
Code generated by govpp binapi-generator DO NOT EDIT. |
Package model defines the acplugin's northbound API.
|
Package model defines the acplugin's northbound API. |
acl
Package acl is a generated protocol buffer package.
|
Package acl is a generated protocol buffer package. |
Package vppcalls contains wrappers over VPP ACL binary APIs.
|
Package vppcalls contains wrappers over VPP ACL binary APIs. |