Subject: [rohc] TCP profile packet formats - proposed change

From: "Kristofer Sandlund (LU/EAB)" <[email-masked]>
Date: Mon, 12 Sep 2005 16:27:10 +0200

As per the Mark's observation that format 7 is probably redundant,
I've done a test run of removing this one, dividing up its discriminator
space to get some more bits to other formats.
Attached to this mail is a diff to the XML is the CVS so that you can
verify what I'm planning to do (I have not checked in yet).
I haven't yet renumbered formats 8-10 since that diff would be a lot
harder to read, but I'll do that in case these changes are accepted.

Basically, what I've done is:
RND -
	* Removed format 7
	* Swapped discriminators 7<->9<->10, which yeilds one bit for
	format 10 and 2 bits for format 9, which is used for window
      and sequence number respectively
      * Joined the free discriminator with 1&8 so both get one extra bit
	for sequence number and ack number respectively (I'm not very fond
	of the fact that this made the fields 17 bits wide, but that cannot
	be helped, the option is to leave those discriminators empty, and 
	that doesn't seem that attractive)
	* Moved some fields in the affected packet formats to get them
	to be in consecutive order

SEQ -
	* Removed format 7
	* Swapped discriminators 7<->8<->2, and take the free discriminator
	and merge with format 8, so that we get one extra bit of window

Does this seem like the way to go, or is there anyone who has develped 
feelings for format 7 so we have to keep it? :)
Of course other suggestions for the use of the discriminators we're
freeing up can be considered if anyone has suggestions.

BR,
	Kristofer
cvs diff: Diffing .
Index: draft-ietf-rohc-tcp.xml
===================================================================
RCS file: /home/rn/cvs-ietf/fn/draft-ietf-rohc-tcp.xml,v
retrieving revision 1.7
diff -r1.7 draft-ietf-rohc-tcp.xml
4269,4270c4269,4270
<    co_format_rnd_1 = discriminator, %[ 8 ]
<                      seq_number,    %[ 16 ]
---
>    co_format_rnd_1 = discriminator, %[ 7 ]
>                      seq_number,    %[ 17 ]
4277c4277
<       discriminator   ::= '10111110';
---
>       discriminator   ::= '1011110';
4287c4287
< % | 1   0   1   1   1   1   1   0 |
---
> % | 1   0   1   1   1   1   0 |S..|
4289c4289
< % |              SN...            |
---
> % |             ..SN...           |
4444,4475d4443
<    % Send sequence number and window
<    %
<    co_format_rnd_7 = discriminator, %[ 4 ]
<                      seq_number,    %[ 14 ]
<                      window,        %[ 14 ]
<                      msn,           %[ 4 ]
<                      psh_flag,      %[ 1 ]
<                      header_crc,    %[ 3 ]
<    {
<       let ((ip_id_behavior:uncomp_value == IP_ID_BEHAVIOR_RANDOM) ||
<            (ip_id_behavior:uncomp_value == IP_ID_BEHAVIOR_ZERO));
<       discriminator   ::= '1010';
<       msn             ::= lsb(4, 4);
<       header_crc      ::= crc3 (this:uncomp_value,
<                                 this:uncomp_length);
<       psh_flag        ::= irregular (1);
<       seq_number      ::= lsb(14, 8191);
<       window          ::= lsb(14, 8191);
<    };
< 
< % +---+---+---+---+---+---+---+---+
< % | 1   0   1   0 |      SN...    |
< % +===+===+===+===+===+===+===+===+
< % |              SN...
< % +---+---+---+---+---+---+---+---+
< % | ...SN |     WINDOW...         |
< % +---+---+---+---+---+---+---+---+
< % |            WINDOW             |
< % +---+---+---+---+---+---+---+---+
< % |      MSN      |PSH|    CRC    |
< % +---+---+---+---+---+---+---+---+
< 
4479,4480c4447,4448
<    co_format_rnd_8 = discriminator, %[ 8 ]
<                      ack_number,    %[ 16 ]
---
>    co_format_rnd_8 = discriminator, %[ 7 ]
>                      ack_number,    %[ 17 ]
4488c4456
<       discriminator   ::= '10111111';
---
>       discriminator   ::= '1011111';
4493c4461
<       ack_number      ::= lsb(16, 16383);
---
>       ack_number      ::= lsb(17, 32767);
4498c4466
< % | 1   0   1   1   1   1   1   1 |
---
> % | 1   0   1   1   1   1   1 |A..|
4501c4469
< % +            ACK_SN             +
---
> % +           ..ACK_SN            +
4514c4482
<    co_format_rnd_9 = discriminator,     %[ 6 ]
---
>    co_format_rnd_9 = discriminator,     %[ 4 ]
4523c4491
<       discriminator       ::= '101110';
---
>       discriminator       ::= '1010';
4528c4496
<       window              ::= lsb(14, 8191);
---
>       window              ::= irregular(16);
4534c4502
< % | 1   0   1   1   1   0 |SN_SC..|
---
> % | 1   0   1   0 |   SN_SCALED   |
4536,4538c4504,4506
< % |..SN_SC|      WINDOW...        |
< % +---+---+---+---+---+---+---+---+
< % |           ...WINDOW           |
---
> % |                               |
> % +            WINDOW             +
> % |                               |
4548,4549c4516,4517
<    co_format_rnd_10 = discriminator, %[ 7 ]
<                       ecn_used,      %[ 1 ]
---
>    co_format_rnd_10 = discriminator, %[ 6 ]
>                       rsf_flags,     %[ 2 ]
4555,4556c4523,4524
<                       rsf_flags,     %[ 2 ]
<                       seq_number,    %[ 14 ]
---
>                       ecn_used,      %[ 1 ]
>                       seq_number,    %[ 15 ]
4562c4530
<       discriminator  ::= '1011110';
---
>       discriminator  ::= '101110';
4575c4543
<       seq_number     ::= lsb(14, 8191);
---
>       seq_number     ::= lsb(15, 16383);
4580c4548
< % | 1   0   1   1   1   1   1 |ECN|
---
> % | 1   0   1   1   1   0 |  RSF  |
4586c4554
< % |  RSF  |        SN...          |
---
> % |ECN|         SN...             |
4644c4612
<       discriminator    ::= '11001';
---
>       discriminator    ::= '11010';
4815,4854d4782
<    % Send sequence number and window
<    %
<    co_format_seq_7 = discriminator, %[ 5 ]
<                      seq_number,    %[ 14 ]
<                      ip_id,         %[ 5 ]
<                      window,        %[ 16 ]
<                      msn,           %[ 4 ]
<                      psh_flag,      %[ 1 ]
<                      header_crc,    %[ 3 ]
<    {
<       let ((ip_id_behavior:uncomp_value == IP_ID_BEHAVIOR_SEQUENTIAL)
<            ||
<            (ip_id_behavior:uncomp_value ==
<             IP_ID_BEHAVIOR_SEQUENTIAL_SWAPPED));
<       discriminator    ::= '11010';
<       msn              ::= lsb(4, 4);
<       ip_id            ::= ip_id_lsb (ip_id_behavior:uncomp_value, 5,
<                                       3);
<       header_crc       ::= crc3 (this:uncomp_value,
<                                  this:uncomp_length);
<       psh_flag         ::= irregular (1);
<       seq_number       ::= lsb(14, 8191);
<       window           ::= irregular(16);
<    };
< 
< % +---+---+---+---+---+---+---+---+
< % | 1   1   0   1   0 |    SN..   |
< % +===+===+===+===+===+===+===+===+
< % |            ..SN..             |
< % +---+---+---+---+---+---+---+---+
< % |    ..SN   |       IP-ID       |
< % +---+---+---+---+---+---+---+---+
< % |                               |
< % +            WINDOW             +
< % |                               |
< % +---+---+---+---+---+---+---+---+
< % |      MSN      |PSH|    CRC    |
< % +---+---+---+---+---+---+---+---+
< 
< 
4857,4858c4785,4786
<    co_format_seq_8 = discriminator, %[ 5 ]
<                      window,        %[ 14 ]
---
>    co_format_seq_8 = discriminator, %[ 4 ]
>                      window,        %[ 15 ]
4869c4797
<       discriminator    ::= '11000';
---
>       discriminator    ::= '1100';
4877c4805
<       window           ::= lsb(14, 8191);
---
>       window           ::= lsb(15, 16383);
4881c4809
< % | 1   1   0   0   0 |  WINDOW.. |
---
> % | 1   1   0   0 |    WINDOW..   |
_______________________________________________
Rohc mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/rohc