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.