anchor.diff:      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);
  +function IngressMetadataT extract_ingress_metadata(Bit#(16) data);
  +    Vector#(16, Bit#(1)) dataVec=unpack(data);
  +    Vector#(16, Bit#(1)) round = takeAt(0, dataVec);
       IngressMetadataT ingress_metadata_t = defaultValue;
       ingress_metadata_t.round = pack(round);
       return ingress_metadata_t;
  
positive.code:         let data_current = packet_in_wire;
          let unparsed <- toGet(unparsed_parse_udp_fifo).get;
          Bit#(304) data = {data_current, unparsed};
          internal_fifo1.enq(data);
      endaction
      action
          let data_current = packet_in_wire;
          let data_delayed <- toGet(internal_fifo1).get;
          Bit#(432) data = {data_current, data_delayed};
          internal_fifo2.enq(data);
      endaction
      action
          let data_current = packet_in_wire;
          let data_delayed <- toGet(internal_fifo2).get;
          Bit#(560) data = {data_current, data_delayed};
          internal_fifo3.enq(data);
      endaction
      action
          let data_current = packet_in_wire;
          let data_delayed <- toGet(internal_fifo3).get;
          Bit#(688) data = {data_current, data_delayed};
          Vector#(688, Bit#(1)) dataVec = unpack(data);
          let paxos = extract_paxos(pack(takeAt(0, dataVec)));
          $display(fshow(paxos));
          parsed_paxos_fifo.enq(paxos.msgtype);
  
negative.code: typedef struct {
      Bit#(4) version;
      Bit#(8) trafficClass;
      Bit#(20) flowLabel;
      Bit#(16) payloadLen;
      Bit#(8) nextHdr;
      Bit#(8) hopLimit;
      Bit#(128) srcAddr;
      Bit#(128) dstAddr;
  } Ipv6T deriving (Bits, Eq);
  
  instance DefaultValue#(Ipv6T);
  defaultValue=
  Ipv6T {
      version: 0,
      trafficClass: 0,
      flowLabel: 0,
      payloadLen: 0,
      nextHdr: 0,
      hopLimit: 0,
      srcAddr: 0,
      dstAddr: 0};
  endinstance
  
  instance FShow#(Ipv6T);
      function Fmt fshow(Ipv6T p);
          return $format("Ipv6T: version=%h, trafficClass=%h, flowLabel=%h, payloadLen=%h, nextHdr=%h, hopLimit=%h, srcAddr=%h, dstAddr=%h" , p.version, p.trafficClass, p.flowLabel, p.payloadLen, p.nextHdr, p.hopLimit, p.srcAddr, p.dstAddr);
      endfunction
  endinstance
  
  function Ipv6T extract_ipv6(Bit#(320) data);
      Vector#(320, Bit#(1)) dataVec=unpack(data);
      Vector#(4, Bit#(1)) version = takeAt(0, dataVec);
      Vector#(8, Bit#(1)) trafficClass = takeAt(4, dataVec);
      Vector#(20, Bit#(1)) flowLabel = takeAt(12, dataVec);
      Vector#(16, Bit#(1)) payloadLen = takeAt(32, dataVec);
      Vector#(8, Bit#(1)) nextHdr = takeAt(48, dataVec);
      Vector#(8, Bit#(1)) hopLimit = takeAt(56, dataVec);
      Vector#(128, Bit#(1)) srcAddr = takeAt(64, dataVec);
      Vector#(128, Bit#(1)) dstAddr = takeAt(192, dataVec);
      Ipv6T ipv6_t = defaultValue;
      ipv6_t.version = pack(version);
      ipv6_t.trafficClass = pack(trafficClass);
      ipv6_t.flowLabel = pack(flowLabel);
      ipv6_t.payloadLen = pack(payloadLen);
      ipv6_t.nextHdr = pack(nextHdr);
      ipv6_t.hopLimit = pack(hopLimit);
      ipv6_t.srcAddr = pack(srcAddr);
      ipv6_t.dstAddr = pack(dstAddr);
      return ipv6_t;
  endfunction
  
  typedef struct {
  