anchor.diff:      flows/1,
       dns_tap/5,
       dns_tap/6,
  +    tap/5,
  +    tap/6,
       tapestry_config/1,
       tapestry_config/2,
       tapestry_config/3,
  
positive.code:     Request = of_msg_lib:flow_delete(Version, [], [{table_id, TableId}]),
      send(Key, Request).
  
  %% @equiv dns_tap(default, Priority, Port1, Port2, Port3, DnsIps)
  dns_tap(Priority, Port1, Port2, Port3, DnsIps) ->
      dns_tap(default, Priority, Port1, Port2, Port3, DnsIps).
  
negative.code: %% @doc
  %% Forward udp packets from DnsIps on Port1 to Port2 and Port3.  Flows
  %% are installed in table 0 with priority Priority.
  %% If Key is ``default'', adds flows on the default switch.
  %% @end
  -spec dns_tap(switch_key(), integer(), integer(), integer(), integer(), ipaddress() | [ipaddress()]) -> {ok, ofp_message()} | {error, error_reason()}.
  dns_tap(Key, Priority, Port1, Port2, Port3, DnsIps) when is_list(DnsIps) ->
  