Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

Re: [RPRWG] Protected header field changes



Leon,

I cannot provide any sort of official response, since that would
be a function of a working group maintenance group.

With that disclaimer aside, I can give a few personal opinions
on how I could interpret the text of interest. You may want to
forward this to the 802.17 maintenance group.

>> I was reviewing the draft and could not understand the HEC
>> updates due to ps change (clause E.1.3).
>> Specifically: What is c16 ? ...

The c16 value equals the change of the headerCrc value due to the
ps bit being set. As examples:

  crc0 = HeaderHecCompute(frameWithPsEqual0);
  crc1 = HeaderHecCompute(frameWithPsEqual1);
  c16 = crc0 ^ crc1;
  Where:
    frameWithPsEqual0 has a ps value of 0
    frameWithPsEqual1 has a ps value of 1
    frameWithPsEqual0 and frameWithPsEqual1 are otherwise equal

Since the CRC computation is a linear function, it doesn't really
matter what are the contents of the remainder of the frame.

>> Also in the same figure: How is the HeadCrc16 function defined ?

1) I believe that there is a bug:
   Change:
     crcB = HeadCrc16(c)
   ==>
     crcB = HeadCrc16(d)

2) The HeadCrc16(c) value and C16 are similarly defined:

  crcX = HeaderHecCompute(frameWithTtlEqual0);
  crcY = HeaderHecCompute(frameWithTtlEqualD);
  HeaderCrc(d) = crcX ^ crcY;
  Where:
    frameWithTtlEqual0 has a TTL value of zero
    frameWithTtlEqualD has a TTL value of 'd'
    frameWithTtlEqual0 and frameWithTtlEqual1 are otherwise equal

With a bit of creativity, one can realize that there are only 8 possible
d values, and hence the HeadCrc16(d) value is simple:

  HeadCrc16(d) = HeadCrc[Ones(d)]
  Where:
    HeadCrc[x] is an 8-element array indexed by x
    Ones(d) is the number of consecutive right-justified ones (the borrow
bits)

In fact, if other folks had realized this (or were willing to listen
to folks that had realized this), we probably could have avoided
the funky parity bit in the fairness frame. With this simplification, the
cost of computing parity and a differential CRC are about the same.

DVJ


David V. James
3180 South Ct
Palo Alto, CA 94306
Home: +1.650.494.0926
      +1.650.856.9801
Cell: +1.650.954.6906
Fax:  +1.360.242.5508
Base: dvj@alum.mit.edu





>> -----Original Message-----
>> From: Leon Bruckman [mailto:leonb@corrigent.com]
>> Sent: Thursday, May 27, 2004 10:41 AM
>> To: 'David V James'
>> Subject: Protected header field changes
>>
>>
>> Hi David,
>> I was reviewing the draft and could not understand the HEC
>> updates due to ps
>> change (clause E.1.3).
>> Specifically: What is c16 ? The draft says: "the bitwise changes
>> in the hec
>> value due to a changed ps bit", but it is not clear to me what does this
>> mean.
>>
>> Also in the same figure: How is the HeadCrc16 function defined ?
>>
>> Best regards,
>> Leon
>>