anchor.diff:  endfunction
   
   typedef struct {
  -    Bit#(4) mcast_grp;
  -    Bit#(4) egress_rid;
  -    Bit#(16) mcast_hash;
  -    Bit#(32) lf_field_list;
  -} IntrinsicMetadataT deriving (Bits, Eq);
  -
  -instance DefaultValue#(IntrinsicMetadataT);
  -defaultValue=
  -IntrinsicMetadataT {
  -    mcast_grp: 0,
  -    egress_rid: 0,
  -    mcast_hash: 0,
  -    lf_field_list: 0
  -};
  -endinstance
  -
  -instance FShow#(IntrinsicMetadataT);
  -    function Fmt fshow(IntrinsicMetadataT p);
  -        return $format("IntrinsicMetadataT: mcast_grp=%h, egress_rid=%h, mcast_hash=%h, lf_field_list=%h" , p.mcast_grp, p.egress_rid, p.mcast_hash, p.lf_field_list);
  -    endfunction
  -endinstance
  -
  -function IntrinsicMetadataT extract_intrinsic_metadata(Bit#(56) data);
  -    Vector#(56, Bit#(1)) dataVec=unpack(data);
  -    Vector#(4, Bit#(1)) mcast_grp = takeAt(0, dataVec);
  -    Vector#(4, Bit#(1)) egress_rid = takeAt(4, dataVec);
  -    Vector#(16, Bit#(1)) mcast_hash = takeAt(8, dataVec);
  -    Vector#(32, Bit#(1)) lf_field_list = takeAt(24, dataVec);
  -    IntrinsicMetadataT intrinsic_metadata_t = defaultValue;
  -    intrinsic_metadata_t.mcast_grp = pack(mcast_grp);
  -    intrinsic_metadata_t.egress_rid = pack(egress_rid);
  -    intrinsic_metadata_t.mcast_hash = pack(mcast_hash);
  -    intrinsic_metadata_t.lf_field_list = pack(lf_field_list);
  -    return intrinsic_metadata_t;
  -endfunction
  -
  -typedef struct {
  -    Bit#(8) msgtype;
  -    Bit#(16) inst;
  -    Bit#(8) round;
  -    Bit#(8) vround;
  -    Bit#(64) acceptor;
  -    Bit#(512) value;
  +    Bit#(32) inst;
  +    Bit#(16) rnd;
  +    Bit#(16) vrnd;
  +    Bit#(32) acptid;
  +    Bit#(16) msgtype;
  +    Bit#(256) paxosval;
   } PaxosT deriving (Bits, Eq);
   
   instance DefaultValue#(PaxosT);
   defaultValue=
   PaxosT {
  +    inst: 0,
  +    rnd: 0,
  +    vrnd: 0,
  +    acptid: 0,
       msgtype: 0,
  -    inst: 0,
  -    round: 0,
  -    vround: 0,
  -    acceptor: 0,
  -    value: 0
  +    paxosval: 0
   };
   endinstance
   
   instance FShow#(PaxosT);
       function Fmt fshow(PaxosT p);
  -        return $format("PaxosT: msgtype=%h, inst=%h, round=%h, vround=%h, acceptor=%h, value=%h" , p.msgtype, p.inst, p.round, p.vround, p.acceptor, p.value);
  -    endfunction
  -endinstance
  -
  -function PaxosT extract_paxos(Bit#(616) data);
  -    Vector#(616, Bit#(1)) dataVec=unpack(data);
  -    Vector#(8, Bit#(1)) msgtype = takeAt(0, dataVec);
  -    Vector#(16, Bit#(1)) inst = takeAt(8, dataVec);
  -    Vector#(8, Bit#(1)) round = takeAt(24, dataVec);
  -    Vector#(8, Bit#(1)) vround = takeAt(32, dataVec);
  -    Vector#(64, Bit#(1)) acceptor = takeAt(40, dataVec);
  -    Vector#(512, Bit#(1)) value = takeAt(104, dataVec);
  +        return $format("PaxosT: inst=%h, rnd=%h, vrnd=%h, acptid=%h, msgtype=%h, paxosval=%h" , p.inst, p.rnd, p.vrnd, p.acptid, p.msgtype, p.paxosval);
  +    endfunction
  +endinstance
  +
  +function PaxosT extract_paxos(Bit#(368) data);
  +    Vector#(368, Bit#(1)) dataVec=unpack(data);
  +    Vector#(32, Bit#(1)) inst = takeAt(0, dataVec);
  +    Vector#(16, Bit#(1)) rnd = takeAt(32, dataVec);
  +    Vector#(16, Bit#(1)) vrnd = takeAt(48, dataVec);
  +    Vector#(32, Bit#(1)) acptid = takeAt(64, dataVec);
  +    Vector#(16, Bit#(1)) msgtype = takeAt(96, dataVec);
  +    Vector#(256, Bit#(1)) paxosval = takeAt(112, dataVec);
       PaxosT paxos_t = defaultValue;
  +    paxos_t.inst = pack(inst);
  +    paxos_t.rnd = pack(rnd);
  +    paxos_t.vrnd = pack(vrnd);
  +    paxos_t.acptid = pack(acptid);
       paxos_t.msgtype = pack(msgtype);
  -    paxos_t.inst = pack(inst);
  -    paxos_t.round = pack(round);
  -    paxos_t.vround = pack(vround);
  -    paxos_t.acceptor = pack(acceptor);
  -    paxos_t.value = pack(value);
  +    paxos_t.paxosval = pack(paxosval);
       return paxos_t;
   endfunction
   
  
positive.code:     endfunction
  endinstance
  
  function IngressMetadataT extract_ingress_metadata(Bit#(8) data);
      Vector#(8, Bit#(1)) dataVec=unpack(data);
      Vector#(8, Bit#(1)) round = takeAt(0, dataVec);
      IngressMetadataT ingress_metadata_t = defaultValue;
      ingress_metadata_t.round = pack(round);
      return ingress_metadata_t;
  
negative.code:         Vector#(112, Bit#(1)) unparsed = takeAt(160, dataVec);
          let nextState = compute_next_state(ipv4.protocol);
          $display("Goto state %h", nextState);
          if (nextState == StateParseUdp) begin
              unparsed_parse_udp_fifo.enq(pack(unparsed));
          end
  