| ietf-schc@2023-01-28-preformat.yang | ietf-schc@2023-01-28.yang | |||
|---|---|---|---|---|
| skipping to change at line 47 ¶ | skipping to change at line 47 ¶ | |||
| *************************************************************** | *************************************************************** | |||
| Generic data model for the Static Context Header Compression | Generic data model for the Static Context Header Compression | |||
| rule for SCHC, based on RFCs 8724 and 8824. Including | rule for SCHC, based on RFCs 8724 and 8824. Including | |||
| compression, no compression, and fragmentation rules. | compression, no compression, and fragmentation rules. | |||
| This module is a YANG data model for SCHC rules (RFCs 8724 and | This module is a YANG data model for SCHC rules (RFCs 8724 and | |||
| 8824). RFC 8724 describes compression rules in an abstract | 8824). RFC 8724 describes compression rules in an abstract | |||
| way through a table. | way through a table. | |||
| |-----------------------------------------------------------------| | |-----------------------------------------------------------------| | |||
| | (FID) Rule 1 | | | (FID) Rule 1 | | |||
| |+-------+--+--+--+------------+-----------------+---------------+| | |+-------+--+--+--+------------+-----------------+---------------+| | |||
| ||Field 1|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|| | ||Field 1|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|| | |||
| |+-------+--+--+--+------------+-----------------+---------------+| | |+-------+--+--+--+------------+-----------------+---------------+| | |||
| ||Field 2|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|| | ||Field 2|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|| | |||
| |+-------+--+--+--+------------+-----------------+---------------+| | |+-------+--+--+--+------------+-----------------+---------------+| | |||
| ||... |..|..|..| ... | ... | ... || | ||... |..|..|..| ... | ... | ... || | |||
| |+-------+--+--+--+------------+-----------------+---------------+| | |+-------+--+--+--+------------+-----------------+---------------+| | |||
| ||Field N|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|| | ||Field N|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|| | |||
| |+-------+--+--+--+------------+-----------------+---------------+| | |+-------+--+--+--+------------+-----------------+---------------+| | |||
| |-----------------------------------------------------------------| | |-----------------------------------------------------------------| | |||
| This module specifies a global data model that can be used for | This module specifies a global data model that can be used for | |||
| rule exchanges or modification. It specifies both the data | rule exchanges or modification. It specifies both the data | |||
| model format and the global identifiers used to describe some | model format and the global identifiers used to describe some | |||
| operations in fields. | operations in fields. | |||
| This data model applies to both compression and fragmentation."; | This data model applies to both compression and fragmentation."; | |||
| revision 2023-01-28 { | revision 2023-01-28 { | |||
| description | description | |||
| "Initial version from RFC 9363."; | "Initial version from RFC 9363."; | |||
| skipping to change at line 759 ¶ | skipping to change at line 759 ¶ | |||
| description | description | |||
| "Field ID generic type."; | "Field ID generic type."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation"; | Compression and Fragmentation"; | |||
| } | } | |||
| typedef fl-type { | typedef fl-type { | |||
| type union { | type union { | |||
| type uint64 { | type uint64 { | |||
| range 1..max; | range "1..max"; | |||
| } | } | |||
| type identityref { | type identityref { | |||
| base fl-base-type; | base fl-base-type; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "Field Length is either a positive integer expressing the | "Field Length is either a positive integer expressing the | |||
| size in bits or a function defined through an identityref."; | size in bits or a function defined through an identityref."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| skipping to change at line 986 ¶ | skipping to change at line 986 ¶ | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation"; | Compression and Fragmentation"; | |||
| } | } | |||
| grouping compression-rule-entry { | grouping compression-rule-entry { | |||
| description | description | |||
| "These entries define a compression entry (i.e., a line), | "These entries define a compression entry (i.e., a line), | |||
| as defined in RFC 8724. | as defined in RFC 8724. | |||
| +-------+--+--+--+------------+-----------------+---------------+ | +-------+--+--+--+------------+-----------------+---------------+ | |||
| |Field 1|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act| | |Field 1|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act| | |||
| +-------+--+--+--+------------+-----------------+---------------+ | +-------+--+--+--+------------+-----------------+---------------+ | |||
| An entry in a compression rule is composed of 7 elements: | An entry in a compression rule is composed of 7 elements: | |||
| - Field ID: the header field to be compressed | - Field ID: the header field to be compressed | |||
| - Field Length : either a positive integer or a function | - Field Length : either a positive integer or a function | |||
| - Field Position: a positive (and possibly equal to 0) | - Field Position: a positive (and possibly equal to 0) | |||
| integer | integer | |||
| - Direction Indicator: an indication in which direction | - Direction Indicator: an indication in which direction | |||
| the compression and decompression process is effective | the compression and decompression process is effective | |||
| - Target Value: a value against which the header field is | - Target Value: a value against which the header field is | |||
| compared | compared | |||
| skipping to change at line 1057 ¶ | skipping to change at line 1057 ¶ | |||
| "A list of values to compare with the header field value. | "A list of values to compare with the header field value. | |||
| If Target Value is a singleton, position must be 0. | If Target Value is a singleton, position must be 0. | |||
| For use as a matching list for the mo-match-mapping Matching | For use as a matching list for the mo-match-mapping Matching | |||
| Operator, index should take consecutive values starting | Operator, index should take consecutive values starting | |||
| from 0."; | from 0."; | |||
| } | } | |||
| leaf matching-operator { | leaf matching-operator { | |||
| type schc:mo-type; | type schc:mo-type; | |||
| must "../target-value or derived-from-or-self(., | must "../target-value or derived-from-or-self(., | |||
| 'mo-ignore')" { | 'mo-ignore')" { | |||
| error-message | error-message "mo-equal, mo-msb, and mo-match-mapping need | |||
| "mo-equal, mo-msb, and mo-match-mapping need target-value"; | target-value"; | |||
| description | description | |||
| "target-value is not required for mo-ignore."; | "target-value is not required for mo-ignore."; | |||
| } | } | |||
| must "not (derived-from-or-self(., 'mo-msb')) or | must "not (derived-from-or-self(., 'mo-msb')) or | |||
| ../matching-operator-value" { | ../matching-operator-value" { | |||
| error-message "mo-msb requires length value"; | error-message "mo-msb requires length value"; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "MO: Matching Operator."; | "MO: Matching Operator."; | |||
| skipping to change at line 1090 ¶ | skipping to change at line 1090 ¶ | |||
| (a single argument, which is the number of most significant | (a single argument, which is the number of most significant | |||
| bits to be matched)."; | bits to be matched)."; | |||
| } | } | |||
| leaf comp-decomp-action { | leaf comp-decomp-action { | |||
| type schc:cda-type; | type schc:cda-type; | |||
| must "../target-value or | must "../target-value or | |||
| derived-from-or-self(., 'cda-value-sent') or | derived-from-or-self(., 'cda-value-sent') or | |||
| derived-from-or-self(., 'cda-compute') or | derived-from-or-self(., 'cda-compute') or | |||
| derived-from-or-self(., 'cda-appiid') or | derived-from-or-self(., 'cda-appiid') or | |||
| derived-from-or-self(., 'cda-deviid')" { | derived-from-or-self(., 'cda-deviid')" { | |||
| error-message | error-message "cda-not-sent, cda-lsb, and cda-mapping-sent | |||
| "cda-not-sent, cda-lsb, and cda-mapping-sent need | need target-value"; | |||
| target-value"; | ||||
| description | description | |||
| "target-value is not required for some CDA."; | "target-value is not required for some CDA."; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "CDA: Compression Decompression Action."; | "CDA: Compression Decompression Action."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation (see Section 7.4)"; | Compression and Fragmentation (see Section 7.4)"; | |||
| } | } | |||
| list comp-decomp-action-value { | list comp-decomp-action-value { | |||
| key "index"; | key "index"; | |||
| uses tv-struct; | uses tv-struct; | |||
| skipping to change at line 1208 ¶ | skipping to change at line 1206 ¶ | |||
| leaf l2-word-size { | leaf l2-word-size { | |||
| type uint8; | type uint8; | |||
| default "8"; | default "8"; | |||
| description | description | |||
| "Size, in bits, of the Layer 2 Word."; | "Size, in bits, of the Layer 2 Word."; | |||
| } | } | |||
| leaf direction { | leaf direction { | |||
| type schc:di-type; | type schc:di-type; | |||
| must "derived-from-or-self(., 'di-up') or | must "derived-from-or-self(., 'di-up') or | |||
| derived-from-or-self(., 'di-down')" { | derived-from-or-self(., 'di-down')" { | |||
| error-message | error-message "Direction for fragmentation rules are up or | |||
| "Direction for fragmentation rules are up or down."; | down."; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "MUST be up or down, bidirectional MUST NOT be used."; | "MUST be up or down, bidirectional MUST NOT be used."; | |||
| } | } | |||
| // SCHC Frag header format | // SCHC Frag header format | |||
| leaf dtag-size { | leaf dtag-size { | |||
| type uint8; | type uint8; | |||
| default "0"; | default "0"; | |||
| description | description | |||
| skipping to change at line 1286 ¶ | skipping to change at line 1284 ¶ | |||
| "Duration of one tick in microseconds: | "Duration of one tick in microseconds: | |||
| 2^ticks-duration/10^6 = 1.048s."; | 2^ticks-duration/10^6 = 1.048s."; | |||
| } | } | |||
| leaf ticks-numbers { | leaf ticks-numbers { | |||
| type uint16 { | type uint16 { | |||
| range "0..max"; | range "0..max"; | |||
| } | } | |||
| description | description | |||
| "Timer duration = ticks-numbers*2^ticks-duration / 10^6."; | "Timer duration = ticks-numbers*2^ticks-duration / 10^6."; | |||
| } | } | |||
| description | description | |||
| "Duration in seconds of the Inactivity Timer; 0 indicates | "Duration in seconds of the Inactivity Timer; 0 indicates | |||
| that the timer is disabled. | that the timer is disabled. | |||
| Allows a precision from microsecond to year by sending the | Allows a precision from microsecond to year by sending the | |||
| tick-duration value. For instance: | tick-duration value. For instance: | |||
| tick-duration / smallest value highest value | tick-duration / smallest value highest value | |||
| v | v | |||
| 20: 00y 000d 00h 00m 01s.048575<->00y 000d 19h 05m 18s.428159 | 20: 00y 000d 00h 00m 01s.048575<->00y 000d 19h 05m 18s.428159 | |||
| 21: 00y 000d 00h 00m 02s.097151<->00y 001d 14h 10m 36s.856319 | 21: 00y 000d 00h 00m 02s.097151<->00y 001d 14h 10m 36s.856319 | |||
| 22: 00y 000d 00h 00m 04s.194303<->00y 003d 04h 21m 13s.712639 | 22: 00y 000d 00h 00m 04s.194303<->00y 003d 04h 21m 13s.712639 | |||
| 23: 00y 000d 00h 00m 08s.388607<->00y 006d 08h 42m 27s.425279 | 23: 00y 000d 00h 00m 08s.388607<->00y 006d 08h 42m 27s.425279 | |||
| 24: 00y 000d 00h 00m 16s.777215<->00y 012d 17h 24m 54s.850559 | 24: 00y 000d 00h 00m 16s.777215<->00y 012d 17h 24m 54s.850559 | |||
| 25: 00y 000d 00h 00m 33s.554431<->00y 025d 10h 49m 49s.701119 | 25: 00y 000d 00h 00m 33s.554431<->00y 025d 10h 49m 49s.701119 | |||
| Note that the smallest value is also the incrementation step, | Note that the smallest value is also the incrementation | |||
| so the timer precision."; | step, so the timer precision."; | |||
| } | } | |||
| container retransmission-timer { | container retransmission-timer { | |||
| leaf ticks-duration { | leaf ticks-duration { | |||
| type uint8; | type uint8; | |||
| default "20"; | default "20"; | |||
| description | description | |||
| "Duration of one tick in microseconds: | "Duration of one tick in microseconds: | |||
| 2^ticks-duration/10^6 = 1.048s."; | 2^ticks-duration/10^6 = 1.048s."; | |||
| } | } | |||
| leaf ticks-numbers { | leaf ticks-numbers { | |||
| End of changes. 10 change blocks. | ||||
| 35 lines changed or deleted | 33 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||