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. |