anchor.diff:  %%           {dns_ips, [{10,0,2,60}, {10,48,2,5}]}
   %% ]}.
   %% @end
  --sepc tapestry_config(all | switch_key(), string()) -> ok.
  +-spec tapestry_config(all | switch_key(), string()) -> ok.
   tapestry_config(all, Filename) ->
       Switches = icontrol_logic:switches(),
       Configs = consult_config(Filename),
  
positive.code: %% are installed in table 0 with priority Priority.
  %% If Key is ``default'', clear all 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) ->
      [dns_tap(Key, Priority, Port1, Port2, Port3, DnsIp) || DnsIp <- DnsIps];
  dns_tap(Key, Priority, Port1, Port2, Port3, DnsIp = {_,_,_,_}) ->
  
negative.code:     icontrol_logic:sync_send(Key, Msg).
  
  %% @equiv ping(default)
  ping() ->
      ping(default).
  
  %% @doc
  