Subject: [rohc] FN updates

From: Raffles <[email-masked]>
Date: Thu, 02 Feb 2006 22:33:52 +0000

Hi All,

It's been a bit quiet here recently, but I (finally) have an update for 
the FN to present to you. This is basically the result of implementing 
as many of the WGLC changes as possible, as discussed previously on this 
list.

Before I go and do the full updates needed to the draft itself I thought 
it would be wise to post a sample of the post WGLC notation. The changes 
are entirely cosmetic, but the appearance of  the new FN is nonetheless 
considerably different from the old notation. In particular it is 
hopefully much clearer than it used to be.

Please could I have feedback as to whether the below syntax is 
acceptable as a basis for the response to the WGLC comments, and also 
whether you're generally happy to go with this?

If everybody is happy then I'll update the FN draft accordingly (may 
take a few weeks) and work with the TCP profile I-D authors to update 
the profile to the new syntax.

Thanks in advance

Raffles

PS Note that the controversial field length annotations have been 
removed. This is on the basis that an FN-to-boxNotation compiler is 
currently under development, and whilst in it's early stages, can 
already produce ASCII diagrams of simple profiles. However these are 
missing from the below since the tool isn't yet complete, except for in 
the control fields, which I've left in to illustrate what it would look 
like if we left the field length annotations in (hope that makes sense).

////////////////////////////////////////////
// Constants
////////////////////////////////////////////

IP_ID_BEHAVIOR_SEQUENTIAL         = 0;
IP_ID_BEHAVIOR_SEQUENTIAL_SWAPPED = 1;
IP_ID_BEHAVIOR_RANDOM             = 2;
IP_ID_BEHAVIOR_ZERO               = 3;

////////////////////////////////////////////
// Global control fields
////////////////////////////////////////////
// The control fields here reside in the context and are persistent
// between packets. Some of these (such as the sequence number
// scaling/residue are never transmitted explicitly, but are inferred
// from other values.
//
CONTROL {
  ecn_used;            //[ 1 ]
  msn;                 //[ 16 ]
  ip_inner_ecn;        //[ 2 ]
  seq_number_scaled;   //[ 32 ]
  seq_number_residue;  //[ 32 ]
  ack_stride;          //[ 16 ]
  ack_number_scaled;   //[ 16 ]
  ack_number_residue;  //[ 16 ]
}

////////////////////////////////////////////
// External Encoding Methods
////////////////////////////////////////////
inferred_ip_v4_header_checksum "defined in Section 6.4.1"
inferred_mine_header_checksum  "defined in Section 6.4.2"
inferred_ip_v4_length          "defined in Section 6.4.3"
inferred_ip_v6_length          "defined in Section 6.4.4"
inferred_offset                "defined in Section 6.4.5"
list_tcp_options               "defined in Section 6.3.3"

////////////////////////////////////////////
// General structures
////////////////////////////////////////////

static_or_irreg32(flag)
{
  UNCOMPRESSED {
    field;
  }

  COMPRESSED irreg_enc {
    field ::= irregular(32);
    ENFORCE(flag == 1);
  }

  COMPRESSED static_enc {
    field ::= static;
    ENFORCE(flag == 0);
  }
}

variable_length_32_enc(flag)
{
  UNCOMPRESSED {
    field;
  }
 
  COMPRESSED not_present {
    field ::= static;
    ENFORCE(flag == 0);
  }

  COMPRESSED 8_bit {
    field ::= lsb(8, 63);
    ENFORCE(flag == 1);
  }

  COMPRESSED 16_bit {
    field ::= lsb(16, 16383);
    ENFORCE(flag == 2);
  }

  COMPRESSED 32_bit {
    field ::= irregular(32);
    ENFORCE(flag == 3);
  }
}

////////////////////////////////////////////
// IPv6 Destination options header
////////////////////////////////////////////

ip_dest_opt
{
  UNCOMPRESSED {
    next_header;
    length;
    value;
  }
 
  DEFAULT {
    length      ::= static;
    next_header ::= static;
    value       ::= static;
  }

  COMPRESSED dest_opt_static {
    next_header ::= irregular(8);
    length      ::= irregular(8);
  }

  COMPRESSED dest_opt_dynamic {
    value ::= irregular(length.UVALUE*64+48);
  }

  COMPRESSED dest_opt_replicate_0 {
    discriminator ::= '00000000';
  }

  COMPRESSED dest_opt_replicate_1 {
    discriminator ::= '10000000';
    length        ::= irregular(8);
    value         ::= irregular(length.UVALUE * 64 + 48);
  }
}

_______________________________________________
Rohc mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/rohc

---

From: Raffles <[email-masked]>
Date: Wed, 08 Feb 2006 11:13:20 +0000

I sent the below post about a week ago! Is anybody else experiencing 
delays in their posts appearing on the list? For the record it's Weds 
8th Feb today!

Cheers

Raffles

---

From: "Lars-Erik Jonsson" <[email-masked]>
Date: Wed, 8 Feb 2006 12:22:42 +0100

If you send messages to the list from an e-mail address not subscribed,
your message will have to get approved by the list admin (me), and this
is usually done once a week.

I am not sure this is the reason your mail got delayed though.

/L-E