acl.proto¶
AclMgrService¶
watch¶
rpc watch(AclWatchRequest) AclWatchResponse
Subscription to monitor ACL hardware synchronization events. This request stays active until the client cancels or the server shuts down.
EosSdk reference: eos::acl_handler (class)
acls¶
rpc acls(AclsRequest) AclsResponse
Returns a list of the ACLs created by this application.
EosSdk reference: eos::acl_mgr::acl_iter
acls_all¶
rpc acls_all(AclsAllRequest) AclsAllResponse
Returns a list of all the ACLs.
EosSdk reference: eos::acl_mgr::acl_all_iter
acl_rule_ips¶
rpc acl_rule_ips(AclRuleIpsRequest) AclRuleIpsResponse
Returns a list of all the IP ACL rules created by this application for a specified ACL.
EosSdk reference: eos::acl_mgr::acl_rule_ip_iter
acl_all_rule_ips¶
rpc acl_all_rule_ips(AclAllRuleIpsRequest) AclAllRuleIpsResponse
Returns a list of all the IP ACL rules for a specified ACL.
EosSdk reference: eos::acl_mgr::acl_all_rule_ip_iter
acl_rule_eths¶
rpc acl_rule_eths(AclRuleEthsRequest) AclRuleEthsResponse
Returns a list of all the ethernet ACL rules created by this application for a specified ACL.
EosSdk reference: eos::acl_mgr::acl_rule_eth_iter
acl_all_rule_eths¶
rpc acl_all_rule_eths(AclAllRuleEthsRequest) AclAllRuleEthsResponse
Returns a list of all the ethernet ACL rules for a specified ACL.
EosSdk reference: eos::acl_mgr::acl_all_rule_eth_iter
acl_exists¶
rpc acl_exists(AclExistsRequest) AclExistsResponse
Queries whether the specified ACL has been configured in this application.
EosSdk reference: eos::acl_mgr::acl_exists
acl_all_exists¶
rpc acl_all_exists(AclAllExistsRequest) AclAllExistsResponse
Queries whether the specified ACL has been configured.
EosSdk reference: eos::acl_mgr::acl_all_exists
acl_rule_set¶
rpc acl_rule_set(AclRuleSetRequest) AclRuleSetResponse
Adds a rule to an ACL. If the specified ACL does not exist it is created. The type of the rule must be the same as the ACL's type.
Note: Must call acl_commit for this change to take effect Note: An extremely large numbers of ACLs or rules per ACL can result in undefined behavior, including a switch reload.
EosSdk reference: eos::acl_mgr::acl_rule_set
bulk_acl_rule_set¶
rpc bulk_acl_rule_set(BulkAclRuleSetRequest) BulkAclRuleSetResponse
Adds multiple rules to ACLs in a single call. Creates any ACLs that do not exist.
Note: Must call acl_commit for this change to take effect.
EosSdk reference: eos::acl_mgr::acl_rule_set
acl_rule_del¶
rpc acl_rule_del(AclRuleDelRequest) AclRuleDelResponse
Removes a rule from an ACL. If the specified ACL does not exist or there is no rule at the specified sequence number no changes are made.
Note: Must call acl_commit for this change to take effect.
EosSdk reference: eos::acl_mgr::acl_rule_del
bulk_acl_rule_del¶
rpc bulk_acl_rule_del(BulkAclRuleDelRequest) BulkAclRuleDelResponse
Removes multiple rules from ACLs in a single call.
Note: Must call acl_commit for this change to take effect.
EosSdk reference: eos::acl_mgr::acl_rule_del
acl_commit¶
rpc acl_commit(AclCommitRequest) AclCommitResponse
Commits all rule and setting changes made to all ACLs.
Pushes ACLs into Sysdb's active configuration. This commit cannot fail, but it can lead to a state where not all ACLs can be loaded into hardware. You will be notified via an on_acl_sync event when this commit and all other outstanding operations such as interface applications are loaded into hardware, or an on_acl_sync_fail event if the newly committed configuration can't be loaded. If there are no changes pending, you will get one of those events depending on whether the current state in Sysdb can be loaded into hardware or not.
EosSdk reference: eos::acl_mgr::acl_commit
acl_del¶
rpc acl_del(AclDelRequest) AclDelResponse
Deletes the specified ACL removing it from all interfaces and removing all of its rules. Any pending changes to the ACL are discarded. It is effective immediately (no commit needed and no watcher event is provided).
EosSdk reference: eos::acl_mgr::acl_del
bulk_acl_del¶
rpc bulk_acl_del(BulkAclDelRequest) BulkAclDelResponse
Deletes multiple ACLs in a single call.
EosSdk reference: eos::acl_mgr::acl_del
acl_apply¶
rpc acl_apply(AclApplyRequest) AclApplyResponse
Requests that an ACL be (un)applied on the given interface and direction.
ACL is loaded into hardware asynchronously. Like acl_commit, this call results in a watcher event when we have applied, or failed to apply, this ACL configuration. That is, an event will not be sent per call but instead an event will be sent when everything is loaded into hardware, or when we notice problems.
API call ordering note: any acl_rule_set or acl_rule_del calls must be followed by an acl_commit prior to calling this rpc otherwise this call will return an error.
EosSdk reference: eos::acl_mgr::acl_apply
bulk_acl_apply¶
rpc bulk_acl_apply(BulkAclApplyRequest) BulkAclApplyResponse
Apply or unapply multiple ACLs on the specified interfaces and directions in a single call.
EosSdk reference: eos::acl_mgr::acl_apply
acl_counters_enabled_set¶
rpc acl_counters_enabled_set(AclCountersEnabledSetRequest) AclCountersEnabledSetResponse
Enable or disable counters for the ACL.
Note: Must call acl_commit before this setting takes effect.
EosSdk reference: eos::acl_mgr::acl_counters_enabled_set
bulk_acl_counters_enabled_set¶
rpc bulk_acl_counters_enabled_set(BulkAclCountersEnabledSetRequest) BulkAclCountersEnabledSetResponse
Enable or disable counters for multiple ACLs in a single call.
Note: Must call acl_commit before this setting takes effect.
EosSdk reference: eos::acl_mgr::acl_counters_enabled_set
acl_fragments_enabled_set¶
rpc acl_fragments_enabled_set(AclFragmentsEnabledSetRequest) AclFragmentsEnabledSetResponse
Enable or disable fragments matching on the ACL.
Note: Must call acl_commit before this setting takes effect.
EosSdk reference: eos::acl_mgr::acl_fragments_enabled_set
bulk_acl_fragments_enabled_set¶
rpc bulk_acl_fragments_enabled_set(BulkAclFragmentsEnabledSetRequest) BulkAclFragmentsEnabledSetResponse
Enables or disables fragments matching on multiple ACLs in a single call.
Note: Must call acl_commit before this setting takes effect.
EosSdk reference: eos::acl_mgr::acl_fragments_enabled_set
stream_allowed¶
rpc stream_allowed(StreamAllowedRequest) StreamAllowedResponse
Check a connection against any applied ACL to determine if it should be dropped, incrementing the ACL counter if so. For use with SOCK_STREAM or SOCK_DGRAM.
EosSdk reference: eos::acl_mgr::stream_allowed
dgram_allowed¶
rpc dgram_allowed(DgramAllowedRequest) DgramAllowedResponse
Check a packet against any applied ACL to determine if it should be dropped, incrementing the ACL counter if so. For use with SOCK_DGRAM only.
EosSdk reference: eos::acl_mgr::dgram_allowed
Messages¶
AclAllExistsRequest¶
Name | Value | Description |
---|---|---|
key | AclKey | The key of the ACL to query. |
AclAllExistsResponse¶
Name | Value | Description |
---|---|---|
exists | bool | True if the ACL exists in any configuration in the device otherwise false. |
AclAllRuleEthsRequest¶
Name | Value | Description |
---|---|---|
key | AclKey | The key of ACL to get the ethernet rules for. |
AclAllRuleEthsResponse¶
Name | Value | Description |
---|---|---|
eth_rule | AclRuleEthEntry |
AclAllRuleIpsRequest¶
Name | Value | Description |
---|---|---|
key | AclKey | The key of ACL to get the IP rules for. |
AclAllRuleIpsResponse¶
Name | Value | Description |
---|---|---|
ip_rule | AclRuleIpEntry |
AclApplyRequest¶
Name | Value | Description |
---|---|---|
key | AclKey | The key of the ACL to [un]apply. |
intf_id | IntfId | The inteface ID of the the interface to [un]apply the ACL. |
direction | AclDirection | The direction in which to [un]apply the ACL. |
apply | bool | True if the ACL should be applied otherwise false if it should be unapplied. |
AclApplyResponse¶
Empty message.
AclCommitRequest¶
Empty message.
AclCommitResponse¶
Empty message.
AclCountersEnabledSetRequest¶
Name | Value | Description |
---|---|---|
key | AclKey | The key of the ACL to modify. |
enabled | bool | True if counters should be enabled for the ACL otherwise false if they should be disabled. |
AclCountersEnabledSetResponse¶
Empty message.
AclDelRequest¶
Name | Value | Description |
---|---|---|
key | AclKey | The key of the ACL to remove. |
AclDelResponse¶
Empty message.
AclExistsRequest¶
Name | Value | Description |
---|---|---|
key | AclKey | The key of the ACL to query. |
AclExistsResponse¶
Name | Value | Description |
---|---|---|
exists | bool | True if the ACL exists in the application's configuration otherwise false. |
AclFragmentsEnabledSetRequest¶
Name | Value | Description |
---|---|---|
key | AclKey | The key of the ACL to modify. |
enabled | bool | True if fragments matching should be enabled for the ACL otherwise false if it should be disabled. |
AclFragmentsEnabledSetResponse¶
Empty message.
AclRuleDelRequest¶
Name | Value | Description |
---|---|---|
key | AclKey | The key of the ACL to modify. |
sequence_number | uint32 | The sequence number at which to remove the rule. |
AclRuleDelResponse¶
Empty message.
AclRuleEthEntry¶
Name | Value | Description |
---|---|---|
sequence_number | uint32 | |
eth_rule | AclRuleEth |
AclRuleEthsRequest¶
Name | Value | Description |
---|---|---|
key | AclKey | The key of ACL to get the ethernet rules for. |
AclRuleEthsResponse¶
Name | Value | Description |
---|---|---|
eth_rule | AclRuleEthEntry |
AclRuleIpEntry¶
Name | Value | Description |
---|---|---|
sequence_number | uint32 | |
ip_rule | AclRuleIp |
AclRuleIpsRequest¶
Name | Value | Description |
---|---|---|
key | AclKey | The key of ACL to get the IP rules for. |
AclRuleIpsResponse¶
Name | Value | Description |
---|---|---|
ip_rule | AclRuleIpEntry |
AclRuleSetRequest¶
Name | Value | Description |
---|---|---|
key | AclKey | The key of the ACL to create or modify. |
sequence_number | uint32 | The sequence number to add the rule at. |
oneof acl_rule.ip_rule | AclRuleIp | IP ACL rule to add to the ACL. |
oneof acl_rule.eth_rule | AclRuleEth | Ethenet ACL rule to add to the ACL. |
AclRuleSetResponse¶
Empty message.
AclWatchRequest¶
Name | Value | Description |
---|---|---|
ack | bool | Set to true if an immediate acknowledgment is desired. |
AclWatchResponse¶
Name | Value | Description |
---|---|---|
oneof acl_event.ack | bool | If true the agent is now actively watching for events. |
oneof acl_event.on_acl_sync | OnAclSync | All pending transactions have been successfully committed to hardware. |
oneof acl_event.on_acl_sync_fail | OnAclSyncFail | A problem has stopped the ACL configuration from being committed to hardware. |
AclsAllRequest¶
Empty message.
AclsAllResponse¶
An acl that was created by this application.
Name | Value | Description |
---|---|---|
key | AclKey |
AclsRequest¶
Empty message.
AclsResponse¶
An acl that was created by this application.
Name | Value | Description |
---|---|---|
key | AclKey |
BulkAclApplyRequest¶
Name | Value | Description |
---|---|---|
requests | repeated AclApplyRequest | List of AclApplyRequests. |
BulkAclApplyResponse¶
Name | Value | Description |
---|---|---|
processed | uint64 | Number of consecutive successful requests. |
status | RpcResponseStatus | Success or error details in the event of failure. |
BulkAclCountersEnabledSetRequest¶
Name | Value | Description |
---|---|---|
requests | repeated AclCountersEnabledSetRequest | List of AclCountersEnabledSetRequests. |
BulkAclCountersEnabledSetResponse¶
Name | Value | Description |
---|---|---|
processed | uint64 | Number of consecutive successful requests. |
status | RpcResponseStatus | Success or error details in the event of failure. |
BulkAclDelRequest¶
Name | Value | Description |
---|---|---|
requests | repeated AclDelRequest | List of AclDelRequests. |
BulkAclDelResponse¶
Name | Value | Description |
---|---|---|
processed | uint64 | Number of consecutive successful requests. |
status | RpcResponseStatus | Success or error details in the event of failure. |
BulkAclFragmentsEnabledSetRequest¶
Name | Value | Description |
---|---|---|
requests | repeated AclFragmentsEnabledSetRequest | List of AclFragmentsEnabledSetRequests. |
BulkAclFragmentsEnabledSetResponse¶
Name | Value | Description |
---|---|---|
processed | uint64 | Number of consecutive successful requests. |
status | RpcResponseStatus | Success or error details in the event of failure. |
BulkAclRuleDelRequest¶
Name | Value | Description |
---|---|---|
requests | repeated AclRuleDelRequest | List of AclRuleDelRequests. |
BulkAclRuleDelResponse¶
Name | Value | Description |
---|---|---|
processed | uint64 | Number of consecutive successful requests. |
status | RpcResponseStatus | Success or error details in the event of failure. |
BulkAclRuleSetRequest¶
Name | Value | Description |
---|---|---|
requests | repeated AclRuleSetRequest | List of AclRuleSetRequests. |
BulkAclRuleSetResponse¶
Name | Value | Description |
---|---|---|
processed | uint64 | Number of consecutive successful requests. |
status | RpcResponseStatus | Success or error details in the event of failure. |
DgramAllowedRequest¶
Name | Value | Description |
---|---|---|
source_addr | bytes | The source IP address. |
dest_addr | bytes | The destination IP address. |
source_port | uint32 | The source port. Must be in range 0 to 65535. |
dest_port | uint32 | The desitionation port. Must be in range 0 to 65535. |
ttl | uint32 | Time to live if IPv4 otherwise hop limit if IPv6. Must be in range 0 to 255. |
tos | uint32 | Type of service if IPv4 othersiwe traffic class if IPv6. Must be in range 0 to 255 |
recipient_intf | IntfId | Recipient interface. |
DgramAllowedResponse¶
Name | Value | Description |
---|---|---|
dgram_allowed | bool | True if packet is allowed otherwise false if it should be dropped. |
OnAclSync¶
Notification for when all pending transactions have been successfully committed to hardware. May be called multiple times for a single transaction or only once for a whole bunch of seperate updates. May also be called due to ACL updates made using the CLI.
Empty message.
OnAclSyncFail¶
Notification for when a problem has stopped ACL configuration from being committed to hardware. The config must be modified in some way to get Sysdb and hardware back in sync. The most common problem is too many ACLs or ACL entries. It is up to the client to find and fix the issue. After committing the required modifications an on_acl_sync notification will be sent if the problem is fixed otherwsie another on_acl_sync_fail notification will be sent to indicate there is still a problem.
Note: Multiple nofitications may be sent for a single problem and notifications may be sent due to misconfigurations made using the CLI.
Name | Value | Description |
---|---|---|
linecard | string | The linecard reporting the issue. |
message | string | An error message describing the problem. |
StreamAllowedRequest¶
Name | Value | Description |
---|---|---|
source_addr | bytes | The source IP address. |
dest_addr | bytes | The destination IP address. |
protocol | uint32 | Optional: The protocol. Must be in range 0 to 255. |
source_port | uint32 | Optional: The source port. Must be in range 0 to 65535. |
dest_port | uint32 | Optional: The desitionation port. Must be in range 0 to 65535. |
StreamAllowedResponse¶
Name | Value | Description |
---|---|---|
stream_allowed | bool | True if the connection is allowed otherwise false if it should be dropped. |