summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc9348.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc9348.txt')
-rw-r--r--doc/rfc/rfc9348.txt1325
1 files changed, 1325 insertions, 0 deletions
diff --git a/doc/rfc/rfc9348.txt b/doc/rfc/rfc9348.txt
new file mode 100644
index 0000000..efd2225
--- /dev/null
+++ b/doc/rfc/rfc9348.txt
@@ -0,0 +1,1325 @@
+
+
+
+
+Internet Engineering Task Force (IETF) D. Fedyk
+Request for Comments: 9348 C. Hopps
+Category: Standards Track LabN Consulting, L.L.C.
+ISSN: 2070-1721 January 2023
+
+
+ A YANG Data Model for IP Traffic Flow Security
+
+Abstract
+
+ This document describes a YANG module for the management of IP
+ Traffic Flow Security (IP-TFS) additions to Internet Key Exchange
+ Protocol version 2 (IKEv2) and IPsec.
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Further information on
+ Internet Standards is available in Section 2 of RFC 7841.
+
+ 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 (c) 2023 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (https://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Revised BSD License text as described in Section 4.e of the
+ Trust Legal Provisions and are provided without warranty as described
+ in the Revised BSD License.
+
+Table of Contents
+
+ 1. Introduction
+ 2. Overview
+ 3. YANG Management
+ 3.1. YANG Tree
+ 3.2. YANG Module
+ 4. IANA Considerations
+ 4.1. Updates to the IETF XML Registry
+ 4.2. Updates to the YANG Module Names Registry
+ 5. Security Considerations
+ 6. References
+ 6.1. Normative References
+ 6.2. Informative References
+ Appendix A. Examples
+ A.1. Example XML Configuration
+ A.2. Example XML Operational Data
+ A.3. Example JSON Configuration
+ A.4. Example JSON Operational Data
+ A.5. Example JSON Operational Statistics
+ Acknowledgements
+ Authors' Addresses
+
+1. Introduction
+
+ This document defines a YANG module [RFC7950] for the management of
+ the IP Traffic Flow Security (IP-TFS) extensions defined in
+ [RFC9347]. IP-TFS provides enhancements to an IPsec tunnel Security
+ Association (SA) to provide improved traffic confidentiality.
+ Traffic confidentiality reduces the ability of traffic analysis to
+ determine identity and correlate observable traffic patterns. IP-TFS
+ offers efficiency when aggregating traffic in fixed-size IPsec tunnel
+ packets.
+
+ The YANG data model in this document conforms to the Network
+ Management Datastore Architecture (NMDA) defined in [RFC8342].
+
+ The published YANG modules for IPsec are defined in [RFC9061]. This
+ 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
+ IKE-less model.
+
+2. Overview
+
+ This document defines configuration and operational parameters of IP
+ Traffic Flow Security (IP-TFS). IP-TFS, defined in [RFC9347],
+ defines a security association for tunnel mode IPsec with
+ characteristics that improve traffic confidentiality and reduce
+ bandwidth efficiency loss. These documents assume familiarity with
+ the IPsec concepts described in [RFC4301].
+
+ IP-TFS uses tunnel mode to improve confidentiality by hiding inner
+ packet identifiable information, packet size, and packet timing. IP-
+ TFS provides a general capability allowing aggregation of multiple
+ packets in uniform-size outer tunnel IPsec packets. It maintains the
+ outer packet size by utilizing combinations of aggregating, padding,
+ and fragmenting inner packets to fill out the IPsec outer tunnel
+ packet. Padding is used to fill the packet when no data is available
+ to send.
+
+ This document specifies an extensible configuration model for IP-TFS.
+ This version utilizes the capabilities of IP-TFS to configure fixed-
+ size IP-TFS packets that are transmitted at a constant rate. This
+ model is structured to allow for different types of operation through
+ future augmentation.
+
+ The IP-TFS YANG module augments the IPsec YANG module from [RFC9061].
+ IP-TFS makes use of IPsec tunnel mode and adds a small number of
+ configuration items to IPsec tunnel mode. As defined in [RFC9347],
+ any SA configured to use IP-TFS supports only IP-TFS packets, i.e.,
+ no mixed IPsec modes.
+
+ The behavior for IP-TFS is controlled by the source. The self-
+ describing format of an IP-TFS packet allows a sending side to adjust
+ the packet size and timing independently from any receiver. Both
+ directions are also independent, e.g., IP-TFS may be run only in one
+ direction. This means that counters, which are created here for both
+ directions, may be 0 or not updated in the case of an SA that uses
+ IP-TFS only in on direction.
+
+ Cases where IP-TFS statistics are active for one direction:
+
+ * SA one direction - IP-TFS enabled
+
+ * SA both directions - IP-TFS only enabled in one direction
+
+ Case where IP-TFS statistics are active for both directions:
+
+ * SA both directions - IP-TFS enable for both directions
+
+ The IP-TFS model supports IP-TFS configuration and operational data.
+
+ This YANG module supports configuration of fixed-size and fixed-rate
+ packets, as well as elements that may be augmented to support future
+ configuration. The protocol specification [RFC9347] goes beyond this
+ simple, fixed mode of operation by defining a general format for any
+ type of scheme. In this document, the outer IPsec packets can be
+ sent with fixed or variable size (without padding). The
+ 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:
+
+ Congestion Control:
+ 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 configured by taking into account
+ either layer 2 overhead or layer 3 overhead. Layer 3 overhead is
+ the IP data rate, and layer 2 overhead is the rate of bits on the
+ link. The combination of packet size and rate determines the
+ nominal maximum bandwidth and the transmission interval when
+ fixed-size packets are used.
+
+ User Packet Fragmentation Control:
+ While fragmentation is recommended for improved efficiency, a
+ configuration is provided if users wish to observe the effect of
+ no fragmentation on their data flows.
+
+ The YANG operational data allows the readout of the configured
+ 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 per-SA IP-TFS-specific statistics are provided as another
+ feature. Both sets of statistics augment the IPsec YANG modules with
+ counters that allow observation of IP-TFS packet efficiency.
+
+ IPsec YANG management objects are set in [RFC9061]. IP-TFS YANG
+ augments the IKE and the IKE-less models. In these models, the
+ Security Policy database entry and Security Association entry for an
+ IPsec tunnel can be augmented with IP-TFS. In addition, this model
+ uses YANG types defined in [RFC6991].
+
+3. YANG Management
+
+3.1. YANG Tree
+
+ The following is the YANG tree diagram [RFC8340] for the IP-TFS
+ extensions.
+
+ module: ietf-ipsec-iptfs
+ augment /nsfike:ipsec-ike/nsfike:conn-entry/nsfike:spd
+ /nsfike:spd-entry/nsfike:ipsec-policy-config
+ /nsfike:processing-info/nsfike:ipsec-sa-cfg:
+ +--rw traffic-flow-security
+ +--rw congestion-control? boolean
+ +--rw packet-size
+ | +--rw use-path-mtu-discovery? boolean
+ | +--rw outer-packet-size? uint16
+ +--rw (tunnel-rate)?
+ | +--:(l2-fixed-rate)
+ | | +--rw l2-fixed-rate? yang:gauge64
+ | +--:(l3-fixed-rate)
+ | +--rw l3-fixed-rate? yang:gauge64
+ +--rw dont-fragment? boolean
+ +--rw max-aggregation-time? decimal64
+ +--rw window-size? uint16
+ +--rw send-immediately? boolean
+ +--rw lost-packet-timer-interval? decimal64
+ augment /nsfike:ipsec-ike/nsfike:conn-entry/nsfike:child-sa-info:
+ +--ro traffic-flow-security
+ +--ro congestion-control? boolean
+ +--ro packet-size
+ | +--ro use-path-mtu-discovery? boolean
+ | +--ro outer-packet-size? uint16
+ +--ro (tunnel-rate)?
+ | +--:(l2-fixed-rate)
+ | | +--ro l2-fixed-rate? yang:gauge64
+ | +--:(l3-fixed-rate)
+ | +--ro l3-fixed-rate? yang:gauge64
+ +--ro dont-fragment? boolean
+ +--ro max-aggregation-time? decimal64
+ +--ro window-size? uint16
+ +--ro send-immediately? boolean
+ +--ro lost-packet-timer-interval? decimal64
+ augment /nsfikels:ipsec-ikeless/nsfikels:spd/nsfikels:spd-entry
+ /nsfikels:ipsec-policy-config/nsfikels:processing-info
+ /nsfikels:ipsec-sa-cfg:
+ +--rw traffic-flow-security
+ +--rw congestion-control? boolean
+ +--rw packet-size
+ | +--rw use-path-mtu-discovery? boolean
+ | +--rw outer-packet-size? uint16
+ +--rw (tunnel-rate)?
+ | +--:(l2-fixed-rate)
+ | | +--rw l2-fixed-rate? yang:gauge64
+ | +--:(l3-fixed-rate)
+ | +--rw l3-fixed-rate? yang:gauge64
+ +--rw dont-fragment? boolean
+ +--rw max-aggregation-time? decimal64
+ +--rw window-size? uint16
+ +--rw send-immediately? boolean
+ +--rw lost-packet-timer-interval? decimal64
+ augment /nsfikels:ipsec-ikeless/nsfikels:sad/nsfikels:sad-entry:
+ +--ro traffic-flow-security
+ +--ro congestion-control? boolean
+ +--ro packet-size
+ | +--ro use-path-mtu-discovery? boolean
+ | +--ro outer-packet-size? uint16
+ +--ro (tunnel-rate)?
+ | +--:(l2-fixed-rate)
+ | | +--ro l2-fixed-rate? yang:gauge64
+ | +--:(l3-fixed-rate)
+ | +--ro l3-fixed-rate? yang:gauge64
+ +--ro dont-fragment? boolean
+ +--ro max-aggregation-time? decimal64
+ +--ro window-size? uint16
+ +--ro send-immediately? boolean
+ +--ro lost-packet-timer-interval? decimal64
+ augment /nsfike:ipsec-ike/nsfike:conn-entry/nsfike:child-sa-info:
+ +--ro ipsec-stats {ipsec-stats}?
+ | +--ro tx-pkts? yang:counter64
+ | +--ro tx-octets? yang:counter64
+ | +--ro tx-drop-pkts? yang:counter64
+ | +--ro rx-pkts? yang:counter64
+ | +--ro rx-octets? yang:counter64
+ | +--ro rx-drop-pkts? yang:counter64
+ +--ro iptfs-inner-pkt-stats {iptfs-stats}?
+ | +--ro tx-pkts? yang:counter64
+ | +--ro tx-octets? yang:counter64
+ | +--ro rx-pkts? yang:counter64
+ | +--ro rx-octets? yang:counter64
+ | +--ro rx-incomplete-pkts? yang:counter64
+ +--ro iptfs-outer-pkt-stats {iptfs-stats}?
+ +--ro tx-all-pad-pkts? yang:counter64
+ +--ro tx-all-pad-octets? yang:counter64
+ +--ro tx-extra-pad-pkts? yang:counter64
+ +--ro tx-extra-pad-octets? yang:counter64
+ +--ro rx-all-pad-pkts? yang:counter64
+ +--ro rx-all-pad-octets? yang:counter64
+ +--ro rx-extra-pad-pkts? yang:counter64
+ +--ro rx-extra-pad-octets? yang:counter64
+ +--ro rx-errored-pkts? yang:counter64
+ +--ro rx-missed-pkts? yang:counter64
+ augment /nsfikels:ipsec-ikeless/nsfikels:sad/nsfikels:sad-entry:
+ +--ro ipsec-stats {ipsec-stats}?
+ | +--ro tx-pkts? yang:counter64
+ | +--ro tx-octets? yang:counter64
+ | +--ro tx-drop-pkts? yang:counter64
+ | +--ro rx-pkts? yang:counter64
+ | +--ro rx-octets? yang:counter64
+ | +--ro rx-drop-pkts? yang:counter64
+ +--ro iptfs-inner-pkt-stats {iptfs-stats}?
+ | +--ro tx-pkts? yang:counter64
+ | +--ro tx-octets? yang:counter64
+ | +--ro rx-pkts? yang:counter64
+ | +--ro rx-octets? yang:counter64
+ | +--ro rx-incomplete-pkts? yang:counter64
+ +--ro iptfs-outer-pkt-stats {iptfs-stats}?
+ +--ro tx-all-pad-pkts? yang:counter64
+ +--ro tx-all-pad-octets? yang:counter64
+ +--ro tx-extra-pad-pkts? yang:counter64
+ +--ro tx-extra-pad-octets? yang:counter64
+ +--ro rx-all-pad-pkts? yang:counter64
+ +--ro rx-all-pad-octets? yang:counter64
+ +--ro rx-extra-pad-pkts? yang:counter64
+ +--ro rx-extra-pad-octets? yang:counter64
+ +--ro rx-errored-pkts? yang:counter64
+ +--ro rx-missed-pkts? yang:counter64
+
+3.2. YANG Module
+
+ The following is the YANG module for managing the IP-TFS extensions.
+ The model contains references to [RFC9347] and [RFC5348].
+
+ <CODE BEGINS> file "ietf-ipsec-iptfs@2023-01-31.yang"
+ module ietf-ipsec-iptfs {
+ yang-version 1.1;
+ namespace "urn:ietf:params:xml:ns:yang:ietf-ipsec-iptfs";
+ prefix iptfs;
+
+ import ietf-i2nsf-ike {
+ prefix nsfike;
+ reference
+ "RFC 9061: A YANG Data Model for IPsec Flow Protection Based on
+ Software-Defined Networking (SDN), Section 5.2";
+ }
+ import ietf-i2nsf-ikeless {
+ prefix nsfikels;
+ reference
+ "RFC 9061: A YANG Data Model for IPsec Flow Protection Based on
+ Software-Defined Networking (SDN), Section 5.3";
+ }
+ import ietf-yang-types {
+ prefix yang;
+ reference
+ "RFC 6991: Common YANG Data Types";
+ }
+
+ organization
+ "IETF IPSECME Working Group (IPSECME)";
+ contact
+ "WG Web: <https://datatracker.ietf.org/wg/ipsecme/>
+ WG List: <mailto:ipsecme@ietf.org>
+
+ Author: Don Fedyk
+ <mailto:dfedyk@labn.net>
+
+ Author: Christian Hopps
+ <mailto:chopps@chopps.org>";
+
+ description
+ "This module defines the configuration and operational state for
+ managing the IP Traffic Flow Security functionality (RFC 9348).
+
+ Copyright (c) 2023 IETF Trust and the persons identified as
+ authors of the code. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or
+ without modification, is permitted pursuant to, and subject
+ to the license terms contained in, the Revised BSD License
+ set forth in Section 4.c of the IETF Trust's Legal Provisions
+ Relating to IETF Documents
+ (https://trustee.ietf.org/license-info).
+
+ This version of this YANG module is part of RFC 9348; see
+ the RFC itself for full legal notices.";
+
+ revision 2023-01-31 {
+ description
+ "Initial revision";
+ reference
+ "RFC 9348: A YANG Data Model for IP Traffic Flow Security";
+ }
+
+ feature ipsec-stats {
+ description
+ "This feature indicates the device supports
+ per-SA IPsec statistics.";
+ }
+
+ feature iptfs-stats {
+ description
+ "This feature indicates the device supports
+ per-SA IP Traffic Flow Security statistics.";
+ }
+
+ /*--------------------*/
+ /* groupings */
+ /*--------------------*/
+
+ grouping ipsec-tx-stat-grouping {
+ description
+ "IPsec outbound statistics";
+ leaf tx-pkts {
+ type yang:counter64;
+ config false;
+ description
+ "Outbound Packet count";
+ }
+ leaf tx-octets {
+ type yang:counter64;
+ config false;
+ description
+ "Outbound Packet bytes";
+ }
+ leaf tx-drop-pkts {
+ type yang:counter64;
+ config false;
+ description
+ "Outbound dropped packets count";
+ }
+ }
+
+ grouping ipsec-rx-stat-grouping {
+ description
+ "IPsec inbound statistics";
+ leaf rx-pkts {
+ type yang:counter64;
+ config false;
+ description
+ "Inbound Packet count";
+ }
+ leaf rx-octets {
+ type yang:counter64;
+ config false;
+ description
+ "Inbound Packet bytes";
+ }
+ leaf rx-drop-pkts {
+ type yang:counter64;
+ config false;
+ description
+ "Inbound dropped packets count";
+ }
+ }
+
+ grouping iptfs-inner-tx-stat-grouping {
+ description
+ "IP-TFS outbound inner packet statistics";
+ leaf tx-pkts {
+ type yang:counter64;
+ config false;
+ description
+ "Total number of IP-TFS inner packets sent. This
+ count is whole packets only. A fragmented packet
+ counts as one packet.";
+ reference
+ "RFC 9347: Aggregation and Fragmentation Mode for
+ Encapsulating Security Payload (ESP) and Its Use for
+ IP Traffic Flow Security (IP-TFS)";
+ }
+ leaf tx-octets {
+ type yang:counter64;
+ config false;
+ description
+ "Total number of IP-TFS inner octets sent. This is
+ inner packet octets only. It does not count padding.";
+ reference
+ "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 {
+ description
+ "IP-TFS outbound inner packet statistics";
+ leaf tx-all-pad-pkts {
+ type yang:counter64;
+ config false;
+ description
+ "Total number of transmitted IP-TFS packets that
+ were all padding with no inner packet data.";
+ reference
+ "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 {
+ type yang:counter64;
+ config false;
+ description
+ "Total number transmitted octets of padding added to
+ IP-TFS packets with no inner packet data.";
+ reference
+ "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 {
+ type yang:counter64;
+ config false;
+ description
+ "Total number of transmitted outer IP-TFS packets
+ that included some padding.";
+ reference
+ "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 {
+ type yang:counter64;
+ config false;
+ description
+ "Total number of transmitted octets of padding added
+ to outer IP-TFS packets with data.";
+ reference
+ "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 {
+ description
+ "IP-TFS inner packet inbound statistics";
+ leaf rx-pkts {
+ type yang:counter64;
+ config false;
+ description
+ "Total number of IP-TFS inner packets received.";
+ reference
+ "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 {
+ type yang:counter64;
+ config false;
+ description
+ "Total number of IP-TFS inner octets received. It does
+ not include padding or overhead.";
+ reference
+ "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 {
+ type yang:counter64;
+ config false;
+ description
+ "Total number of IP-TFS inner packets that were
+ incomplete. Usually this is due to fragments that are
+ not received. Also, this may be due to misordering or
+ errors in received outer packets.";
+ reference
+ "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 {
+ description
+ "IP-TFS outer packet inbound statistics";
+ leaf rx-all-pad-pkts {
+ type yang:counter64;
+ config false;
+ description
+ "Total number of received IP-TFS packets that were
+ all padding with no inner packet data.";
+ reference
+ "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 {
+ type yang:counter64;
+ config false;
+ description
+ "Total number of received octets of padding added to
+ IP-TFS packets with no inner packet data.";
+ reference
+ "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 {
+ type yang:counter64;
+ config false;
+ description
+ "Total number of received outer IP-TFS packets that
+ included some padding.";
+ reference
+ "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 {
+ type yang:counter64;
+ config false;
+ description
+ "Total number of received octets of padding added to
+ outer IP-TFS packets with data.";
+ reference
+ "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 {
+ type yang:counter64;
+ config false;
+ description
+ "Total number of IP-TFS outer packets dropped due to
+ errors.";
+ reference
+ "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 {
+ type yang:counter64;
+ config false;
+ description
+ "Total number of IP-TFS outer packets missing,
+ indicated by a missing sequence number.";
+ reference
+ "RFC 9347: Aggregation and Fragmentation Mode for
+ Encapsulating Security Payload (ESP) and Its Use for
+ IP Traffic Flow Security (IP-TFS)";
+ }
+ }
+
+ grouping iptfs-config {
+ description
+ "This is the grouping for IP-TFS configuration.";
+ container traffic-flow-security {
+ description
+ "Configure the IPsec TFS in the Security
+ Association Database (SAD).";
+ leaf congestion-control {
+ type boolean;
+ default "true";
+ description
+ "When set to true, the default, this enables the
+ congestion control on-the-wire exchange of data that is
+ required by congestion control algorithms, as defined by
+ RFC 5348. When set to false, IP-TFS sends fixed-size
+ packets over an IP-TFS tunnel at a constant rate.";
+ reference
+ "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 {
+ description
+ "Packet size is either auto-discovered or manually
+ configured.";
+ leaf use-path-mtu-discovery {
+ type boolean;
+ default "true";
+ description
+ "Utilize path MTU discovery to determine maximum
+ IP-TFS packet size. If the packet size is explicitly
+ configured, then it will only be adjusted downward if
+ use-path-mtu-discovery is set.";
+ reference
+ "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 {
+ type uint16;
+ units "bytes";
+ description
+ "On transmission, the size of the outer encapsulating
+ tunnel packet (i.e., the IP packet containing
+ Encapsulating Security Payload (ESP)).";
+ reference
+ "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 {
+ description
+ "The TFS bit rate may be specified at layer 2 wire
+ rate or layer 3 packet rate.";
+ leaf l2-fixed-rate {
+ type yang:gauge64;
+ units "bits/second";
+ description
+ "On transmission, target bandwidth/bit rate in
+ bits/second for IP-TFS tunnel. This fixed rate is the
+ nominal timing for the fixed-size packet. If
+ congestion control is enabled, the rate may be
+ adjusted down (or up if unset).";
+ reference
+ "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 {
+ type yang:gauge64;
+ units "bits/second";
+ description
+ "On transmission, target bandwidth/bit rate in
+ bits/second for IP-TFS tunnel. This fixed rate is the
+ nominal timing for the fixed-size packet. If
+ congestion control is enabled, the rate may be
+ adjusted down (or up if unset).";
+ reference
+ "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 {
+ type boolean;
+ default "false";
+ description
+ "On transmission, disable packet fragmentation across
+ consecutive IP-TFS tunnel packets; inner packets larger
+ than what can be transmitted in outer packets will be
+ dropped.";
+ reference
+ "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 {
+ type decimal64 {
+ fraction-digits 6;
+ }
+ units "milliseconds";
+ description
+ "On transmission, maximum aggregation time is the
+ maximum length of time a received inner packet can be
+ held prior to transmission in the IP-TFS tunnel. Inner
+ packets that would be held longer than this time, based
+ on the current tunnel configuration, will be dropped
+ rather than be queued for transmission. Maximum
+ aggregation time is configurable in milliseconds or
+ fractional milliseconds down to 1 nanosecond.";
+ }
+ leaf window-size {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "On reception, the maximum number of out-of-order
+ packets that will be reordered by an IP-TFS receiver
+ while performing the reordering operation. The value 0
+ disables any reordering.";
+ reference
+ "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 {
+ type boolean;
+ default "false";
+ description
+ "On reception, send inner packets as soon as possible; do
+ not wait for lost or misordered outer packets.
+ Selecting this option reduces the inner (user) packet
+ delay but can amplify out-of-order delivery of the
+ inner packet stream in the presence of packet
+ aggregation and any reordering.";
+ reference
+ "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 {
+ type decimal64 {
+ fraction-digits 6;
+ }
+ units "milliseconds";
+ description
+ "On reception, this interval defines the length of time
+ an IP-TFS receiver will wait for a missing packet before
+ considering it lost. If not using send-immediately,
+ then each lost packet will delay inner (user) packets
+ until this timer expires. Setting this value too low
+ can impact reordering and reassembly. The value is
+ configurable in milliseconds or fractional milliseconds
+ down to 1 nanosecond.";
+ reference
+ "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
+ */
+
+ augment "/nsfike:ipsec-ike/nsfike:conn-entry/nsfike:spd/"
+ + "nsfike:spd-entry/"
+ + "nsfike:ipsec-policy-config/"
+ + "nsfike:processing-info/"
+ + "nsfike:ipsec-sa-cfg" {
+ description
+ "IP-TFS configuration for this policy.";
+ uses iptfs-config;
+ }
+
+ augment "/nsfike:ipsec-ike/nsfike:conn-entry/"
+ + "nsfike:child-sa-info" {
+ description
+ "IP-TFS configured on this SA.";
+ uses iptfs-config {
+ refine "traffic-flow-security" {
+ config false;
+ }
+ }
+ }
+
+ /*
+ * IP-TFS ikeless configuration
+ */
+
+ augment "/nsfikels:ipsec-ikeless/nsfikels:spd/"
+ + "nsfikels:spd-entry/"
+ + "nsfikels:ipsec-policy-config/"
+ + "nsfikels:processing-info/"
+ + "nsfikels:ipsec-sa-cfg" {
+ description
+ "IP-TFS configuration for this policy.";
+ uses iptfs-config;
+ }
+
+ augment "/nsfikels:ipsec-ikeless/nsfikels:sad/"
+ + "nsfikels:sad-entry" {
+ description
+ "IP-TFS configured on this SA.";
+ uses iptfs-config {
+ refine "traffic-flow-security" {
+ config false;
+ }
+ }
+ }
+
+ /*
+ * packet counters
+ */
+
+ augment "/nsfike:ipsec-ike/nsfike:conn-entry/"
+ + "nsfike:child-sa-info" {
+ description
+ "Per-SA counters";
+ container ipsec-stats {
+ if-feature "ipsec-stats";
+ config false;
+ description
+ "IPsec per-SA packet counters.
+ tx = outbound, rx = inbound";
+ uses ipsec-tx-stat-grouping;
+ uses ipsec-rx-stat-grouping;
+ }
+ container iptfs-inner-pkt-stats {
+ if-feature "iptfs-stats";
+ config false;
+ description
+ "IP-TFS per-SA inner packet counters.
+ tx = outbound, rx = inbound";
+ uses iptfs-inner-tx-stat-grouping;
+ uses iptfs-inner-rx-stat-grouping;
+ }
+ container iptfs-outer-pkt-stats {
+ if-feature "iptfs-stats";
+ config false;
+ description
+ "IP-TFS per-SA outer packets counters.
+ tx = outbound, rx = inbound";
+ uses iptfs-outer-tx-stat-grouping;
+ uses iptfs-outer-rx-stat-grouping;
+ }
+ }
+
+ /*
+ * packet counters
+ */
+
+ augment "/nsfikels:ipsec-ikeless/nsfikels:sad/"
+ + "nsfikels:sad-entry" {
+ description
+ "Per-SA counters";
+ container ipsec-stats {
+ if-feature "ipsec-stats";
+ config false;
+ description
+ "IPsec per-SA packet counters.
+ tx = outbound, rx = inbound";
+ uses ipsec-tx-stat-grouping;
+ uses ipsec-rx-stat-grouping;
+ }
+ container iptfs-inner-pkt-stats {
+ if-feature "iptfs-stats";
+ config false;
+ description
+ "IP-TFS per-SA inner packet counters.
+ tx = outbound, rx = inbound";
+ uses iptfs-inner-tx-stat-grouping;
+ uses iptfs-inner-rx-stat-grouping;
+ }
+ container iptfs-outer-pkt-stats {
+ if-feature "iptfs-stats";
+ config false;
+ description
+ "IP-TFS per-SA outer packets counters.
+ tx = outbound, rx = inbound";
+ uses iptfs-outer-tx-stat-grouping;
+ uses iptfs-outer-rx-stat-grouping;
+ }
+ }
+ }
+ <CODE ENDS>
+
+4. IANA Considerations
+
+4.1. Updates to the IETF XML Registry
+
+ Per this document, IANA has registered a URI in the "IETF XML
+ Registry" [RFC3688] as follows.
+
+ URI: urn:ietf:params:xml:ns:yang:ietf-ipsec-iptfs
+ Registrant Contact: The IESG.
+ XML: N/A; the requested URI is an XML namespace.
+
+4.2. Updates to the YANG Module Names Registry
+
+ Per this document, IANA has registered one YANG module in the "YANG
+ Module Names" registry [RFC6020] as follows.
+
+ Name: ietf-ipsec-iptfs
+ Namespace: urn:ietf:params:xml:ns:yang:ietf-ipsec-iptfs
+ Prefix: iptfs
+ Reference: RFC 9348
+
+5. Security Considerations
+
+ The YANG module specified in this document defines a schema for data
+ that is designed to be accessed via network management protocols such
+ as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer
+ is the secure transport layer, and the mandatory-to-implement secure
+ transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer
+ is HTTPS, and the mandatory-to-implement secure transport is TLS
+ [RFC8446].
+
+ The Network Configuration Access Control Model (NACM) [RFC8341]
+ provides the means to restrict access for particular NETCONF or
+ RESTCONF users to a preconfigured subset of all available NETCONF or
+ RESTCONF protocol operations and content.
+
+ There are a number of data nodes defined in this YANG module that are
+ writable/creatable/deletable (i.e., config true, which is the
+ default). These data nodes may be considered sensitive or vulnerable
+ in some network environments. Write operations (e.g., edit-config)
+ to these data nodes without proper protection can have a negative
+ effect on network operations. These are the subtrees and data nodes
+ and their sensitivity/vulnerability:
+
+ ../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.
+
+ Some of the readable data nodes in this YANG module may be considered
+ sensitive or vulnerable in some network environments. It is thus
+ 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:
+
+ ../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.
+
+6. References
+
+6.1. Normative References
+
+ [RFC4301] Kent, S. and K. Seo, "Security Architecture for the
+ Internet Protocol", RFC 4301, DOI 10.17487/RFC4301,
+ December 2005, <https://www.rfc-editor.org/info/rfc4301>.
+
+ [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
+ the Network Configuration Protocol (NETCONF)", RFC 6020,
+ DOI 10.17487/RFC6020, October 2010,
+ <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",
+ RFC 6991, DOI 10.17487/RFC6991, July 2013,
+ <https://www.rfc-editor.org/info/rfc6991>.
+
+ [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
+ RFC 7950, DOI 10.17487/RFC7950, August 2016,
+ <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.,
+ and R. Wilton, "Network Management Datastore Architecture
+ (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
+ <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-
+ Garcia, "A YANG Data Model for IPsec Flow Protection Based
+ on Software-Defined Networking (SDN)", RFC 9061,
+ DOI 10.17487/RFC9061, July 2021,
+ <https://www.rfc-editor.org/info/rfc9061>.
+
+ [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,
+ DOI 10.17487/RFC3688, January 2004,
+ <https://www.rfc-editor.org/info/rfc3688>.
+
+ [RFC5348] Floyd, S., Handley, M., Padhye, J., and J. Widmer, "TCP
+ Friendly Rate Control (TFRC): Protocol Specification",
+ RFC 5348, DOI 10.17487/RFC5348, September 2008,
+ <https://www.rfc-editor.org/info/rfc5348>.
+
+ [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
+ BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
+ <https://www.rfc-editor.org/info/rfc8340>.
+
+Appendix A. Examples
+
+ The following examples show configuration and operational data for
+ the IKE-less and IKE cases using XML and JSON. Also, the operational
+ statistics for the IKE-less case is illustrated.
+
+A.1. Example XML Configuration
+
+ This example illustrates configuration for IP-TFS in the IKE-less
+ case. Note that, since this augments the IPsec IKE-less schema, only
+ a minimal IKE-less configuration to satisfy the schema has been
+ populated.
+
+ <i:ipsec-ikeless
+ xmlns:i="urn:ietf:params:xml:ns:yang:ietf-i2nsf-ikeless"
+ xmlns:tfs="urn:ietf:params:xml:ns:yang:ietf-ipsec-iptfs">
+ <i:spd>
+ <i:spd-entry>
+ <i:name>protect-policy-1</i:name>
+ <i:direction>outbound</i:direction>
+ <i:ipsec-policy-config>
+ <i:traffic-selector>
+ <i:local-prefix>192.0.2.0/16</i:local-prefix>
+ <i:remote-prefix>198.51.100.0/16</i:remote-prefix>
+ </i:traffic-selector>
+ <i:processing-info>
+ <i:action>protect</i:action>
+ <i:ipsec-sa-cfg>
+ <tfs:traffic-flow-security>
+ <tfs:congestion-control>true</tfs:congestion-control>
+ <tfs:packet-size>
+ <tfs:use-path-mtu-discovery
+ >true</tfs:use-path-mtu-discovery>
+ </tfs:packet-size>
+ <tfs:l2-fixed-rate>1000000000</tfs:l2-fixed-rate>
+ <tfs:max-aggregation-time
+ >0.1</tfs:max-aggregation-time>
+ <tfs:window-size>5</tfs:window-size>
+ <tfs:send-immediately>false</tfs:send-immediately>
+ <tfs:lost-packet-timer-interval
+ >0.2</tfs:lost-packet-timer-interval>
+ </tfs:traffic-flow-security>
+ </i:ipsec-sa-cfg>
+ </i:processing-info>
+ </i:ipsec-policy-config>
+ </i:spd-entry>
+ </i:spd>
+ </i:ipsec-ikeless>
+
+ Figure 1: Example IP-TFS XML Configuration
+
+A.2. Example XML Operational Data
+
+ This example illustrates operational data for IP-TFS in the IKE-less
+ case. Note that, since this augments the IPsec IKE-less schema only,
+ a minimal IKE-less configuration to satisfy the schema has been
+ populated.
+
+ <i:ipsec-ikeless
+ xmlns:i="urn:ietf:params:xml:ns:yang:ietf-i2nsf-ikeless"
+ xmlns:tfs="urn:ietf:params:xml:ns:yang:ietf-ipsec-iptfs">
+ <i:sad>
+ <i:sad-entry>
+ <i:name>sad-1</i:name>
+ <i:ipsec-sa-config>
+ <i:spi>1</i:spi>
+ <i:traffic-selector>
+ <i:local-prefix>2001:db8:1::/48</i:local-prefix>
+ <i:remote-prefix>2001:db8:2::/48</i:remote-prefix>
+ </i:traffic-selector>
+ </i:ipsec-sa-config>
+ <tfs:traffic-flow-security>
+ <tfs:congestion-control>true</tfs:congestion-control>
+ <tfs:packet-size>
+ <tfs:use-path-mtu-discovery
+ >true</tfs:use-path-mtu-discovery>
+ </tfs:packet-size>
+ <tfs:l2-fixed-rate>1000000000</tfs:l2-fixed-rate>
+ <tfs:max-aggregation-time>0.100</tfs:max-aggregation-time>
+ <tfs:window-size>0</tfs:window-size>
+ <tfs:send-immediately>true</tfs:send-immediately>
+ <tfs:lost-packet-timer-interval
+ >0.200</tfs:lost-packet-timer-interval>
+ </tfs:traffic-flow-security>
+ </i:sad-entry>
+ </i:sad>
+ </i:ipsec-ikeless>
+
+ Figure 2: Example IP-TFS XML Operational Data
+
+A.3. Example JSON Configuration
+
+ This example illustrates configuration data for IP-TFS in the IKE
+ case. Note that, since this augments the IPsec IKE schema, only a
+ minimal IKE configuration to satisfy the schema has been populated.
+
+ {
+ "ietf-i2nsf-ike:ipsec-ike": {
+ "ietf-i2nsf-ike:conn-entry": [
+ {
+ "name": "my-peer-connection",
+ "ike-sa-encr-alg": [
+ {
+ "id": 1,
+ "algorithm-type": 12,
+ "key-length": 128
+ }
+ ],
+ "local": {
+ "local-pad-entry-name": "local-1"
+ },
+ "remote": {
+ "remote-pad-entry-name": "remote-1"
+ },
+ "ietf-i2nsf-ike:spd": {
+ "spd-entry": [
+ {
+ "name": "protect-policy-1",
+ "ipsec-policy-config": {
+ "traffic-selector": {
+ "local-prefix": "192.0.2.0/16",
+ "remote-prefix": "198.51.100.0/16"
+ },
+ "processing-info": {
+ "action": "protect",
+ "ipsec-sa-cfg": {
+ "ietf-ipsec-iptfs:traffic-flow-security": {
+ "congestion-control": true,
+ "l2-fixed-rate": "1000000000",
+ "packet-size": {
+ "use-path-mtu-discovery": true
+ },
+ "max-aggregation-time": "0.1",
+ "window-size": 1,
+ "send-immediately": false,
+ "lost-packet-timer-interval": "0.2"
+ }
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+
+ Figure 3: Example IP-TFS JSON Configuration
+
+A.4. Example JSON Operational Data
+
+ This example illustrates operational data for IP-TFS in the IKE case.
+ Note that, since this augments the IPsec IKE tree, only a minimal IKE
+ configuration to satisfy the schema has been populated.
+
+ {
+ "ietf-i2nsf-ike:ipsec-ike": {
+ "ietf-i2nsf-ike:conn-entry": [
+ {
+ "name": "my-peer-connection",
+ "ike-sa-encr-alg": [
+ {
+ "id": 1,
+ "algorithm-type": 12,
+ "key-length": 128
+ }
+ ],
+ "local": {
+ "local-pad-entry-name": "local-1"
+ },
+ "remote": {
+ "remote-pad-entry-name": "remote-1"
+ },
+ "ietf-i2nsf-ike:child-sa-info": {
+ "ietf-ipsec-iptfs:traffic-flow-security": {
+ "congestion-control": true,
+ "l2-fixed-rate": "1000000000",
+ "packet-size": {
+ "use-path-mtu-discovery": true
+ },
+ "max-aggregation-time": "0.1",
+ "window-size": 5,
+ "send-immediately": false,
+ "lost-packet-timer-interval": "0.2"
+ }
+ }
+ }
+ ]
+ }
+ }
+
+ Figure 4: Example IP-TFS JSON Operational Data
+
+A.5. Example JSON Operational Statistics
+
+ This example shows the JSON formatted statistics for IP-TFS. Note a
+ unidirectional IP-TFS transmit side is illustrated, with arbitrary
+ numbers for transmit.
+
+ {
+ "ietf-i2nsf-ikeless:ipsec-ikeless": {
+ "sad": {
+ "sad-entry": [
+ {
+ "name": "sad-1",
+ "ipsec-sa-config": {
+ "spi": 1,
+ "traffic-selector": {
+ "local-prefix": "192.0.2.1/16",
+ "remote-prefix": "198.51.100.0/16"
+ }
+ },
+ "ietf-ipsec-iptfs:traffic-flow-security": {
+ "window-size": 5,
+ "send-immediately": false,
+ "lost-packet-timer-interval": "0.2"
+ },
+ "ietf-ipsec-iptfs:ipsec-stats": {
+ "tx-pkts": "300",
+ "tx-octets": "80000",
+ "tx-drop-pkts": "2",
+ "rx-pkts": "0",
+ "rx-octets": "0",
+ "rx-drop-pkts": "0"
+ },
+ "ietf-ipsec-iptfs:iptfs-inner-pkt-stats": {
+ "tx-pkts": "250",
+ "tx-octets": "75000",
+ "rx-pkts": "0",
+ "rx-octets": "0",
+ "rx-incomplete-pkts": "0"
+ },
+ "ietf-ipsec-iptfs:iptfs-outer-pkt-stats": {
+ "tx-all-pad-pkts": "40",
+ "tx-all-pad-octets": "40000",
+ "tx-extra-pad-pkts": "200",
+ "tx-extra-pad-octets": "30000",
+ "rx-all-pad-pkts": "0",
+ "rx-all-pad-octets": "0",
+ "rx-extra-pad-pkts": "0",
+ "rx-extra-pad-octets": "0",
+ "rx-errored-pkts": "0",
+ "rx-missed-pkts": "0"
+ },
+ "ipsec-sa-state": {
+ "sa-lifetime-current": {
+ "time": 80000,
+ "bytes": "400606",
+ "packets": 1000,
+ "idle": 5
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+
+ 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
+
+ Don Fedyk
+ LabN Consulting, L.L.C.
+ Email: dfedyk@labn.net
+
+
+ Christian Hopps
+ LabN Consulting, L.L.C.
+ Email: chopps@chopps.org