rfc9348.original | rfc9348.txt | |||
---|---|---|---|---|
Network Working Group D. Fedyk | Internet Engineering Task Force (IETF) D. Fedyk | |||
Internet-Draft C. Hopps | Request for Comments: 9348 C. Hopps | |||
Intended status: Standards Track LabN Consulting, L.L.C. | Category: Standards Track LabN Consulting, L.L.C. | |||
Expires: 26 March 2023 22 September 2022 | ISSN: 2070-1721 January 2023 | |||
A YANG Data Model for IP Traffic Flow Security | A YANG Data Model for IP Traffic Flow Security | |||
draft-ietf-ipsecme-yang-iptfs-11 | ||||
Abstract | Abstract | |||
This document describes a YANG module for the management of IP | This document describes a YANG module for the management of IP | |||
Traffic Flow Security additions to IKEv2 and IPsec. | Traffic Flow Security (IP-TFS) additions to Internet Key Exchange | |||
Protocol version 2 (IKEv2) and IPsec. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 26 March 2023. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9348. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2023 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Overview | |||
3. YANG Management . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. YANG Management | |||
3.1. YANG Tree . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3.1. YANG Tree | |||
3.2. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 7 | 3.2. YANG Module | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | 4. IANA Considerations | |||
4.1. Updates to the IETF XML Registry . . . . . . . . . . . . 19 | 4.1. Updates to the IETF XML Registry | |||
4.2. Updates to the YANG Module Names Registry . . . . . . . . 19 | 4.2. Updates to the YANG Module Names Registry | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 20 | 5. Security Considerations | |||
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 21 | 6. References | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 | 6.1. Normative References | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 21 | 6.2. Informative References | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 21 | Appendix A. Examples | |||
Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 22 | A.1. Example XML Configuration | |||
A.1. Example XML Configuration . . . . . . . . . . . . . . . . 22 | A.2. Example XML Operational Data | |||
A.2. Example XML Operational Data . . . . . . . . . . . . . . 23 | A.3. Example JSON Configuration | |||
A.3. Example JSON Configuration . . . . . . . . . . . . . . . 24 | A.4. Example JSON Operational Data | |||
A.4. Example JSON Operational Data . . . . . . . . . . . . . . 26 | A.5. Example JSON Operational Statistics | |||
A.5. Example JSON Operational Statistics . . . . . . . . . . . 27 | Acknowledgements | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28 | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
This document defines a YANG module [RFC7950] for the management of | This document defines a YANG module [RFC7950] for the management of | |||
the IP Traffic Flow Security (IP-TFS) extensions as defined in | the IP Traffic Flow Security (IP-TFS) extensions defined in | |||
[I-D.ietf-ipsecme-iptfs]. IP-TFS provides enhancements to an IPsec | [RFC9347]. IP-TFS provides enhancements to an IPsec tunnel Security | |||
tunnel Security Association to provide improved traffic | Association (SA) to provide improved traffic confidentiality. | |||
confidentiality. Traffic confidentiality reduces the ability of | Traffic confidentiality reduces the ability of traffic analysis to | |||
traffic analysis to determine identity and correlate observable | determine identity and correlate observable traffic patterns. IP-TFS | |||
traffic patterns. IP-TFS offers efficiency when aggregating traffic | offers efficiency when aggregating traffic in fixed-size IPsec tunnel | |||
in fixed size IPsec tunnel packets. | packets. | |||
The YANG data model in this document conforms to the Network | The YANG data model in this document conforms to the Network | |||
Management Datastore Architecture (NMDA) defined in [RFC8342]. | Management Datastore Architecture (NMDA) defined in [RFC8342]. | |||
The published YANG modules for IPsec are defined in [RFC9061]. This | The published YANG modules for IPsec are defined in [RFC9061]. This | |||
document uses these models as a general IPsec model that is augmented | document uses these models as a general IPsec model that is augmented | |||
for IP-TFS. The models in [RFC9061] provide for both an IKE and an | for IP-TFS. The models in [RFC9061] provide for both an IKE and an | |||
IKELESS model. | IKE-less model. | |||
2. Overview | 2. Overview | |||
This document defines configuration and operational parameters of IP | This document defines configuration and operational parameters of IP | |||
traffic flow security (IP-TFS). IP-TFS, defined in | Traffic Flow Security (IP-TFS). IP-TFS, defined in [RFC9347], | |||
[I-D.ietf-ipsecme-iptfs], defines a security association for tunnel | defines a security association for tunnel mode IPsec with | |||
mode IPsec with characteristics that improve traffic confidentiality | characteristics that improve traffic confidentiality and reduce | |||
and reduce bandwidth efficiency loss. These documents assume | bandwidth efficiency loss. These documents assume familiarity with | |||
familiarity with IP security concepts described in [RFC4301]. | the IPsec concepts described in [RFC4301]. | |||
IP-TFS uses tunnel mode to improve confidentiality by hiding inner | IP-TFS uses tunnel mode to improve confidentiality by hiding inner | |||
packet identifiable information, packet size and packet timing. IP- | packet identifiable information, packet size, and packet timing. IP- | |||
TFS provides a general capability allowing aggregation of multiple | TFS provides a general capability allowing aggregation of multiple | |||
packets in uniform size outer tunnel IPsec packets. It maintains the | packets in uniform-size outer tunnel IPsec packets. It maintains the | |||
outer packet size by utilizing combinations of aggregating, padding | outer packet size by utilizing combinations of aggregating, padding, | |||
and fragmenting inner packets to fill out the IPsec outer tunnel | and fragmenting inner packets to fill out the IPsec outer tunnel | |||
packet. Zero byte padding is used to fill the packet when no data is | packet. Padding is used to fill the packet when no data is available | |||
available to send. | to send. | |||
This document specifies an extensible configuration model for IP-TFS. | This document specifies an extensible configuration model for IP-TFS. | |||
This version utilizes the capabilities of IP-TFS to configure fixed | This version utilizes the capabilities of IP-TFS to configure fixed- | |||
size IP-TFS Packets that are transmitted at a constant rate. This | size IP-TFS packets that are transmitted at a constant rate. This | |||
model is structured to allow for different types of operation through | model is structured to allow for different types of operation through | |||
future augmentation. | future augmentation. | |||
The IP-TFS YANG module augments IPsec YANG model from [RFC9061]. IP- | The IP-TFS YANG module augments the IPsec YANG module from [RFC9061]. | |||
TFS makes use of IPsec tunnel mode and adds a small number | IP-TFS makes use of IPsec tunnel mode and adds a small number of | |||
configuration items to tunnel mode IPsec. As defined in | configuration items to IPsec tunnel mode. As defined in [RFC9347], | |||
[I-D.ietf-ipsecme-iptfs], any SA configured to use IP-TFS supports | any SA configured to use IP-TFS supports only IP-TFS packets, i.e., | |||
only IP-TFS packets i.e. no mixed IPsec modes. | no mixed IPsec modes. | |||
The behavior for IP-TFS is controlled by the source. The self- | The behavior for IP-TFS is controlled by the source. The self- | |||
describing format of an IP-TFS packets allows a sending side to | describing format of an IP-TFS packet allows a sending side to adjust | |||
adjust the packet-size and timing independently from any receiver. | the packet size and timing independently from any receiver. Both | |||
Both directions are also independent, e.g. IP-TFS may be run only in | directions are also independent, e.g., IP-TFS may be run only in one | |||
one direction. This means that counters, which are created here for | direction. This means that counters, which are created here for both | |||
both directions may be 0 or not updated in the case of an SA that | directions, may be 0 or not updated in the case of an SA that uses | |||
uses IP-TFS only in on direction. | IP-TFS only in on direction. | |||
Cases where IP-TFS statistics are active for one direction: | Cases where IP-TFS statistics are active for one direction: | |||
* SA one direction - IP-TFS enabled | * SA one direction - IP-TFS enabled | |||
* SA both directions - IP-TFS only enabled in one direction | * SA both directions - IP-TFS only enabled in one direction | |||
Case where IP-TFS statistics are for both directions: | Case where IP-TFS statistics are active for both directions: | |||
* SA both directions - IP-TFS enable for both directions | * SA both directions - IP-TFS enable for both directions | |||
The IP-TFS model support IP-TFS configuration and operational data. | ||||
This YANG module supports configuration of fixed size and fixed rate | The IP-TFS model supports IP-TFS configuration and operational data. | |||
packets, and elements that may be augmented to support future | ||||
configuration. The protocol specification [I-D.ietf-ipsecme-iptfs], | This YANG module supports configuration of fixed-size and fixed-rate | |||
goes beyond this simple fixed mode of operation by defining a general | packets, as well as elements that may be augmented to support future | |||
format for any type of scheme. In this document the outer IPsec | configuration. The protocol specification [RFC9347] goes beyond this | |||
packets can be sent with fixed or variable size (without padding). | simple, fixed mode of operation by defining a general format for any | |||
The configuration allows the fixed packet size to be determined by | type of scheme. In this document, the outer IPsec packets can be | |||
the path MTU. The fixed packet size can also be configured if a | sent with fixed or variable size (without padding). The | |||
value lower than the path MTU is desired. | configuration allows the fixed packet size to be determined by the | |||
path MTU. The fixed packet size can also be configured if a value | ||||
lower than the path MTU is desired. | ||||
Other configuration items include: | Other configuration items include: | |||
* Congestion Control. A congestion control setting to allow IP-TFS | Congestion Control: | |||
to reduce the packet rate when congestion is detected. | A congestion control setting to allow IP-TFS to reduce the packet | |||
rate when congestion is detected. | ||||
* Fixed Rate configuration. The IP-TFS tunnel rate can be | Fixed-Rate Configuration: | |||
configured taking into account either layer 2 overhead or layer 3 | The IP-TFS tunnel rate can be configured by taking into account | |||
overhead. Layer 3 overhead is the IP data rate and layer 2 | either layer 2 overhead or layer 3 overhead. Layer 3 overhead is | |||
overhead is the rate of bits on the link. The combination of | the IP data rate, and layer 2 overhead is the rate of bits on the | |||
packet size and rate determines the nominal maximum bandwidth and | link. The combination of packet size and rate determines the | |||
the transmission interval when fixed size packets are used. | nominal maximum bandwidth and the transmission interval when | |||
fixed-size packets are used. | ||||
* User packet Fragmentation Control. While fragmentation is | User Packet Fragmentation Control: | |||
recommended for improved efficiency, a configuration is provided | While fragmentation is recommended for improved efficiency, a | |||
if users wish to observe the effect no-fragmentation on their data | configuration is provided if users wish to observe the effect of | |||
flows. | no fragmentation on their data flows. | |||
The YANG operational data allows the readout of the configured | The YANG operational data allows the readout of the configured | |||
parameters as well as the per SA statistics and error counters for | parameters, as well as the per-SA statistics and error counters for | |||
IP-TFS. Per SA IPsec packet statistics are provided as a feature and | IP-TFS. Per-SA IPsec packet statistics are provided as a feature, | |||
per SA IP-TFS specific statistics as another feature. Both sets of | and per-SA IP-TFS-specific statistics are provided as another | |||
statistics augment the IPsec YANG models with counters that allow | feature. Both sets of statistics augment the IPsec YANG modules with | |||
observation of IP-TFS packet efficiency. | counters that allow observation of IP-TFS packet efficiency. | |||
[RFC9061] has a set of IPsec YANG management objects. IP-TFS YANG | IPsec YANG management objects are set in [RFC9061]. IP-TFS YANG | |||
augments the IKE and the IKELESS models. In these models the | augments the IKE and the IKE-less models. In these models, the | |||
Security Policy database entry and Security Association entry for an | Security Policy database entry and Security Association entry for an | |||
IPsec Tunnel can be augmented with IP-TFS. In addition, this model | IPsec tunnel can be augmented with IP-TFS. In addition, this model | |||
uses YANG types defined in [RFC6991]. | uses YANG types defined in [RFC6991]. | |||
3. YANG Management | 3. YANG Management | |||
3.1. YANG Tree | 3.1. YANG Tree | |||
The following is the YANG tree diagram ([RFC8340]) for the IP-TFS | The following is the YANG tree diagram [RFC8340] for the IP-TFS | |||
extensions. | extensions. | |||
module: ietf-ipsec-iptfs | module: ietf-ipsec-iptfs | |||
augment /nsfike:ipsec-ike/nsfike:conn-entry/nsfike:spd | augment /nsfike:ipsec-ike/nsfike:conn-entry/nsfike:spd | |||
/nsfike:spd-entry/nsfike:ipsec-policy-config | /nsfike:spd-entry/nsfike:ipsec-policy-config | |||
/nsfike:processing-info/nsfike:ipsec-sa-cfg: | /nsfike:processing-info/nsfike:ipsec-sa-cfg: | |||
+--rw traffic-flow-security | +--rw traffic-flow-security | |||
+--rw congestion-control? boolean | +--rw congestion-control? boolean | |||
+--rw packet-size | +--rw packet-size | |||
| +--rw use-path-mtu-discovery? boolean | | +--rw use-path-mtu-discovery? boolean | |||
| +--rw outer-packet-size? uint16 | | +--rw outer-packet-size? uint16 | |||
+--rw (tunnel-rate)? | +--rw (tunnel-rate)? | |||
| +--:(l2-fixed-rate) | | +--:(l2-fixed-rate) | |||
skipping to change at page 7, line 33 ¶ | skipping to change at line 308 ¶ | |||
+--ro rx-all-pad-pkts? yang:counter64 | +--ro rx-all-pad-pkts? yang:counter64 | |||
+--ro rx-all-pad-octets? yang:counter64 | +--ro rx-all-pad-octets? yang:counter64 | |||
+--ro rx-extra-pad-pkts? yang:counter64 | +--ro rx-extra-pad-pkts? yang:counter64 | |||
+--ro rx-extra-pad-octets? yang:counter64 | +--ro rx-extra-pad-octets? yang:counter64 | |||
+--ro rx-errored-pkts? yang:counter64 | +--ro rx-errored-pkts? yang:counter64 | |||
+--ro rx-missed-pkts? yang:counter64 | +--ro rx-missed-pkts? yang:counter64 | |||
3.2. YANG Module | 3.2. YANG Module | |||
The following is the YANG module for managing the IP-TFS extensions. | The following is the YANG module for managing the IP-TFS extensions. | |||
The model contains references to [I-D.ietf-ipsecme-iptfs] and | The model contains references to [RFC9347] and [RFC5348]. | |||
[RFC5348]. | ||||
<CODE BEGINS> file "ietf-ipsec-iptfs@2022-09-22.yang" | <CODE BEGINS> file "ietf-ipsec-iptfs@2022-12-16.yang" | |||
module ietf-ipsec-iptfs { | module ietf-ipsec-iptfs { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-ipsec-iptfs"; | namespace "urn:ietf:params:xml:ns:yang:ietf-ipsec-iptfs"; | |||
prefix iptfs; | prefix iptfs; | |||
import ietf-i2nsf-ike { | import ietf-i2nsf-ike { | |||
prefix nsfike; | prefix nsfike; | |||
reference | reference | |||
"RFC 9061 A YANG Data Model for IPsec Flow Protection Based on | "RFC 9061: A YANG Data Model for IPsec Flow Protection Based on | |||
Software-Defined Networking (SDN) Section 5.2"; | Software-Defined Networking (SDN), Section 5.2"; | |||
} | } | |||
import ietf-i2nsf-ikeless { | import ietf-i2nsf-ikeless { | |||
prefix nsfikels; | prefix nsfikels; | |||
reference | reference | |||
"RFC 9061 A YANG Data Model for IPsec Flow Protection Based on | "RFC 9061: A YANG Data Model for IPsec Flow Protection Based on | |||
Software-Defined Networking (SDN) Section 5.3"; | Software-Defined Networking (SDN), Section 5.3"; | |||
} | } | |||
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"; | |||
} | } | |||
organization | organization | |||
"IETF IPSECME Working Group (IPSECME)"; | "IETF IPSECME Working Group (IPSECME)"; | |||
contact | contact | |||
"WG Web: <https://datatracker.ietf.org/wg/ipsecme/> | "WG Web: <https://datatracker.ietf.org/wg/ipsecme/> | |||
WG List: <mailto:ipsecme@ietf.org> | WG List: <mailto:ipsecme@ietf.org> | |||
Author: Don Fedyk | Author: Don Fedyk | |||
<mailto:dfedyk@labn.net> | <mailto:dfedyk@labn.net> | |||
Author: Christian Hopps | Author: Christian Hopps | |||
<mailto:chopps@chopps.org>"; | <mailto:chopps@chopps.org>"; | |||
// RFC Ed.: replace XXXX with actual RFC number and | ||||
// remove this note. | ||||
description | description | |||
"This module defines the configuration and operational state for | "This module defines the configuration and operational state for | |||
managing the IP Traffic Flow Security functionality [RFC XXXX]. | managing the IP Traffic Flow Security functionality (RFC 9348). | |||
Copyright (c) 2022 IETF Trust and the persons identified as | Copyright (c) 2023 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
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 Revised BSD License | to the license terms contained in, the Revised BSD License | |||
set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of RFC XXXX; see | This version of this YANG module is part of RFC 9348; see | |||
the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
// RFC Ed.: replace XXXX with actual RFC number and remove | revision 2022-12-16 { | |||
// this note | ||||
// replace '2016-03-20' with the module publication date | ||||
// the format is (2022-09-22) | ||||
revision 2022-09-22 { | ||||
description | description | |||
"Initial Revision"; | "Initial revision"; | |||
reference | reference | |||
"RFC XXXX: IP Traffic Flow Security YANG Module"; | "RFC 9348: A YANG Data Model for IP Traffic Flow Security"; | |||
} | } | |||
feature ipsec-stats { | feature ipsec-stats { | |||
description | description | |||
"This feature indicates the device supports | "This feature indicates the device supports | |||
per SA IPsec statistics"; | per-SA IPsec statistics."; | |||
} | } | |||
feature iptfs-stats { | feature iptfs-stats { | |||
description | description | |||
"This feature indicates the device supports | "This feature indicates the device supports | |||
per SA IP Traffic Flow Security statistics"; | per-SA IP Traffic Flow Security statistics."; | |||
} | } | |||
/*--------------------*/ | /*--------------------*/ | |||
/* groupings */ | /* groupings */ | |||
/*--------------------*/ | /*--------------------*/ | |||
grouping ipsec-tx-stat-grouping { | grouping ipsec-tx-stat-grouping { | |||
description | description | |||
"IPsec outbound statistics"; | "IPsec outbound statistics"; | |||
leaf tx-pkts { | leaf tx-pkts { | |||
skipping to change at page 10, line 29 ¶ | skipping to change at line 439 ¶ | |||
} | } | |||
} | } | |||
grouping iptfs-inner-tx-stat-grouping { | grouping iptfs-inner-tx-stat-grouping { | |||
description | description | |||
"IP-TFS outbound inner packet statistics"; | "IP-TFS outbound inner packet statistics"; | |||
leaf tx-pkts { | leaf tx-pkts { | |||
type yang:counter64; | type yang:counter64; | |||
config false; | config false; | |||
description | description | |||
"Total number of IP-TFS inner packets sent. This | "Total number of IP-TFS inner packets sent. This | |||
count is whole packets only. A fragmented packet | count is whole packets only. A fragmented packet | |||
counts as one packet"; | counts as one packet."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS)"; | ||||
} | } | |||
leaf tx-octets { | leaf tx-octets { | |||
type yang:counter64; | type yang:counter64; | |||
config false; | config false; | |||
description | description | |||
"Total number of IP-TFS inner octets sent. This is | "Total number of IP-TFS inner octets sent. This is | |||
inner packet octets only. Does not count padding."; | inner packet octets only. It does not count padding."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS)"; | ||||
} | } | |||
} | } | |||
grouping iptfs-outer-tx-stat-grouping { | grouping iptfs-outer-tx-stat-grouping { | |||
description | description | |||
"IP-TFS outbound inner packet statistics"; | "IP-TFS outbound inner packet statistics"; | |||
leaf tx-all-pad-pkts { | leaf tx-all-pad-pkts { | |||
type yang:counter64; | type yang:counter64; | |||
config false; | config false; | |||
description | description | |||
"Total number of transmitted IP-TFS packets that | "Total number of transmitted IP-TFS packets that | |||
were all padding with no inner packet data."; | were all padding with no inner packet data."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs section 2.2.3"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS), Section 2.2.3"; | ||||
} | } | |||
leaf tx-all-pad-octets { | leaf tx-all-pad-octets { | |||
type yang:counter64; | type yang:counter64; | |||
config false; | config false; | |||
description | description | |||
"Total number transmitted octets of padding added to | "Total number transmitted octets of padding added to | |||
IP-TFS packets with no inner packet data."; | IP-TFS packets with no inner packet data."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs section 2.2.3"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS), Section 2.2.3"; | ||||
} | } | |||
leaf tx-extra-pad-pkts { | leaf tx-extra-pad-pkts { | |||
type yang:counter64; | type yang:counter64; | |||
config false; | config false; | |||
description | description | |||
"Total number of transmitted outer IP-TFS packets | "Total number of transmitted outer IP-TFS packets | |||
that included some padding."; | that included some padding."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs section 2.2.3.1"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS), Section 2.2.3.1"; | ||||
} | } | |||
leaf tx-extra-pad-octets { | leaf tx-extra-pad-octets { | |||
type yang:counter64; | type yang:counter64; | |||
config false; | config false; | |||
description | description | |||
"Total number of transmitted octets of padding added | "Total number of transmitted octets of padding added | |||
to outer IP-TFS packets with data."; | to outer IP-TFS packets with data."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs section 2.2.3.1"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS), Section 2.2.3.1"; | ||||
} | } | |||
} | } | |||
grouping iptfs-inner-rx-stat-grouping { | grouping iptfs-inner-rx-stat-grouping { | |||
description | description | |||
"IP-TFS inner packet inbound statistics"; | "IP-TFS inner packet inbound statistics"; | |||
leaf rx-pkts { | leaf rx-pkts { | |||
type yang:counter64; | type yang:counter64; | |||
config false; | config false; | |||
description | description | |||
"Total number of IP-TFS inner packets received."; | "Total number of IP-TFS inner packets received."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs section 2.2"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS), Section 2.2"; | ||||
} | } | |||
leaf rx-octets { | leaf rx-octets { | |||
type yang:counter64; | type yang:counter64; | |||
config false; | config false; | |||
description | description | |||
"Total number of IP-TFS inner octets received. Does | "Total number of IP-TFS inner octets received. It does | |||
not include padding or overhead"; | not include padding or overhead."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs section 2.2"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS), Section 2.2"; | ||||
} | } | |||
leaf rx-incomplete-pkts { | leaf rx-incomplete-pkts { | |||
type yang:counter64; | type yang:counter64; | |||
config false; | config false; | |||
description | description | |||
"Total number of IP-TFS inner packets that were | "Total number of IP-TFS inner packets that were | |||
incomplete. Usually this is due to fragments not | incomplete. Usually this is due to fragments that are | |||
received. Also, this may be due to misordering or | not received. Also, this may be due to misordering or | |||
errors in received outer packets."; | errors in received outer packets."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS)"; | ||||
} | } | |||
} | } | |||
grouping iptfs-outer-rx-stat-grouping { | grouping iptfs-outer-rx-stat-grouping { | |||
description | description | |||
"IP-TFS outer packet inbound statistics"; | "IP-TFS outer packet inbound statistics"; | |||
leaf rx-all-pad-pkts { | leaf rx-all-pad-pkts { | |||
type yang:counter64; | type yang:counter64; | |||
config false; | config false; | |||
description | description | |||
"Total number of received IP-TFS packets that were | "Total number of received IP-TFS packets that were | |||
all padding with no inner packet data."; | all padding with no inner packet data."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs section 2.2.3"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS), Section 2.2.3"; | ||||
} | } | |||
leaf rx-all-pad-octets { | leaf rx-all-pad-octets { | |||
type yang:counter64; | type yang:counter64; | |||
config false; | config false; | |||
description | description | |||
"Total number received octets of padding added to | "Total number of received octets of padding added to | |||
IP-TFS packets with no inner packet data."; | IP-TFS packets with no inner packet data."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs section 2.2.3"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS), Section 2.2.3"; | ||||
} | } | |||
leaf rx-extra-pad-pkts { | leaf rx-extra-pad-pkts { | |||
type yang:counter64; | type yang:counter64; | |||
config false; | config false; | |||
description | description | |||
"Total number of received outer IP-TFS packets that | "Total number of received outer IP-TFS packets that | |||
included some padding."; | included some padding."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs section 2.2.3.1"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS), Section 2.2.3.1"; | ||||
} | } | |||
leaf rx-extra-pad-octets { | leaf rx-extra-pad-octets { | |||
type yang:counter64; | type yang:counter64; | |||
config false; | config false; | |||
description | description | |||
"Total number of received octets of padding added to | "Total number of received octets of padding added to | |||
outer IP-TFS packets with data."; | outer IP-TFS packets with data."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs section 2.2.3.1"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS), Section 2.2.3.1"; | ||||
} | } | |||
leaf rx-errored-pkts { | leaf rx-errored-pkts { | |||
type yang:counter64; | type yang:counter64; | |||
config false; | config false; | |||
description | description | |||
"Total number of IP-TFS outer packets dropped due to | "Total number of IP-TFS outer packets dropped due to | |||
errors."; | errors."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS)"; | ||||
} | } | |||
leaf rx-missed-pkts { | leaf rx-missed-pkts { | |||
type yang:counter64; | type yang:counter64; | |||
config false; | config false; | |||
description | description | |||
"Total number of IP-TFS outer packets missing | "Total number of IP-TFS outer packets missing, | |||
indicated by missing sequence number."; | indicated by a missing sequence number."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS)"; | ||||
} | } | |||
} | } | |||
grouping iptfs-config { | grouping iptfs-config { | |||
description | description | |||
"This is the grouping for iptfs configuration"; | "This is the grouping for IP-TFS configuration."; | |||
container traffic-flow-security { | container traffic-flow-security { | |||
description | description | |||
"Configure the IPSec TFS in Security | "Configure the IPsec TFS in the Security | |||
Association Database (SAD)"; | Association Database (SAD)."; | |||
leaf congestion-control { | leaf congestion-control { | |||
type boolean; | type boolean; | |||
default "true"; | default "true"; | |||
description | description | |||
"When set to true, the default, this enables the | "When set to true, the default, this enables the | |||
congestion control on-the-wire exchange of data that is | congestion control on-the-wire exchange of data that is | |||
required by congestion control algorithms as defined by | required by congestion control algorithms, as defined by | |||
RFC 5348. When set to false, IP-TFS sends fixed-sized | RFC 5348. When set to false, IP-TFS sends fixed-size | |||
packets over an IP-TFS tunnel at a constant rate."; | packets over an IP-TFS tunnel at a constant rate."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs section 2.5.2, RFC 5348"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS), Section 2.4.2; | ||||
RFC 5348: TCP Friendly Rate Control (TFRC): Protocol | ||||
Specification"; | ||||
} | } | |||
container packet-size { | container packet-size { | |||
description | description | |||
"Packet size is either auto-discovered or manually | "Packet size is either auto-discovered or manually | |||
configured."; | configured."; | |||
leaf use-path-mtu-discovery { | leaf use-path-mtu-discovery { | |||
type boolean; | type boolean; | |||
default "true"; | default "true"; | |||
description | description | |||
"Utilize path mtu discovery to determine maximum | "Utilize path MTU discovery to determine maximum | |||
IP-TFS packet size. If the packet size is explicitly | IP-TFS packet size. If the packet size is explicitly | |||
configured, then it will only be adjusted downward if | configured, then it will only be adjusted downward if | |||
use-path-mtu-discovery is set."; | use-path-mtu-discovery is set."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs section 4.2"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS), Section 4.2"; | ||||
} | } | |||
leaf outer-packet-size { | leaf outer-packet-size { | |||
type uint16; | type uint16; | |||
units bytes; | units "bytes"; | |||
description | description | |||
"On transmission, the size of the outer encapsulating | "On transmission, the size of the outer encapsulating | |||
tunnel packet (i.e., the IP packet containing the ESP | tunnel packet (i.e., the IP packet containing | |||
payload)."; | Encapsulating Security Payload (ESP))."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs section 4.2"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS), Section 4.2"; | ||||
} | } | |||
} | } | |||
choice tunnel-rate { | choice tunnel-rate { | |||
description | description | |||
"TFS bit rate may be specified at layer 2 wire | "The TFS bit rate may be specified at layer 2 wire | |||
rate or layer 3 packet rate"; | rate or layer 3 packet rate."; | |||
leaf l2-fixed-rate { | leaf l2-fixed-rate { | |||
type yang:gauge64; | type yang:gauge64; | |||
units "bits/second"; | units "bits/second"; | |||
description | description | |||
"On transmission, target bandwidth/bit rate in | "On transmission, target bandwidth/bit rate in | |||
bits/second for iptfs tunnel. This fixed rate is the | bits/second for IP-TFS tunnel. This fixed rate is the | |||
nominal timing for the fixed size packet. If | nominal timing for the fixed-size packet. If | |||
congestion control is enabled the rate may be | congestion control is enabled, the rate may be | |||
adjusted down (or up if unset)."; | adjusted down (or up if unset)."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs section 4.1"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS), Section 4.1"; | ||||
} | } | |||
leaf l3-fixed-rate { | leaf l3-fixed-rate { | |||
type yang:gauge64; | type yang:gauge64; | |||
units "bits/second"; | units "bits/second"; | |||
description | description | |||
"On transmission, target bandwidth/bit rate in | "On transmission, target bandwidth/bit rate in | |||
bits/second for iptfs tunnel. This fixed rate is the | bits/second for IP-TFS tunnel. This fixed rate is the | |||
nominal timing for the fixed size packet. If | nominal timing for the fixed-size packet. If | |||
congestion control is enabled the rate may be | congestion control is enabled, the rate may be | |||
adjusted down (or up if unset)."; | adjusted down (or up if unset)."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs section 4.1"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS), Section 4.1"; | ||||
} | } | |||
} | } | |||
leaf dont-fragment { | leaf dont-fragment { | |||
type boolean; | type boolean; | |||
default "false"; | default "false"; | |||
description | description | |||
"On transmission, disable packet fragmentation across | "On transmission, disable packet fragmentation across | |||
consecutive iptfs tunnel packets; inner packets larger | consecutive IP-TFS tunnel packets; inner packets larger | |||
than what can be transmitted in outer packets will be | than what can be transmitted in outer packets will be | |||
dropped."; | dropped."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs section 2.2.4 and 6.1.4"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS), Section 2.2.4 and | ||||
6.1.4"; | ||||
} | } | |||
leaf max-aggregation-time { | leaf max-aggregation-time { | |||
type decimal64 { | type decimal64 { | |||
fraction-digits 6; | fraction-digits 6; | |||
} | } | |||
units "milliseconds"; | units "milliseconds"; | |||
description | description | |||
"On transmission, maximum aggregation time is the | "On transmission, maximum aggregation time is the | |||
maximum length of time a received inner packet can be | maximum length of time a received inner packet can be | |||
held prior to transmission in the iptfs tunnel. Inner | held prior to transmission in the IP-TFS tunnel. Inner | |||
packets that would be held longer than this time, based | packets that would be held longer than this time, based | |||
on the current tunnel configuration will be dropped | on the current tunnel configuration, will be dropped | |||
rather than be queued for transmission. Maximum | rather than be queued for transmission. Maximum | |||
aggregation time is configurable in milliseconds or | aggregation time is configurable in milliseconds or | |||
fractional milliseconds down to 1 nanosecond."; | fractional milliseconds down to 1 nanosecond."; | |||
} | } | |||
leaf window-size { | leaf window-size { | |||
type uint16 { | type uint16 { | |||
range "0..65535"; | range "0..65535"; | |||
} | } | |||
description | description | |||
"On reception, the maximum number of out-of-order | "On reception, the maximum number of out-of-order | |||
packets that will be reordered by an iptfs receiver | packets that will be reordered by an IP-TFS receiver | |||
while performing the reordering operation. The value 0 | while performing the reordering operation. The value 0 | |||
disables any reordering."; | disables any reordering."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs section 2.2.3"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS), Section 2.2.3"; | ||||
} | } | |||
leaf send-immediately { | leaf send-immediately { | |||
type boolean; | type boolean; | |||
default "false"; | default "false"; | |||
description | description | |||
"On reception, send inner packets as soon as possible, do | "On reception, send inner packets as soon as possible; do | |||
not wait for lost or misordered outer packets. | not wait for lost or misordered outer packets. | |||
Selecting this option reduces the inner (user) packet | Selecting this option reduces the inner (user) packet | |||
delay but can amplify out-of-order delivery of the | delay but can amplify out-of-order delivery of the | |||
inner packet stream in the presence of packet | inner packet stream in the presence of packet | |||
aggregation and any reordering."; | aggregation and any reordering."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs section 2.5"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS), Section 2.5"; | ||||
} | } | |||
leaf lost-packet-timer-interval { | leaf lost-packet-timer-interval { | |||
type decimal64 { | type decimal64 { | |||
fraction-digits 6; | fraction-digits 6; | |||
} | } | |||
units "milliseconds"; | units "milliseconds"; | |||
description | description | |||
"On reception, this interval defines the length of time | "On reception, this interval defines the length of time | |||
an iptfs receiver will wait for a missing packet before | an IP-TFS receiver will wait for a missing packet before | |||
considering it lost. If not using send-immediately, | considering it lost. If not using send-immediately, | |||
then each lost packet will delay inner (user) packets | then each lost packet will delay inner (user) packets | |||
until this timer expires. Setting this value too low | until this timer expires. Setting this value too low | |||
can impact reordering and reassembly. The value is | can impact reordering and reassembly. The value is | |||
configurable in milliseconds or fractional milliseconds | configurable in milliseconds or fractional milliseconds | |||
down to 1 nanosecond."; | down to 1 nanosecond."; | |||
reference | reference | |||
"draft-ietf-ipsecme-iptfs section 2.2.3"; | "RFC 9347: Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for | ||||
IP Traffic Flow Security (IP-TFS), Section 2.2.3"; | ||||
} | } | |||
} | } | |||
} | } | |||
/* | /* | |||
* IP-TFS ike configuration | * IP-TFS ike configuration | |||
*/ | */ | |||
augment "/nsfike:ipsec-ike/nsfike:conn-entry/nsfike:spd/" | augment "/nsfike:ipsec-ike/nsfike:conn-entry/nsfike:spd/" | |||
+ "nsfike:spd-entry/" | + "nsfike:spd-entry/" | |||
skipping to change at page 17, line 46 ¶ | skipping to change at line 842 ¶ | |||
} | } | |||
} | } | |||
/* | /* | |||
* packet counters | * packet counters | |||
*/ | */ | |||
augment "/nsfike:ipsec-ike/nsfike:conn-entry/" | augment "/nsfike:ipsec-ike/nsfike:conn-entry/" | |||
+ "nsfike:child-sa-info" { | + "nsfike:child-sa-info" { | |||
description | description | |||
"Per SA Counters"; | "Per-SA counters"; | |||
container ipsec-stats { | container ipsec-stats { | |||
if-feature "ipsec-stats"; | if-feature "ipsec-stats"; | |||
config false; | config false; | |||
description | description | |||
"IPsec per SA packet counters. | "IPsec per-SA packet counters. | |||
tx = outbound, rx = inbound"; | tx = outbound, rx = inbound"; | |||
uses ipsec-tx-stat-grouping; | uses ipsec-tx-stat-grouping; | |||
uses ipsec-rx-stat-grouping; | uses ipsec-rx-stat-grouping; | |||
} | } | |||
container iptfs-inner-pkt-stats { | container iptfs-inner-pkt-stats { | |||
if-feature "iptfs-stats"; | if-feature "iptfs-stats"; | |||
config false; | config false; | |||
description | description | |||
"IPTFS per SA inner packet counters. | "IP-TFS per-SA inner packet counters. | |||
tx = outbound, rx = inbound"; | tx = outbound, rx = inbound"; | |||
uses iptfs-inner-tx-stat-grouping; | uses iptfs-inner-tx-stat-grouping; | |||
uses iptfs-inner-rx-stat-grouping; | uses iptfs-inner-rx-stat-grouping; | |||
} | } | |||
container iptfs-outer-pkt-stats { | container iptfs-outer-pkt-stats { | |||
if-feature "iptfs-stats"; | if-feature "iptfs-stats"; | |||
config false; | config false; | |||
description | description | |||
"IPTFS per SA outer packets counters. | "IP-TFS per-SA outer packets counters. | |||
tx = outbound, rx = inbound"; | tx = outbound, rx = inbound"; | |||
uses iptfs-outer-tx-stat-grouping; | uses iptfs-outer-tx-stat-grouping; | |||
uses iptfs-outer-rx-stat-grouping; | uses iptfs-outer-rx-stat-grouping; | |||
} | } | |||
} | } | |||
/* | /* | |||
* packet counters | * packet counters | |||
*/ | */ | |||
augment "/nsfikels:ipsec-ikeless/nsfikels:sad/" | augment "/nsfikels:ipsec-ikeless/nsfikels:sad/" | |||
+ "nsfikels:sad-entry" { | + "nsfikels:sad-entry" { | |||
description | description | |||
"Per SA Counters"; | "Per-SA counters"; | |||
container ipsec-stats { | container ipsec-stats { | |||
if-feature "ipsec-stats"; | if-feature "ipsec-stats"; | |||
config false; | config false; | |||
description | description | |||
"IPsec per SA packet counters. | "IPsec per-SA packet counters. | |||
tx = outbound, rx = inbound"; | tx = outbound, rx = inbound"; | |||
uses ipsec-tx-stat-grouping; | uses ipsec-tx-stat-grouping; | |||
uses ipsec-rx-stat-grouping; | uses ipsec-rx-stat-grouping; | |||
} | } | |||
container iptfs-inner-pkt-stats { | container iptfs-inner-pkt-stats { | |||
if-feature "iptfs-stats"; | if-feature "iptfs-stats"; | |||
config false; | config false; | |||
description | description | |||
"IPTFS per SA inner packet counters. | "IP-TFS per-SA inner packet counters. | |||
tx = outbound, rx = inbound"; | tx = outbound, rx = inbound"; | |||
uses iptfs-inner-tx-stat-grouping; | uses iptfs-inner-tx-stat-grouping; | |||
uses iptfs-inner-rx-stat-grouping; | uses iptfs-inner-rx-stat-grouping; | |||
} | } | |||
container iptfs-outer-pkt-stats { | container iptfs-outer-pkt-stats { | |||
if-feature "iptfs-stats"; | if-feature "iptfs-stats"; | |||
config false; | config false; | |||
description | description | |||
"IPTFS per SA outer packets counters. | "IP-TFS per-SA outer packets counters. | |||
tx = outbound, rx = inbound"; | tx = outbound, rx = inbound"; | |||
uses iptfs-outer-tx-stat-grouping; | uses iptfs-outer-tx-stat-grouping; | |||
uses iptfs-outer-rx-stat-grouping; | uses iptfs-outer-rx-stat-grouping; | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
4. IANA Considerations | 4. IANA Considerations | |||
4.1. Updates to the IETF XML Registry | 4.1. Updates to the IETF XML Registry | |||
This document registers a URI in the "IETF XML Registry" [RFC3688]. | Per this document, IANA has registered a URI in the "IETF XML | |||
Following the format in [RFC3688], the following registration has | Registry" [RFC3688] as follows. | |||
been made: | ||||
URI: | ||||
urn:ietf:params:xml:ns:yang:ietf-ipsec-iptfs | ||||
Registrant Contact: | ||||
The IESG. | ||||
XML: | URI: urn:ietf:params:xml:ns:yang:ietf-ipsec-iptfs | |||
N/A; the requested URI is an XML namespace. | Registrant Contact: The IESG. | |||
XML: N/A; the requested URI is an XML namespace. | ||||
4.2. Updates to the YANG Module Names Registry | 4.2. Updates to the YANG Module Names Registry | |||
This document registers one YANG module in the "YANG Module Names" | Per this document, IANA has registered one YANG module in the "YANG | |||
registry [RFC6020]. Following the format in [RFC6020], the following | Module Names" registry [RFC6020] as follows. | |||
registration has been made: | ||||
name: | ||||
ietf-ipsec-iptfs | ||||
namespace: | ||||
urn:ietf:params:xml:ns:yang:ietf-ipsec-iptfs | ||||
prefix: | ||||
iptfs | ||||
reference: | Name: ietf-ipsec-iptfs | |||
RFC XXXX (RFC Ed.: replace XXXX with actual RFC number and remove | Namespace: urn:ietf:params:xml:ns:yang:ietf-ipsec-iptfs | |||
this note.) | Prefix: iptfs | |||
Reference: RFC 9348 | ||||
5. Security Considerations | 5. Security Considerations | |||
The YANG module specified in this document defines a schema for data | The YANG module specified in this document defines a schema for data | |||
that is designed to be accessed via network management protocols such | that is designed to be accessed via network management protocols such | |||
as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | |||
is the secure transport layer, and the mandatory-to-implement secure | is the secure transport layer, and the mandatory-to-implement secure | |||
transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | |||
is HTTPS, and the mandatory-to-implement secure transport is TLS | is HTTPS, and the mandatory-to-implement secure transport is TLS | |||
[RFC8446]. | [RFC8446]. | |||
The Network Configuration Access Control Model (NACM) [RFC8341] | The Network Configuration Access Control Model (NACM) [RFC8341] | |||
provides the means to restrict access for particular NETCONF or | provides the means to restrict access for particular NETCONF or | |||
RESTCONF users to a preconfigured subset of all available NETCONF or | RESTCONF users to a preconfigured subset of all available NETCONF or | |||
RESTCONF protocol operations and content. | RESTCONF protocol operations and content. | |||
Certain data nodes defined in this YANG module are | There are a number of data nodes defined in this YANG module that are | |||
writable/creatable/deletable. These changes can enable, disable and | writable/creatable/deletable (i.e., config true, which is the | |||
modify the behavior of IP traffic flow security, for the implications | default). These data nodes may be considered sensitive or vulnerable | |||
regarding these types of changes consult the [I-D.ietf-ipsecme-iptfs] | in some network environments. Write operations (e.g., edit-config) | |||
which defines the functionality. The relevant sub-trees or nodes | to these data nodes without proper protection can have a negative | |||
are: | effect on network operations. These are the subtrees and data nodes | |||
and their sensitivity/vulnerability: | ||||
../traffic-flow-security: Enabling IP traffic flow security is | ||||
controlled by setting the entries under traffic-flow-security in | ||||
IKE or IKE-less models. IP traffic flow security is set either to | ||||
be congestion sensitive or a fixed rate by setting parameters in | ||||
this sub-tree. | ||||
Certain readable data nodes in this YANG module may be considered | ||||
sensitive or vulnerable in some network environments. While IP-TFS | ||||
hides the traffic flows through the network, IP-TFS YANG statistics | ||||
could reveal some information about traffic flows. Therefore, access | ||||
to IP-TFS YANG statistics also needs to be protected from third party | ||||
observation. These IP-TFS YANG statistics can be found at: | ||||
../iptfs-inner-pkt-stats and ../iptfs-outer-pkt-stats: Access to IP | ||||
traffic flow security statistics can provide information that IP | ||||
traffic flow security obscures such as the true activity of the | ||||
flows using IP traffic flow security. | ||||
6. Acknowledgements | ../traffic-flow-security: Enabling IP-TFS is controlled by setting | |||
the entries under traffic-flow-security in IKE or IKE-less models. | ||||
IP-TFS is set either to be congestion sensitive or a fixed rate by | ||||
setting parameters in this subtree. | ||||
The authors would like to thank Eric Kinzie, Juergen Schoenwaelder, | Some of the readable data nodes in this YANG module may be considered | |||
Lou Berger and Tero Kivinen for their feedback and review on the YANG | sensitive or vulnerable in some network environments. It is thus | |||
model. | important to control read access (e.g., via get, get-config, or | |||
notification) to these data nodes. These are the subtrees and data | ||||
nodes and their sensitivity/vulnerability: | ||||
7. References | ../iptfs-inner-pkt-stats and ../iptfs-outer-pkt-stats: Access to IP- | |||
TFS statistics can provide information that IP-TFS obscures, such | ||||
as the true activity of the flows using IP-TFS. | ||||
7.1. Normative References | 6. References | |||
[I-D.ietf-ipsecme-iptfs] | 6.1. Normative References | |||
Hopps, C., "IP-TFS: Aggregation and Fragmentation Mode for | ||||
ESP and its Use for IP Traffic Flow Security", Work in | ||||
Progress, Internet-Draft, draft-ietf-ipsecme-iptfs-19, 8 | ||||
November 2021, <https://www.ietf.org/archive/id/draft- | ||||
ietf-ipsecme-iptfs-19.txt>. | ||||
[RFC4301] Kent, S. and K. Seo, "Security Architecture for the | [RFC4301] Kent, S. and K. Seo, "Security Architecture for the | |||
Internet Protocol", RFC 4301, DOI 10.17487/RFC4301, | Internet Protocol", RFC 4301, DOI 10.17487/RFC4301, | |||
December 2005, <https://www.rfc-editor.org/info/rfc4301>. | December 2005, <https://www.rfc-editor.org/info/rfc4301>. | |||
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, | |||
<https://www.rfc-editor.org/info/rfc6020>. | <https://www.rfc-editor.org/info/rfc6020>. | |||
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | ||||
and A. Bierman, Ed., "Network Configuration Protocol | ||||
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | ||||
<https://www.rfc-editor.org/info/rfc6241>. | ||||
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | ||||
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | ||||
<https://www.rfc-editor.org/info/rfc6242>. | ||||
[RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | |||
RFC 6991, DOI 10.17487/RFC6991, July 2013, | RFC 6991, DOI 10.17487/RFC6991, July 2013, | |||
<https://www.rfc-editor.org/info/rfc6991>. | <https://www.rfc-editor.org/info/rfc6991>. | |||
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | |||
RFC 7950, DOI 10.17487/RFC7950, August 2016, | RFC 7950, DOI 10.17487/RFC7950, August 2016, | |||
<https://www.rfc-editor.org/info/rfc7950>. | <https://www.rfc-editor.org/info/rfc7950>. | |||
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | ||||
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | ||||
<https://www.rfc-editor.org/info/rfc8040>. | ||||
[RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | ||||
Access Control Model", STD 91, RFC 8341, | ||||
DOI 10.17487/RFC8341, March 2018, | ||||
<https://www.rfc-editor.org/info/rfc8341>. | ||||
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | |||
and R. Wilton, "Network Management Datastore Architecture | and R. Wilton, "Network Management Datastore Architecture | |||
(NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | |||
<https://www.rfc-editor.org/info/rfc8342>. | <https://www.rfc-editor.org/info/rfc8342>. | |||
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | ||||
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | ||||
<https://www.rfc-editor.org/info/rfc8446>. | ||||
[RFC9061] Marin-Lopez, R., Lopez-Millan, G., and F. Pereniguez- | [RFC9061] Marin-Lopez, R., Lopez-Millan, G., and F. Pereniguez- | |||
Garcia, "A YANG Data Model for IPsec Flow Protection Based | Garcia, "A YANG Data Model for IPsec Flow Protection Based | |||
on Software-Defined Networking (SDN)", RFC 9061, | on Software-Defined Networking (SDN)", RFC 9061, | |||
DOI 10.17487/RFC9061, July 2021, | DOI 10.17487/RFC9061, July 2021, | |||
<https://www.rfc-editor.org/info/rfc9061>. | <https://www.rfc-editor.org/info/rfc9061>. | |||
7.2. Informative References | [RFC9347] Hopps, C., "Aggregation and Fragmentation Mode for | |||
Encapsulating Security Payload (ESP) and Its Use for IP | ||||
Traffic Flow Security (IP-TFS)", RFC 9347, | ||||
DOI 10.17487/RFC9347, January 2023, | ||||
<https://www.rfc-editor.org/info/rfc9347>. | ||||
6.2. Informative References | ||||
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
<https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
[RFC5348] Floyd, S., Handley, M., Padhye, J., and J. Widmer, "TCP | [RFC5348] Floyd, S., Handley, M., Padhye, J., and J. Widmer, "TCP | |||
Friendly Rate Control (TFRC): Protocol Specification", | Friendly Rate Control (TFRC): Protocol Specification", | |||
RFC 5348, DOI 10.17487/RFC5348, September 2008, | RFC 5348, DOI 10.17487/RFC5348, September 2008, | |||
<https://www.rfc-editor.org/info/rfc5348>. | <https://www.rfc-editor.org/info/rfc5348>. | |||
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | ||||
and A. Bierman, Ed., "Network Configuration Protocol | ||||
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | ||||
<https://www.rfc-editor.org/info/rfc6241>. | ||||
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | ||||
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | ||||
<https://www.rfc-editor.org/info/rfc6242>. | ||||
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | ||||
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | ||||
<https://www.rfc-editor.org/info/rfc8040>. | ||||
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | |||
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | |||
<https://www.rfc-editor.org/info/rfc8340>. | <https://www.rfc-editor.org/info/rfc8340>. | |||
[RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | ||||
Access Control Model", STD 91, RFC 8341, | ||||
DOI 10.17487/RFC8341, March 2018, | ||||
<https://www.rfc-editor.org/info/rfc8341>. | ||||
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | ||||
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | ||||
<https://www.rfc-editor.org/info/rfc8446>. | ||||
Appendix A. Examples | Appendix A. Examples | |||
The following examples show configuration and operational data for | The following examples show configuration and operational data for | |||
the IKE-less and IKE cases using XML and JSON. Also, the operational | the IKE-less and IKE cases using XML and JSON. Also, the operational | |||
statistics for the IKE-less case is illustrated. | statistics for the IKE-less case is illustrated. | |||
A.1. Example XML Configuration | A.1. Example XML Configuration | |||
This example illustrates configuration for IP-TFS in the IKE-less | This example illustrates configuration for IP-TFS in the IKE-less | |||
case. Note that since this augments the IPsec IKE-less schema only | case. Note that, since this augments the IPsec IKE-less schema, only | |||
minimal a IKE-less configuration to satisfy the schema has been | a minimal IKE-less configuration to satisfy the schema has been | |||
populated. | populated. | |||
<i:ipsec-ikeless | <i:ipsec-ikeless | |||
xmlns:i="urn:ietf:params:xml:ns:yang:ietf-i2nsf-ikeless" | xmlns:i="urn:ietf:params:xml:ns:yang:ietf-i2nsf-ikeless" | |||
xmlns:tfs="urn:ietf:params:xml:ns:yang:ietf-ipsec-iptfs"> | xmlns:tfs="urn:ietf:params:xml:ns:yang:ietf-ipsec-iptfs"> | |||
<i:spd> | <i:spd> | |||
<i:spd-entry> | <i:spd-entry> | |||
<i:name>protect-policy-1</i:name> | <i:name>protect-policy-1</i:name> | |||
<i:direction>outbound</i:direction> | <i:direction>outbound</i:direction> | |||
<i:ipsec-policy-config> | <i:ipsec-policy-config> | |||
skipping to change at page 23, line 41 ¶ | skipping to change at line 1094 ¶ | |||
<tfs:lost-packet-timer-interval | <tfs:lost-packet-timer-interval | |||
>0.2</tfs:lost-packet-timer-interval> | >0.2</tfs:lost-packet-timer-interval> | |||
</tfs:traffic-flow-security> | </tfs:traffic-flow-security> | |||
</i:ipsec-sa-cfg> | </i:ipsec-sa-cfg> | |||
</i:processing-info> | </i:processing-info> | |||
</i:ipsec-policy-config> | </i:ipsec-policy-config> | |||
</i:spd-entry> | </i:spd-entry> | |||
</i:spd> | </i:spd> | |||
</i:ipsec-ikeless> | </i:ipsec-ikeless> | |||
Figure 1: Example IP-TFS XML configuration | Figure 1: Example IP-TFS XML Configuration | |||
A.2. Example XML Operational Data | A.2. Example XML Operational Data | |||
This example illustrates operational data for IP-TFS in the IKE-less | This example illustrates operational data for IP-TFS in the IKE-less | |||
case. Note that since this augments the IPsec IKE-less schema only | case. Note that, since this augments the IPsec IKE-less schema only, | |||
minimal IKE-less configuration to satisfy the schema has been | a minimal IKE-less configuration to satisfy the schema has been | |||
populated. | populated. | |||
<i:ipsec-ikeless | <i:ipsec-ikeless | |||
xmlns:i="urn:ietf:params:xml:ns:yang:ietf-i2nsf-ikeless" | xmlns:i="urn:ietf:params:xml:ns:yang:ietf-i2nsf-ikeless" | |||
xmlns:tfs="urn:ietf:params:xml:ns:yang:ietf-ipsec-iptfs"> | xmlns:tfs="urn:ietf:params:xml:ns:yang:ietf-ipsec-iptfs"> | |||
<i:sad> | <i:sad> | |||
<i:sad-entry> | <i:sad-entry> | |||
<i:name>sad-1</i:name> | <i:name>sad-1</i:name> | |||
<i:ipsec-sa-config> | <i:ipsec-sa-config> | |||
<i:spi>1</i:spi> | <i:spi>1</i:spi> | |||
skipping to change at page 24, line 35 ¶ | skipping to change at line 1133 ¶ | |||
<tfs:max-aggregation-time>0.100</tfs:max-aggregation-time> | <tfs:max-aggregation-time>0.100</tfs:max-aggregation-time> | |||
<tfs:window-size>0</tfs:window-size> | <tfs:window-size>0</tfs:window-size> | |||
<tfs:send-immediately>true</tfs:send-immediately> | <tfs:send-immediately>true</tfs:send-immediately> | |||
<tfs:lost-packet-timer-interval | <tfs:lost-packet-timer-interval | |||
>0.200</tfs:lost-packet-timer-interval> | >0.200</tfs:lost-packet-timer-interval> | |||
</tfs:traffic-flow-security> | </tfs:traffic-flow-security> | |||
</i:sad-entry> | </i:sad-entry> | |||
</i:sad> | </i:sad> | |||
</i:ipsec-ikeless> | </i:ipsec-ikeless> | |||
Figure 2: Example IP-TFS XML Operational data | Figure 2: Example IP-TFS XML Operational Data | |||
A.3. Example JSON Configuration | A.3. Example JSON Configuration | |||
This example illustrates config data for IP-TFS in the IKE case. | This example illustrates configuration data for IP-TFS in the IKE | |||
Note that since this augments the IPsec IKE schema only minimal ike | case. Note that, since this augments the IPsec IKE schema, only a | |||
configuration to satisfy the schema has been populated. | minimal IKE configuration to satisfy the schema has been populated. | |||
{ | { | |||
"ietf-i2nsf-ike:ipsec-ike": { | "ietf-i2nsf-ike:ipsec-ike": { | |||
"ietf-i2nsf-ike:conn-entry": [ | "ietf-i2nsf-ike:conn-entry": [ | |||
{ | { | |||
"name": "my-peer-connection", | "name": "my-peer-connection", | |||
"ike-sa-encr-alg": [ | "ike-sa-encr-alg": [ | |||
{ | { | |||
"id": 1, | "id": 1, | |||
"algorithm-type": 12, | "algorithm-type": 12, | |||
skipping to change at page 25, line 47 ¶ | skipping to change at line 1193 ¶ | |||
} | } | |||
} | } | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
Figure 3: Example IP-TFS JSON configuration | Figure 3: Example IP-TFS JSON Configuration | |||
A.4. Example JSON Operational Data | A.4. Example JSON Operational Data | |||
This example illustrates operational data for IP-TFS in the IKE case. | This example illustrates operational data for IP-TFS in the IKE case. | |||
Note that since this augments the IPsec IKE tree only minimal IKE | Note that, since this augments the IPsec IKE tree, only a minimal IKE | |||
configuration to satisfy the schema has been populated. | configuration to satisfy the schema has been populated. | |||
{ | { | |||
"ietf-i2nsf-ike:ipsec-ike": { | "ietf-i2nsf-ike:ipsec-ike": { | |||
"ietf-i2nsf-ike:conn-entry": [ | "ietf-i2nsf-ike:conn-entry": [ | |||
{ | { | |||
"name": "my-peer-connection", | "name": "my-peer-connection", | |||
"ike-sa-encr-alg": [ | "ike-sa-encr-alg": [ | |||
{ | { | |||
"id": 1, | "id": 1, | |||
skipping to change at page 26, line 47 ¶ | skipping to change at line 1237 ¶ | |||
"window-size": 5, | "window-size": 5, | |||
"send-immediately": false, | "send-immediately": false, | |||
"lost-packet-timer-interval": "0.2" | "lost-packet-timer-interval": "0.2" | |||
} | } | |||
} | } | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
Figure 4: Example IP-TFS JSON Operational data | Figure 4: Example IP-TFS JSON Operational Data | |||
A.5. Example JSON Operational Statistics | A.5. Example JSON Operational Statistics | |||
This example shows the JSON formatted statistics for IP-TFS. Note a | This example shows the JSON formatted statistics for IP-TFS. Note a | |||
unidirectional IP-TFS transmit side is illustrated, with arbitrary | unidirectional IP-TFS transmit side is illustrated, with arbitrary | |||
numbers for transmit. | numbers for transmit. | |||
{ | { | |||
"ietf-i2nsf-ikeless:ipsec-ikeless": { | "ietf-i2nsf-ikeless:ipsec-ikeless": { | |||
"sad": { | "sad": { | |||
skipping to change at page 28, line 23 ¶ | skipping to change at line 1306 ¶ | |||
} | } | |||
} | } | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
} | } | |||
Figure 5: Example IP-TFS JSON Statistics | Figure 5: Example IP-TFS JSON Statistics | |||
Acknowledgements | ||||
The authors would like to thank Eric Kinzie, Jürgen Schönwälder, Lou | ||||
Berger, and Tero Kivinen for their feedback and review on the YANG | ||||
module. | ||||
Authors' Addresses | Authors' Addresses | |||
Don Fedyk | Don Fedyk | |||
LabN Consulting, L.L.C. | LabN Consulting, L.L.C. | |||
Email: dfedyk@labn.net | Email: dfedyk@labn.net | |||
Christian Hopps | Christian Hopps | |||
LabN Consulting, L.L.C. | LabN Consulting, L.L.C. | |||
Email: chopps@chopps.org | Email: chopps@chopps.org | |||
End of changes. 124 change blocks. | ||||
305 lines changed or deleted | 324 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |