rfc8519v3.txt   rfc8519.txt 
Internet Engineering Task Force (IETF) M. Jethanandani Internet Engineering Task Force (IETF) M. Jethanandani
Request for Comments: 8519 VMware Request for Comments: 8519 VMware
Category: Standards Track S. Agarwal Category: Standards Track S. Agarwal
ISSN: 2070-1721 Cisco Systems, Inc. ISSN: 2070-1721 Cisco Systems, Inc.
L. Huang L. Huang
D. Blair D. Blair
February 2019 March 2019
YANG Data Model for Network Access Control Lists (ACLs) YANG Data Model for Network Access Control Lists (ACLs)
Abstract Abstract
This document defines a data model for Access Control Lists (ACLs). This document defines a data model for Access Control Lists (ACLs).
An ACL is a user-ordered set of rules used to configure the An ACL is a user-ordered set of rules used to configure the
forwarding behavior in a device. Each rule is used to find a match forwarding behavior in a device. Each rule is used to find a match
on a packet and define actions that will be performed on the packet. on a packet and define actions that will be performed on the packet.
skipping to change at page 2, line 16 skipping to change at page 2, line 16
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Definitions and Acronyms . . . . . . . . . . . . . . . . 3 1.1. Definitions and Acronyms . . . . . . . . . . . . . . . . 3
1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4
1.3. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 4 1.3. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 4
2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 4 2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 4
3. Understanding ACL's Filters and Actions . . . . . . . . . . . 4 3. Understanding ACL's Filters and Actions . . . . . . . . . . . 4
3.1. ACL Modules . . . . . . . . . . . . . . . . . . . . . . . 5 3.1. ACL Modules . . . . . . . . . . . . . . . . . . . . . . . 5
4. ACL YANG Models . . . . . . . . . . . . . . . . . . . . . . . 9 4. ACL YANG Models . . . . . . . . . . . . . . . . . . . . . . . 9
4.1. IETF Access Control List Module . . . . . . . . . . . . . 9 4.1. IETF Access Control List Module . . . . . . . . . . . . . 9
4.2. IETF Packet Fields Module . . . . . . . . . . . . . . . . 23 4.2. IETF Packet Fields Module . . . . . . . . . . . . . . . . 24
4.3. ACL Examples . . . . . . . . . . . . . . . . . . . . . . 36 4.3. ACL Examples . . . . . . . . . . . . . . . . . . . . . . 36
4.4. Port Range Usage and Other Examples . . . . . . . . . . . 37 4.4. Port Range Usage and Other Examples . . . . . . . . . . . 38
5. Security Considerations . . . . . . . . . . . . . . . . . . . 41 5. Security Considerations . . . . . . . . . . . . . . . . . . . 42
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 42 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 43
6.1. URI Registration . . . . . . . . . . . . . . . . . . . . 42 6.1. URI Registration . . . . . . . . . . . . . . . . . . . . 43
6.2. YANG Module Name Registration . . . . . . . . . . . . . . 42 6.2. YANG Module Name Registration . . . . . . . . . . . . . . 43
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 43 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 44
7.1. Normative References . . . . . . . . . . . . . . . . . . 43 7.1. Normative References . . . . . . . . . . . . . . . . . . 44
7.2. Informative References . . . . . . . . . . . . . . . . . 44 7.2. Informative References . . . . . . . . . . . . . . . . . 45
Appendix A. Extending ACL Model Examples . . . . . . . . . . . . 45 Appendix A. Extending ACL Model Examples . . . . . . . . . . . . 46
A.1. Example of a Company's Proprietary Module . . . . . . . . 45 A.1. Example of a Company's Proprietary Module . . . . . . . . 46
A.2. Linux nftables . . . . . . . . . . . . . . . . . . . . . 49 A.2. Linux nftables . . . . . . . . . . . . . . . . . . . . . 50
A.3. Ethertypes . . . . . . . . . . . . . . . . . . . . . . . 50 A.3. Ethertypes . . . . . . . . . . . . . . . . . . . . . . . 51
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 58 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 59
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 59 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 60
1. Introduction 1. Introduction
An Access Control List (ACL) is one of the basic elements used to An Access Control List (ACL) is one of the basic elements used to
configure device-forwarding behavior. It is used in many networking configure device-forwarding behavior. It is used in many networking
technologies such as Policy-Based Routing (PBR), firewalls, etc. technologies such as Policy-Based Routing (PBR), firewalls, etc.
An ACL is a user-ordered set of rules that is used to filter traffic An ACL is a user-ordered set of rules that is used to filter traffic
on a networking device. Each rule is represented by an Access on a networking device. Each rule is represented by an Access
Control Entry (ACE). Control Entry (ACE).
skipping to change at page 10, line 10 skipping to change at page 10, line 10
interface. interface.
Statistics in the ACL can be collected for an "ace" or for an Statistics in the ACL can be collected for an "ace" or for an
"interface". The feature statements defined for statistics can be "interface". The feature statements defined for statistics can be
used to determine whether statistics are being collected per "ace" or used to determine whether statistics are being collected per "ace" or
per "interface". per "interface".
This module imports definitions from "Common YANG Data Types" This module imports definitions from "Common YANG Data Types"
[RFC6991] and "A YANG Data Model for Interface Management" [RFC8343]. [RFC6991] and "A YANG Data Model for Interface Management" [RFC8343].
<CODE BEGINS> file "ietf-access-control-list@2019-01-28.yang" <CODE BEGINS> file "ietf-access-control-list@2019-03-04.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.";
skipping to change at page 11, line 18 skipping to change at page 11, line 22
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD to the license terms contained in, the Simplified BSD
License set forth in Section 4.c of the IETF Trust's Legal License set forth in Section 4.c of the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 8519; see This version of this YANG module is part of RFC 8519; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
revision 2019-01-28 { revision 2019-03-04 {
description description
"Initial version."; "Initial version.";
reference reference
"RFC 8519: YANG Data Model for Network Access Control "RFC 8519: YANG Data Model for Network Access Control
Lists (ACLs)."; Lists (ACLs).";
} }
/* /*
* Identities * Identities
*/ */
skipping to change at page 24, line 20 skipping to change at page 24, line 33
[RFC6991] and references "Internet Protocol" [RFC0791], "Internet [RFC6991] and references "Internet Protocol" [RFC0791], "Internet
Control Message Protocol" [RFC0792], "Transmission Control Protocol" Control Message Protocol" [RFC0792], "Transmission Control Protocol"
[RFC0793], "Definition of the Differentiated Services Field (DS [RFC0793], "Definition of the Differentiated Services Field (DS
Field) in the IPv4 and IPv6 Headers" [RFC2474], "The Addition of Field) in the IPv4 and IPv6 Headers" [RFC2474], "The Addition of
Explicit Congestion Notification (ECN) to IP" [RFC3168], "IPv6 Scoped Explicit Congestion Notification (ECN) to IP" [RFC3168], "IPv6 Scoped
Address Architecture" [RFC4007], "IP Version 6 Addressing Address Architecture" [RFC4007], "IP Version 6 Addressing
Architecture" [RFC4291], "A Recommendation for IPv6 Address Text Architecture" [RFC4291], "A Recommendation for IPv6 Address Text
Representation" [RFC5952], and "Internet Protocol, Version 6 (IPv6) Representation" [RFC5952], and "Internet Protocol, Version 6 (IPv6)
Specification" [RFC8200]. Specification" [RFC8200].
<CODE BEGINS> file "ietf-packet-fields@2019-01-28.yang" <CODE BEGINS> file "ietf-packet-fields@2019-03-04.yang"
module ietf-packet-fields { module ietf-packet-fields {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-packet-fields"; namespace "urn:ietf:params:xml:ns:yang:ietf-packet-fields";
prefix packet-fields; prefix packet-fields;
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
reference reference
"RFC 6991 - Common YANG Data Types."; "RFC 6991 - Common YANG Data Types.";
skipping to change at page 25, line 30 skipping to change at page 25, line 46
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD to the license terms contained in, the Simplified BSD
License set forth in Section 4.c of the IETF Trust's Legal License set forth in Section 4.c of the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 8519; see This version of this YANG module is part of RFC 8519; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
revision 2019-01-28 { revision 2019-03-04 {
description description
"Initial version."; "Initial version.";
reference reference
"RFC 8519: YANG Data Model for Network Access Control "RFC 8519: YANG Data Model for Network Access Control
Lists (ACLs)."; Lists (ACLs).";
} }
/* /*
* Typedefs * Typedefs
*/ */
typedef operator { typedef operator {
type enumeration { type enumeration {
enum lte { enum lte {
description description
skipping to change at page 45, line 51 skipping to change at page 46, line 51
The "example-newco-acl" module is an example of a company's The "example-newco-acl" module is an example of a company's
proprietary model that augments the "ietf-acl" module. It shows how proprietary model that augments the "ietf-acl" module. It shows how
to use 'augment' with an XML Path Language (XPath) expression to add to use 'augment' with an XML Path Language (XPath) expression to add
additional match criteria, actions, and default actions for when no additional match criteria, actions, and default actions for when no
ACE matches are found. All these are company proprietary extensions ACE matches are found. All these are company proprietary extensions
or system feature extensions. "example-newco-acl" is just an or system feature extensions. "example-newco-acl" is just an
example, and it is expected that vendors will create their own example, and it is expected that vendors will create their own
proprietary models. proprietary models.
module example-newco-acl { module example-newco-acl {
yang-version 1.1; yang-version 1.1;
namespace "http://example.com/ns/example-newco-acl"; namespace "http://example.com/ns/example-newco-acl";
prefix example-newco-acl; prefix example-newco-acl;
import ietf-access-control-list { import ietf-access-control-list {
prefix acl; prefix acl;
} }
organization organization
"Newco model group."; "Newco model group.";
contact contact
"abc@newco.com"; "abc@newco.com";
description description
"This YANG module augments the IETF ACL YANG module."; "This YANG module augments the IETF ACL YANG module.";
revision 2019-01-28 { revision 2019-03-04 {
description description
"Creating NewCo proprietary extensions to the ietf-acl "Creating NewCo proprietary extensions to the ietf-acl
model."; model.";
reference reference
"RFC 8519: YANG Data Model for Network Access Control "RFC 8519: YANG Data Model for Network Access Control
Lists (ACLs)."; Lists (ACLs).";
} }
augment "/acl:acls/acl:acl/" augment "/acl:acls/acl:acl/"
+ "acl:aces/acl:ace/" + "acl:aces/acl:ace/"
+ "acl:matches" { + "acl:matches" {
description description
"Newco proprietary simple filter matches."; "Newco proprietary simple filter matches.";
skipping to change at page 50, line 24 skipping to change at page 51, line 24
in this document and Linux nftables. in this document and Linux nftables.
A.3. Ethertypes A.3. Ethertypes
The ACL module is dependent on the definition of Ethertypes. IEEE The ACL module is dependent on the definition of Ethertypes. IEEE
owns the allocation of those Ethertypes. This model is being owns the allocation of those Ethertypes. This model is being
included here to enable the definition of those types till such time included here to enable the definition of those types till such time
that IEEE takes up the task of publication of the model that defines that IEEE takes up the task of publication of the model that defines
those Ethertypes. At that time, this model can be deprecated. those Ethertypes. At that time, this model can be deprecated.
<CODE BEGINS> file "ietf-ethertypes@2019-01-28.yang" <CODE BEGINS> file "ietf-ethertypes@2019-03-04.yang"
module ietf-ethertypes { module ietf-ethertypes {
namespace "urn:ietf:params:xml:ns:yang:ietf-ethertypes"; namespace "urn:ietf:params:xml:ns:yang:ietf-ethertypes";
prefix ethertypes; prefix ethertypes;
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/>
skipping to change at page 51, line 15 skipping to change at page 52, line 15
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD to the license terms contained in, the Simplified BSD
License set forth in Section 4.c of the IETF Trust's Legal License set forth in Section 4.c of the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 8519; see This version of this YANG module is part of RFC 8519; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
revision 2019-01-28 { revision 2019-03-04 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC 8519: YANG Data Model for Network Access Control "RFC 8519: YANG Data Model for Network Access Control
Lists (ACLs)."; Lists (ACLs).";
} }
typedef ethertype { typedef ethertype {
type union { type union {
type uint16; type uint16;
 End of changes. 15 change blocks. 
23 lines changed or deleted 28 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/