On Wed, Oct 12, 2011 at 6:42 PM, Guy
        Harris 
<guy@xxxxxxxxxxxx>
        wrote:
        
          (Paging LTE experts here....)
          
          At least as I read RFC 3095:
          
            UOR-2-TS
          
              0   1   2   3   4   5   6   7
            +---+---+---+---+---+---+---+---+
            | 1   1   0 |        TS         |
            +===+===+===+===+===+===+===+===+
            |T=1| M |          SN           |
            +---+---+---+---+---+---+---+---+
            | X |            CRC            |
            +---+---+---+---+---+---+---+---+
          
          neither the old code nor the new code are correct - the "M"
          bit is in the octet after the TS field.
          
          I don't see anything obvious in 3GPP TS 36.323 itself that
          says the format is different; does something in a later RFC
          specify something different?
        
        
          Guy, I'm sure to be missing something, but I don't see what is
          wrong with the current code, pasted here:
          
              if (T) {
                  /* UOR-2-TS format */
          
                  /* TS */
                  guint8 ts = tvb_get_guint8(tvb, offset) & 0x1f;
                  proto_tree_add_uint(tree, hf_pdcp_lte_rohc_ts, tvb,
          offset, 1, ts);
                  offset++;
          
                  /* Large CID */
                  if (p_pdcp_info->large_cid_present) {
                      offset = dissect_large_cid(tree, tvb, offset);
                  }
          
                  /* m */
                  proto_tree_add_item(tree, hf_pdcp_lte_rohc_m, tvb,
          offset, 1, ENC_BIG_ENDIAN);
          
                  /* TODO: */
              }
           
          
          'offset' is incremented after TS is dissected.  The strange
          +====+=====+ notation indicates that if we have a large CID,
          thats where it appears.
          hf_pdcp_lte_rohc_m has the bitmask 0x40, which is OK.
          
          Note that the ROHC support in this file has been superceded by
          packet-rohc.c.  Its been on my TODO list for a long time that
          I rip out  this implementation and call the one in
          packet-rohc.c instead (after carefully checking that
          everything here was already there or merge it across).  As far
          as I know, RFC 3095 is used as-is in PDCP (note that there are
          corrections/clarifications for this RFC, don't remember where)