| ietf-ptp@2019-04-10.yang | ietf-ptp@2019-04-10-formatted.yang | |||
|---|---|---|---|---|
| module ietf-ptp { | module ietf-ptp { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-ptp"; | namespace "urn:ietf:params:xml:ns:yang:ietf-ptp"; | |||
| prefix "ptp"; | prefix ptp; | |||
| import ietf-interfaces { | import ietf-interfaces { | |||
| prefix if; | prefix if; | |||
| reference | reference | |||
| "RFC 8343: A YANG Data Model for Interface Management"; | "RFC 8343: A YANG Data Model for Interface Management"; | |||
| } | } | |||
| organization "IETF TICTOC Working Group"; | organization | |||
| "IETF TICTOC Working Group"; | ||||
| contact | contact | |||
| "WG Web: https://datatracker.ietf.org/wg/tictoc/ | "WG Web: https://datatracker.ietf.org/wg/tictoc/ | |||
| WG List: <mailto:tictoc@ietf.org> | WG List: <mailto:tictoc@ietf.org> | |||
| Editor: Yuanlong Jiang | Editor: Yuanlong Jiang | |||
| <mailto:jiangyuanlong@huawei.com> | <mailto:jiangyuanlong@huawei.com> | |||
| Editor: Rodney Cummings | Editor: Rodney Cummings | |||
| <mailto:rodney.cummings@ni.com>"; | <mailto:rodney.cummings@ni.com>"; | |||
| description | description | |||
| "This YANG module defines a data model for the configuration | "This YANG module defines a data model for the configuration | |||
| of IEEE 1588-2008 clocks, and also for retrieval of the state | of IEEE 1588-2008 clocks, and also for retrieval of the state | |||
| data of IEEE 1588-2008 clocks."; | data of IEEE 1588-2008 clocks."; | |||
| revision "2019-04-10" { | revision 2019-04-10 { | |||
| description "Initial version"; | description | |||
| reference "RFC 8575: YANG Data Model for IEEE 1588-2008"; | "Initial version"; | |||
| reference | ||||
| "RFC 8575: YANG Data Model for IEEE 1588-2008"; | ||||
| } | } | |||
| typedef delay-mechanism-enumeration { | typedef delay-mechanism-enumeration { | |||
| type enumeration { | type enumeration { | |||
| enum e2e { | enum e2e { | |||
| value 1; | value 1; | |||
| description | description | |||
| "The port uses the delay request-response mechanism."; | "The port uses the delay request-response mechanism."; | |||
| } | } | |||
| enum p2p { | enum p2p { | |||
| value 2; | value 2; | |||
| description | description | |||
| "The port uses the peer delay mechanism."; | "The port uses the peer delay mechanism."; | |||
| } | } | |||
| enum disabled { | enum disabled { | |||
| value 254; | value 254; | |||
| description | description | |||
| "The port does not implement any delay mechanism."; | "The port does not implement any delay mechanism."; | |||
| } | } | |||
| skipping to change at line 145 ¶ | skipping to change at line 144 ¶ | |||
| reference | reference | |||
| "IEEE Std 1588-2008: 5.3.4"; | "IEEE Std 1588-2008: 5.3.4"; | |||
| } | } | |||
| grouping clock-quality-grouping { | grouping clock-quality-grouping { | |||
| description | description | |||
| "Derived data type for quality of a clock, which contains | "Derived data type for quality of a clock, which contains | |||
| clockClass, clockAccuracy, and offsetScaledLogVariance."; | clockClass, clockAccuracy, and offsetScaledLogVariance."; | |||
| reference | reference | |||
| "IEEE Std 1588-2008: 5.3.7"; | "IEEE Std 1588-2008: 5.3.7"; | |||
| leaf clock-class { | leaf clock-class { | |||
| type uint8; | type uint8; | |||
| default 248; | default "248"; | |||
| description | description | |||
| "The clockClass denotes the traceability of the time | "The clockClass denotes the traceability of the time | |||
| or frequency distributed by the clock."; | or frequency distributed by the clock."; | |||
| } | } | |||
| leaf clock-accuracy { | leaf clock-accuracy { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "The clockAccuracy indicates the expected accuracy | "The clockAccuracy indicates the expected accuracy | |||
| of the clock."; | of the clock."; | |||
| } | } | |||
| leaf offset-scaled-log-variance { | leaf offset-scaled-log-variance { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "The offsetScaledLogVariance provides an estimate of | "The offsetScaledLogVariance provides an estimate of | |||
| the variations of the clock from a linear timescale | the variations of the clock from a linear timescale | |||
| when it is not synchronized to another clock | when it is not synchronized to another clock | |||
| using the protocol."; | using the protocol."; | |||
| } | } | |||
| } | } | |||
| skipping to change at line 175 ¶ | skipping to change at line 171 ¶ | |||
| the variations of the clock from a linear timescale | the variations of the clock from a linear timescale | |||
| when it is not synchronized to another clock | when it is not synchronized to another clock | |||
| using the protocol."; | using the protocol."; | |||
| } | } | |||
| } | } | |||
| container ptp { | container ptp { | |||
| description | description | |||
| "The PTP struct containing all attributes of PTP data set, | "The PTP struct containing all attributes of PTP data set, | |||
| other optional PTP attributes can be augmented as well."; | other optional PTP attributes can be augmented as well."; | |||
| list instance-list { | list instance-list { | |||
| key "instance-number"; | key "instance-number"; | |||
| description | description | |||
| "List of one or more PTP data sets in the device (see IEEE | "List of one or more PTP data sets in the device (see IEEE | |||
| Std 1588-2008 subclause 6.3). | Std 1588-2008 subclause 6.3). | |||
| Each PTP data set represents a distinct instance of | Each PTP data set represents a distinct instance of | |||
| PTP implementation in the device (i.e., distinct | PTP implementation in the device (i.e., distinct | |||
| Ordinary Clock or Boundary Clock)."; | Ordinary Clock or Boundary Clock)."; | |||
| leaf instance-number { | leaf instance-number { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "The instance number of the current PTP instance. | "The instance number of the current PTP instance. | |||
| This instance number is used for management purposes | This instance number is used for management purposes | |||
| only. This instance number does not represent the PTP | only. This instance number does not represent the PTP | |||
| domain number and is not used in PTP messages."; | domain number and is not used in PTP messages."; | |||
| } | } | |||
| container default-ds { | container default-ds { | |||
| description | description | |||
| "The default data set of the clock (see IEEE Std | "The default data set of the clock (see IEEE Std | |||
| 1588-2008 subclause 8.2.1). This data set represents | 1588-2008 subclause 8.2.1). This data set represents | |||
| the configuration/state required for operation | the configuration/state required for operation | |||
| of Precision Time Protocol (PTP) state machines."; | of Precision Time Protocol (PTP) state machines."; | |||
| leaf two-step-flag { | leaf two-step-flag { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "When set to true, the clock is a two-step clock; | "When set to true, the clock is a two-step clock; | |||
| otherwise,the clock is a one-step clock."; | otherwise,the clock is a one-step clock."; | |||
| } | } | |||
| leaf clock-identity { | leaf clock-identity { | |||
| type clock-identity-type; | type clock-identity-type; | |||
| config false; | config false; | |||
| description | description | |||
| "The clockIdentity of the local clock."; | "The clockIdentity of the local clock."; | |||
| } | } | |||
| leaf number-ports { | leaf number-ports { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "The number of PTP ports on the instance."; | "The number of PTP ports on the instance."; | |||
| } | } | |||
| container clock-quality { | container clock-quality { | |||
| description | description | |||
| "The clockQuality of the local clock."; | "The clockQuality of the local clock."; | |||
| uses clock-quality-grouping; | uses clock-quality-grouping; | |||
| } | } | |||
| leaf priority1 { | leaf priority1 { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "The priority1 attribute of the local clock."; | "The priority1 attribute of the local clock."; | |||
| } | } | |||
| leaf priority2 { | ||||
| leaf priority2{ | ||||
| type uint8; | type uint8; | |||
| description | description | |||
| "The priority2 attribute of the local clock."; | "The priority2 attribute of the local clock."; | |||
| } | } | |||
| leaf domain-number { | leaf domain-number { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "The domain number of the current syntonization | "The domain number of the current syntonization | |||
| domain."; | domain."; | |||
| } | } | |||
| leaf slave-only { | leaf slave-only { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "When set to true, the clock is a slave-only clock."; | "When set to true, the clock is a slave-only clock."; | |||
| } | } | |||
| } | } | |||
| container current-ds { | container current-ds { | |||
| description | description | |||
| "The current data set of the clock (see IEEE Std | "The current data set of the clock (see IEEE Std | |||
| 1588-2008 subclause 8.2.2). This data set represents | 1588-2008 subclause 8.2.2). This data set represents | |||
| local states learned from the exchange of | local states learned from the exchange of | |||
| Precision Time Protocol (PTP) messages."; | Precision Time Protocol (PTP) messages."; | |||
| leaf steps-removed { | leaf steps-removed { | |||
| type uint16; | type uint16; | |||
| default 0; | default "0"; | |||
| description | description | |||
| "The number of communication paths traversed | "The number of communication paths traversed | |||
| between the local clock and the grandmaster clock."; | between the local clock and the grandmaster clock."; | |||
| } | } | |||
| leaf offset-from-master { | leaf offset-from-master { | |||
| type time-interval-type; | type time-interval-type; | |||
| description | description | |||
| "The current value of the time difference between | "The current value of the time difference between | |||
| a master and a slave clock as computed by the slave."; | a master and a slave clock as computed by the slave."; | |||
| } | } | |||
| leaf mean-path-delay { | leaf mean-path-delay { | |||
| type time-interval-type; | type time-interval-type; | |||
| description | description | |||
| "The current value of the mean propagation time between | "The current value of the mean propagation time between | |||
| a master and a slave clock as computed by the slave."; | a master and a slave clock as computed by the slave."; | |||
| } | } | |||
| } | } | |||
| container parent-ds { | container parent-ds { | |||
| description | description | |||
| "The parent data set of the clock (see IEEE Std 1588-2008 | "The parent data set of the clock (see IEEE Std 1588-2008 | |||
| subclause 8.2.3)."; | subclause 8.2.3)."; | |||
| container parent-port-identity { | container parent-port-identity { | |||
| description | description | |||
| "The portIdentity of the port on the master, it | "The portIdentity of the port on the master, it | |||
| contains two members: clockIdentity and portNumber."; | contains two members: clockIdentity and portNumber."; | |||
| reference | reference | |||
| "IEEE Std 1588-2008: 5.3.5"; | "IEEE Std 1588-2008: 5.3.5"; | |||
| leaf clock-identity { | leaf clock-identity { | |||
| type clock-identity-type; | type clock-identity-type; | |||
| description | description | |||
| "Identity of the clock."; | "Identity of the clock."; | |||
| } | } | |||
| leaf port-number { | leaf port-number { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "Port number."; | "Port number."; | |||
| } | } | |||
| } | } | |||
| leaf parent-stats { | leaf parent-stats { | |||
| type boolean; | type boolean; | |||
| default false; | default "false"; | |||
| description | description | |||
| "When set to true, the values of | "When set to true, the values of | |||
| observedParentOffsetScaledLogVariance and | observedParentOffsetScaledLogVariance and | |||
| observedParentClockPhaseChangeRate of parentDS | observedParentClockPhaseChangeRate of parentDS | |||
| have been measured and are valid."; | have been measured and are valid."; | |||
| } | } | |||
| leaf observed-parent-offset-scaled-log-variance { | leaf observed-parent-offset-scaled-log-variance { | |||
| type uint16; | type uint16; | |||
| default 65535; | default "65535"; | |||
| description | description | |||
| "An estimate of the parent clock's PTP variance | "An estimate of the parent clock's PTP variance | |||
| as observed by the slave clock."; | as observed by the slave clock."; | |||
| } | } | |||
| leaf observed-parent-clock-phase-change-rate { | leaf observed-parent-clock-phase-change-rate { | |||
| type int32; | type int32; | |||
| description | description | |||
| "An estimate of the parent clock's phase change rate | "An estimate of the parent clock's phase change rate | |||
| as observed by the slave clock."; | as observed by the slave clock."; | |||
| } | } | |||
| leaf grandmaster-identity { | leaf grandmaster-identity { | |||
| type clock-identity-type; | type clock-identity-type; | |||
| description | description | |||
| "The clockIdentity attribute of the grandmaster clock."; | "The clockIdentity attribute of the grandmaster clock."; | |||
| } | } | |||
| container grandmaster-clock-quality { | container grandmaster-clock-quality { | |||
| description | description | |||
| "The clockQuality of the grandmaster clock."; | "The clockQuality of the grandmaster clock."; | |||
| uses clock-quality-grouping; | uses clock-quality-grouping; | |||
| } | } | |||
| leaf grandmaster-priority1 { | leaf grandmaster-priority1 { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "The priority1 attribute of the grandmaster clock."; | "The priority1 attribute of the grandmaster clock."; | |||
| } | } | |||
| leaf grandmaster-priority2 { | leaf grandmaster-priority2 { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "The priority2 attribute of the grandmaster clock."; | "The priority2 attribute of the grandmaster clock."; | |||
| } | } | |||
| } | } | |||
| container time-properties-ds { | container time-properties-ds { | |||
| description | description | |||
| "The timeProperties data set of the clock (see | "The timeProperties data set of the clock (see | |||
| IEEE Std 1588-2008 subclause 8.2.4)."; | IEEE Std 1588-2008 subclause 8.2.4)."; | |||
| leaf current-utc-offset-valid { | leaf current-utc-offset-valid { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "When set to true, the current UTC offset is valid."; | "When set to true, the current UTC offset is valid."; | |||
| } | } | |||
| leaf current-utc-offset { | leaf current-utc-offset { | |||
| when "../current-utc-offset-valid='true'"; | when "../current-utc-offset-valid='true'"; | |||
| type int16; | type int16; | |||
| description | description | |||
| "The offset between TAI and UTC when the epoch of the | "The offset between TAI and UTC when the epoch of the | |||
| skipping to change at line 454 ¶ | skipping to change at line 406 ¶ | |||
| In this YANG data model, portIdentity is not modeled | In this YANG data model, portIdentity is not modeled | |||
| in the port-ds-list. However, its members are provided | in the port-ds-list. However, its members are provided | |||
| as follows: | as follows: | |||
| portIdentity.portNumber is provided as this | portIdentity.portNumber is provided as this | |||
| port-number leaf in port-ds-list, and | port-number leaf in port-ds-list, and | |||
| portIdentity.clockIdentity is provided as the | portIdentity.clockIdentity is provided as the | |||
| clock-identity leaf in default-ds of the instance | clock-identity leaf in default-ds of the instance | |||
| (i.e., ../../default-ds/clock-identity)."; | (i.e., ../../default-ds/clock-identity)."; | |||
| } | } | |||
| leaf port-state { | leaf port-state { | |||
| type port-state-enumeration; | type port-state-enumeration; | |||
| default "initializing"; | default "initializing"; | |||
| description | description | |||
| "Current state associated with the port."; | "Current state associated with the port."; | |||
| } | } | |||
| leaf underlying-interface { | leaf underlying-interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Reference to the configured underlying interface that | "Reference to the configured underlying interface that | |||
| is used by this PTP port (see RFC 8343)."; | is used by this PTP port (see RFC 8343)."; | |||
| } | } | |||
| leaf log-min-delay-req-interval { | leaf log-min-delay-req-interval { | |||
| type int8; | type int8; | |||
| description | description | |||
| "The base-2 logarithm of the minDelayReqInterval | "The base-2 logarithm of the minDelayReqInterval | |||
| (the minimum permitted mean time interval between | (the minimum permitted mean time interval between | |||
| successive Delay_Req messages)."; | successive Delay_Req messages)."; | |||
| } | } | |||
| leaf peer-mean-path-delay { | leaf peer-mean-path-delay { | |||
| type time-interval-type; | type time-interval-type; | |||
| default 0; | default "0"; | |||
| description | description | |||
| "An estimate of the current one-way propagation delay | "An estimate of the current one-way propagation delay | |||
| on the link when the delayMechanism is P2P; otherwise, | on the link when the delayMechanism is P2P; otherwise, | |||
| it is zero."; | it is zero."; | |||
| } | } | |||
| leaf log-announce-interval { | leaf log-announce-interval { | |||
| type int8; | type int8; | |||
| description | description | |||
| "The base-2 logarithm of the mean | "The base-2 logarithm of the mean | |||
| announceInterval (mean time interval between | announceInterval (mean time interval between | |||
| successive Announce messages)."; | successive Announce messages)."; | |||
| } | } | |||
| leaf announce-receipt-timeout { | leaf announce-receipt-timeout { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "The number of announceIntervals that have to pass | "The number of announceIntervals that have to pass | |||
| without receipt of an Announce message before the | without receipt of an Announce message before the | |||
| occurrence of the event ANNOUNCE_RECEIPT_TIMEOUT_ | occurrence of the event ANNOUNCE_RECEIPT_TIMEOUT_ | |||
| EXPIRES."; | EXPIRES."; | |||
| } | } | |||
| leaf log-sync-interval { | leaf log-sync-interval { | |||
| type int8; | type int8; | |||
| description | description | |||
| "The base-2 logarithm of the mean SyncInterval | "The base-2 logarithm of the mean SyncInterval | |||
| for multicast messages. The rates for unicast | for multicast messages. The rates for unicast | |||
| transmissions are negotiated separately on a per-port | transmissions are negotiated separately on a per-port | |||
| basis and are not constrained by this attribute."; | basis and are not constrained by this attribute."; | |||
| } | } | |||
| leaf delay-mechanism { | leaf delay-mechanism { | |||
| type delay-mechanism-enumeration; | type delay-mechanism-enumeration; | |||
| description | description | |||
| "The propagation delay measuring option used by the | "The propagation delay measuring option used by the | |||
| port in computing meanPathDelay."; | port in computing meanPathDelay."; | |||
| } | } | |||
| leaf log-min-pdelay-req-interval { | leaf log-min-pdelay-req-interval { | |||
| type int8; | type int8; | |||
| description | description | |||
| "The base-2 logarithm of the | "The base-2 logarithm of the | |||
| minPdelayReqInterval (minimum permitted mean time | minPdelayReqInterval (minimum permitted mean time | |||
| interval between successive Pdelay_Req messages)."; | interval between successive Pdelay_Req messages)."; | |||
| } | } | |||
| leaf version-number { | leaf version-number { | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "The PTP version in use on the port."; | "The PTP version in use on the port."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container transparent-clock-default-ds { | ||||
| container transparent-clock-default-ds { | description | |||
| description | "The members of the transparentClockDefault data set (see | |||
| "The members of the transparentClockDefault data set (see | IEEE Std 1588-2008 subclause 8.3.2)."; | |||
| IEEE Std 1588-2008 subclause 8.3.2)."; | leaf clock-identity { | |||
| type clock-identity-type; | ||||
| leaf clock-identity { | config false; | |||
| type clock-identity-type; | description | |||
| config false; | "The clockIdentity of the transparent clock."; | |||
| description | } | |||
| "The clockIdentity of the transparent clock."; | leaf number-ports { | |||
| } | type uint16; | |||
| description | ||||
| leaf number-ports { | "The number of PTP ports on the transparent clock."; | |||
| type uint16; | } | |||
| description | leaf delay-mechanism { | |||
| "The number of PTP ports on the transparent clock."; | type delay-mechanism-enumeration; | |||
| } | description | |||
| "The propagation delay measuring option | ||||
| leaf delay-mechanism { | used by the transparent clock."; | |||
| type delay-mechanism-enumeration; | } | |||
| description | leaf primary-domain { | |||
| "The propagation delay measuring option | type uint8; | |||
| used by the transparent clock."; | default "0"; | |||
| } | description | |||
| "The domainNumber of the primary syntonization domain (see | ||||
| leaf primary-domain { | IEEE Std 1588-2008 subclause 10.1)."; | |||
| type uint8; | } | |||
| default 0; | } | |||
| description | list transparent-clock-port-ds-list { | |||
| "The domainNumber of the primary syntonization domain (see | key "port-number"; | |||
| IEEE Std 1588-2008 subclause 10.1)."; | description | |||
| } | "List of transparentClockPort data sets of the transparent | |||
| } | clock (see IEEE Std 1588-2008 subclause 8.3.3)."; | |||
| leaf port-number { | ||||
| list transparent-clock-port-ds-list { | type uint16; | |||
| key "port-number"; | description | |||
| description | "Port number. | |||
| "List of transparentClockPort data sets of the transparent | The data sets (i.e., information model) of IEEE Std | |||
| clock (see IEEE Std 1588-2008 subclause 8.3.3)."; | 1588-2008 specify a member | |||
| transparentClockPortDS.portIdentity, which uses a typed | ||||
| leaf port-number { | struct with members clockIdentity and portNumber. | |||
| type uint16; | ||||
| description | ||||
| "Port number. | ||||
| The data sets (i.e., information model) of IEEE Std | ||||
| 1588-2008 specify a member | ||||
| transparentClockPortDS.portIdentity, which uses a typed | ||||
| struct with members clockIdentity and portNumber. | ||||
| In this YANG data model, portIdentity is not modeled in | ||||
| the transparent-clock-port-ds-list. However, its | ||||
| members are provided as follows: | ||||
| portIdentity.portNumber is provided as this leaf member | ||||
| in transparent-clock-port-ds-list and | ||||
| portIdentity.clockIdentity is provided as the | ||||
| clock-identity leaf in transparent-clock-default-ds | ||||
| (i.e., ../../transparent-clock-default-ds/clock- | ||||
| identity)."; | ||||
| } | ||||
| leaf log-min-pdelay-req-interval { | ||||
| type int8; | ||||
| description | ||||
| "The logarithm to the base 2 of the | ||||
| minPdelayReqInterval (minimum permitted mean time | ||||
| interval between successive Pdelay_Req messages)."; | ||||
| } | ||||
| leaf faulty-flag { | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "When set to true, the port is faulty."; | ||||
| } | ||||
| leaf peer-mean-path-delay { | ||||
| type time-interval-type; | ||||
| default 0; | ||||
| description | ||||
| "An estimate of the current one-way propagation delay | ||||
| on the link when the delayMechanism is P2P; otherwise, | ||||
| it is zero."; | ||||
| } | ||||
| In this YANG data model, portIdentity is not modeled in | ||||
| the transparent-clock-port-ds-list. However, its | ||||
| members are provided as follows: | ||||
| portIdentity.portNumber is provided as this leaf member | ||||
| in transparent-clock-port-ds-list and | ||||
| portIdentity.clockIdentity is provided as the | ||||
| clock-identity leaf in transparent-clock-default-ds | ||||
| (i.e., ../../transparent-clock-default-ds/clock- | ||||
| identity)."; | ||||
| } | ||||
| leaf log-min-pdelay-req-interval { | ||||
| type int8; | ||||
| description | ||||
| "The logarithm to the base 2 of the | ||||
| minPdelayReqInterval (minimum permitted mean time | ||||
| interval between successive Pdelay_Req messages)."; | ||||
| } | ||||
| leaf faulty-flag { | ||||
| type boolean; | ||||
| default "false"; | ||||
| description | ||||
| "When set to true, the port is faulty."; | ||||
| } | ||||
| leaf peer-mean-path-delay { | ||||
| type time-interval-type; | ||||
| default "0"; | ||||
| description | ||||
| "An estimate of the current one-way propagation delay | ||||
| on the link when the delayMechanism is P2P; otherwise, | ||||
| it is zero."; | ||||
| } | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| End of changes. 65 change blocks. | ||||
| 162 lines changed or deleted | 101 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||