anchor.diff:        endmethod
         method Action modify_entry(Bit#(32) name, Bit#(8) id, ActionArg args);
            $display("modify entry flow id ", fshow(id), " action ", fshow(args));
  -         match_table.modify_entry.put(tuple2(id, args));
  +         match_table.modify_entry.put(tuple2(id, pack(args)));
         endmethod
         method Action lookup_entry(MatchField field);
  -         match_table.lookupPort.request.put(field);
  +         match_table.lookupPort.request.put(pack(field));
         endmethod
         //method Action readMatchTableCntrs();
         //   let v = match_table.dbg();
  
positive.code: typedef 12 PktSize; // maximum 4096b
  typedef 256 DepthSz;
  typedef 36  KeySz;
  typedef Bit#(16) ActionArg;
  typedef TDiv#(`DataBusWidth, 32) WordsPerBeat;
  
  typedef struct {
     Bit#(32) dstip;
     Bit#(4) padding;
  } MatchField deriving(Bits, Eq, FShow);
  
  interface MatchTestIndication;
  
negative.code:          ActionArg args = 0;
           //TableEntry entry = TableEntry {field: fields, argument: args};
           $display("add entry ", fshow(fields));
           match_table.add_entry.put(tuple2(pack(fields), pack(args)));
        endmethod
        method Action delete_entry(Bit#(32) name, Bit#(8) id);
           $display("delete entry flow id ", fshow(id));
  