anchor.diff:     endfunction
   
      Server#(RequestType, ResponseType) matchTable <- mkMatchTable();
  +`endif
   
      // read client interface
      FIFO#(MemRequest) reqFifo <-mkSizedFIFO(4);
  
positive.code:    method Action writePacketData(Vector#(2, Bit#(64)) data, Bit#(1) sop, Bit#(1) eop);
     method Action readPacketBuffer(Bit#(16) addr);
     method Action writePacketBuffer(Bit#(16) addr, Bit#(64) data);
  
     method Action matchTableRequest(Bit#(32) key, Bit#(32) value, Bit#(32) op);
  
     method Action port_mapping_add_entry(Bit#(32) table_name, MatchInput_port_mapping match_key);
     method Action port_mapping_set_default_action(Bit#(32) table_name);
     method Action port_mapping_delete_entry(Bit#(32) table_name, Bit#(32) id);
  
negative.code:         else if (op == 3)
              matchTable.request.put(makeRequest(key, value, REMOVE));
        endmethod
  `endif
  
        // Generate fixed standard set of API function
        // In software, we should hide the details of match table different behind api
  