ietf-access-control-list@2019-01-28.yang   ietf-access-control-list@2019-01-28-formatted.yang 
module ietf-access-control-list { module ietf-access-control-list {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-access-control-list"; namespace "urn:ietf:params:xml:ns:yang:ietf-access-control-list";
prefix acl; prefix acl;
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
reference reference
"RFC 6991 - Common YANG Data Types."; "RFC 6991 - Common YANG Data Types.";
} }
import ietf-packet-fields { import ietf-packet-fields {
prefix pf; prefix pf;
reference reference
"RFC 8519 - YANG Data Model for Network Access Control "RFC 8519 - YANG Data Model for Network Access Control
Lists (ACLs)."; Lists (ACLs).";
} }
import ietf-interfaces { import ietf-interfaces {
prefix if; prefix if;
reference reference
"RFC 8343 - A YANG Data Model for Interface Management."; "RFC 8343 - A YANG Data Model for Interface Management.";
} }
organization organization
"IETF NETMOD (Network Modeling) Working Group."; "IETF NETMOD (Network Modeling) Working Group.";
contact contact
"WG Web: <https://datatracker.ietf.org/wg/netmod/> "WG Web: <https://datatracker.ietf.org/wg/netmod/>
WG List: netmod@ietf.org WG List: netmod@ietf.org
Editor: Mahesh Jethanandani Editor: Mahesh Jethanandani
mjethanandani@gmail.com mjethanandani@gmail.com
Editor: Lisa Huang Editor: Lisa Huang
lyihuang16@gmail.com lyihuang16@gmail.com
Editor: Sonal Agarwal Editor: Sonal Agarwal
sagarwal12@gmail.com sagarwal12@gmail.com
skipping to change at line 157 skipping to change at line 155
base acl:acl-base; base acl:acl-base;
if-feature "eth"; if-feature "eth";
description description
"An ACL that matches on fields in the Ethernet header, "An ACL that matches on fields in the Ethernet header,
like 10/100/1000baseT or a Wi-Fi Access Control List. An ACL like 10/100/1000baseT or a Wi-Fi Access Control List. An ACL
of type ethernet does not contain matches on fields in the of type ethernet does not contain matches on fields in the
IPv4 header, the IPv6 header, or Layer 4 headers."; IPv4 header, the IPv6 header, or Layer 4 headers.";
} }
identity mixed-eth-ipv4-acl-type { identity mixed-eth-ipv4-acl-type {
base "acl:eth-acl-type"; base acl:eth-acl-type;
base "acl:ipv4-acl-type"; base acl:ipv4-acl-type;
if-feature "mixed-eth-ipv4"; if-feature "mixed-eth-ipv4";
description description
"An ACL that contains a mix of entries that match "An ACL that contains a mix of entries that match
on fields in Ethernet headers and in IPv4 headers. on fields in Ethernet headers and in IPv4 headers.
Matching on Layer 4 header fields may also exist in the Matching on Layer 4 header fields may also exist in the
list."; list.";
} }
identity mixed-eth-ipv6-acl-type { identity mixed-eth-ipv6-acl-type {
base "acl:eth-acl-type"; base acl:eth-acl-type;
base "acl:ipv6-acl-type"; base acl:ipv6-acl-type;
if-feature "mixed-eth-ipv6"; if-feature "mixed-eth-ipv6";
description description
"An ACL that contains a mix of entries that match on fields "An ACL that contains a mix of entries that match on fields
in Ethernet headers and in IPv6 headers. Matching in Ethernet headers and in IPv6 headers. Matching
on Layer 4 header fields may also exist in the list."; on Layer 4 header fields may also exist in the list.";
} }
identity mixed-eth-ipv4-ipv6-acl-type { identity mixed-eth-ipv4-ipv6-acl-type {
base "acl:eth-acl-type"; base acl:eth-acl-type;
base "acl:ipv4-acl-type"; base acl:ipv4-acl-type;
base "acl:ipv6-acl-type"; base acl:ipv6-acl-type;
if-feature "mixed-eth-ipv4-ipv6"; if-feature "mixed-eth-ipv4-ipv6";
description description
"An ACL that contains a mix of entries that "An ACL that contains a mix of entries that
match on fields in Ethernet headers, IPv4 headers, and IPv6 match on fields in Ethernet headers, IPv4 headers, and IPv6
headers. Matching on Layer 4 header fields may also exist headers. Matching on Layer 4 header fields may also exist
in the list."; in the list.";
} }
/* /*
* Features * Features
skipping to change at line 261 skipping to change at line 260
"Ethernet and IPv4 ACL combinations supported."; "Ethernet and IPv4 ACL combinations supported.";
} }
feature mixed-eth-ipv6 { feature mixed-eth-ipv6 {
if-feature "match-on-eth and match-on-ipv6"; if-feature "match-on-eth and match-on-ipv6";
description description
"Ethernet and IPv6 ACL combinations supported."; "Ethernet and IPv6 ACL combinations supported.";
} }
feature mixed-eth-ipv4-ipv6 { feature mixed-eth-ipv4-ipv6 {
if-feature "match-on-eth and match-on-ipv4 if-feature
and match-on-ipv6"; "match-on-eth and match-on-ipv4
and match-on-ipv6";
description description
"Ethernet, IPv4, and IPv6 ACL combinations supported."; "Ethernet, IPv4, and IPv6 ACL combinations supported.";
} }
/* /*
* Stats Features * Stats Features
*/ */
feature interface-stats { feature interface-stats {
description description
"ACL counters are available and reported only per interface."; "ACL counters are available and reported only per interface.";
} }
feature acl-aggregate-stats { feature acl-aggregate-stats {
description description
"ACL counters are aggregated over all interfaces and reported "ACL counters are aggregated over all interfaces and reported
only per ACL entry."; only per ACL entry.";
} }
skipping to change at line 408 skipping to change at line 410
container matches { container matches {
description description
"The rules in this set determine what fields will be "The rules in this set determine what fields will be
matched upon before any action is taken on them. matched upon before any action is taken on them.
The rules are selected based on the feature set The rules are selected based on the feature set
defined by the server and the acl-type defined. defined by the server and the acl-type defined.
If no matches are defined in a particular container, If no matches are defined in a particular container,
then any packet will match that container. If no then any packet will match that container. If no
matches are specified at all in an ACE, then any matches are specified at all in an ACE, then any
packet will match the ACE."; packet will match the ACE.";
choice l2 { choice l2 {
container eth { container eth {
when "derived-from-or-self(/acls/acl/type, " + when "derived-from-or-self(/acls/acl/type, "
"'acl:eth-acl-type')"; + "'acl:eth-acl-type')";
if-feature match-on-eth; if-feature "match-on-eth";
uses pf:acl-eth-header-fields; uses pf:acl-eth-header-fields;
description description
"Rule set that matches Ethernet headers."; "Rule set that matches Ethernet headers.";
} }
description description
"Match Layer 2 headers, for example, Ethernet "Match Layer 2 headers, for example, Ethernet
header fields."; header fields.";
} }
choice l3 { choice l3 {
container ipv4 { container ipv4 {
when "derived-from-or-self(/acls/acl/type, " + when "derived-from-or-self(/acls/acl/type, "
"'acl:ipv4-acl-type')"; + "'acl:ipv4-acl-type')";
if-feature match-on-ipv4; if-feature "match-on-ipv4";
uses pf:acl-ip-header-fields; uses pf:acl-ip-header-fields;
uses pf:acl-ipv4-header-fields; uses pf:acl-ipv4-header-fields;
description description
"Rule set that matches IPv4 headers."; "Rule set that matches IPv4 headers.";
} }
container ipv6 { container ipv6 {
when "derived-from-or-self(/acls/acl/type, " + when "derived-from-or-self(/acls/acl/type, "
"'acl:ipv6-acl-type')"; + "'acl:ipv6-acl-type')";
if-feature match-on-ipv6; if-feature "match-on-ipv6";
uses pf:acl-ip-header-fields; uses pf:acl-ip-header-fields;
uses pf:acl-ipv6-header-fields; uses pf:acl-ipv6-header-fields;
description description
"Rule set that matches IPv6 headers."; "Rule set that matches IPv6 headers.";
} }
description description
"Choice of either IPv4 or IPv6 headers"; "Choice of either IPv4 or IPv6 headers";
} }
choice l4 { choice l4 {
container tcp { container tcp {
if-feature match-on-tcp; if-feature "match-on-tcp";
uses pf:acl-tcp-header-fields; uses pf:acl-tcp-header-fields;
container source-port { container source-port {
choice source-port { choice source-port {
case range-or-operator { case range-or-operator {
uses pf:port-range-or-operator; uses pf:port-range-or-operator;
description description
"Source port definition from range or "Source port definition from range or
operator."; operator.";
} }
description description
skipping to change at line 488 skipping to change at line 486
range/operator or a choice to support future range/operator or a choice to support future
'case' statements, such as one enabling a 'case' statements, such as one enabling a
group of destination ports to be referenced."; group of destination ports to be referenced.";
} }
description description
"Destination port definition."; "Destination port definition.";
} }
description description
"Rule set that matches TCP headers."; "Rule set that matches TCP headers.";
} }
container udp { container udp {
if-feature match-on-udp; if-feature "match-on-udp";
uses pf:acl-udp-header-fields; uses pf:acl-udp-header-fields;
container source-port { container source-port {
choice source-port { choice source-port {
case range-or-operator { case range-or-operator {
uses pf:port-range-or-operator; uses pf:port-range-or-operator;
description description
"Source port definition from range or "Source port definition from range or
operator."; operator.";
} }
description description
skipping to change at line 529 skipping to change at line 526
range/operator or a choice to support future range/operator or a choice to support future
'case' statements, such as one enabling a 'case' statements, such as one enabling a
group of destination ports to be referenced."; group of destination ports to be referenced.";
} }
description description
"Destination port definition."; "Destination port definition.";
} }
description description
"Rule set that matches UDP headers."; "Rule set that matches UDP headers.";
} }
container icmp { container icmp {
if-feature match-on-icmp; if-feature "match-on-icmp";
uses pf:acl-icmp-header-fields; uses pf:acl-icmp-header-fields;
description description
"Rule set that matches ICMP headers."; "Rule set that matches ICMP headers.";
} }
description description
"Choice of TCP, UDP, or ICMP headers."; "Choice of TCP, UDP, or ICMP headers.";
} }
leaf egress-interface { leaf egress-interface {
type if:interface-ref; type if:interface-ref;
description description
"Egress interface. This should not be used if this ACL "Egress interface. This should not be used if this ACL
is attached as an egress ACL (or the value should is attached as an egress ACL (or the value should
equal the interface to which the ACL is attached)."; equal the interface to which the ACL is attached).";
} }
leaf ingress-interface { leaf ingress-interface {
type if:interface-ref; type if:interface-ref;
description description
"Ingress interface. This should not be used if this ACL "Ingress interface. This should not be used if this ACL
is attached as an ingress ACL (or the value should is attached as an ingress ACL (or the value should
equal the interface to which the ACL is attached)."; equal the interface to which the ACL is attached).";
} }
} }
container actions { container actions {
description description
"Definition of actions for this ace entry."; "Definition of actions for this ace entry.";
leaf forwarding { leaf forwarding {
type identityref { type identityref {
base forwarding-action; base forwarding-action;
} }
mandatory true; mandatory true;
description description
"Specifies the forwarding action per ace entry."; "Specifies the forwarding action per ace entry.";
skipping to change at line 568 skipping to change at line 561
description description
"Definition of actions for this ace entry."; "Definition of actions for this ace entry.";
leaf forwarding { leaf forwarding {
type identityref { type identityref {
base forwarding-action; base forwarding-action;
} }
mandatory true; mandatory true;
description description
"Specifies the forwarding action per ace entry."; "Specifies the forwarding action per ace entry.";
} }
leaf logging { leaf logging {
type identityref { type identityref {
base log-action; base log-action;
} }
default log-none; default "log-none";
description description
"Specifies the log action and destination for "Specifies the log action and destination for
matched packets. Default value is not to log the matched packets. Default value is not to log the
packet."; packet.";
} }
} }
container statistics { container statistics {
if-feature "acl-aggregate-stats"; if-feature "acl-aggregate-stats";
config false; config false;
description description
skipping to change at line 642 skipping to change at line 629
description description
"Name of the ace entry."; "Name of the ace entry.";
} }
uses acl-counters; uses acl-counters;
} }
} }
} }
} }
list interface { list interface {
if-feature interface-attachment; if-feature "interface-attachment";
key "interface-id"; key "interface-id";
description description
"List of interfaces on which ACLs are set."; "List of interfaces on which ACLs are set.";
leaf interface-id { leaf interface-id {
type if:interface-ref; type if:interface-ref;
description description
"Reference to the interface id list key."; "Reference to the interface id list key.";
} }
container ingress { container ingress {
uses interface-acl; uses interface-acl;
description description
"The ACLs applied to the ingress interface."; "The ACLs applied to the ingress interface.";
} }
container egress { container egress {
uses interface-acl; uses interface-acl;
description description
"The ACLs applied to the egress interface."; "The ACLs applied to the egress interface.";
} }
 End of changes. 29 change blocks. 
40 lines changed or deleted 27 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/