anchor.diff:          dpid = DatapathId,
           dns_port = proplists:get_value(dns_port, ConfigList),
           client_port = proplists:get_value(client_port, ConfigList),
  -        dns_ips = proplists:get_value(dns_ips, ConfigList)
  +        dns_ips = proplists:get_value(dns_ips, ConfigList),
  +        connect_to = proplists:get_value(connect_to, ConfigList)
        }}.
   
   switch_key(undefined, undefined) ->
  
positive.code:     {ipaddr, IpAddr};
  switch_key(_, _) ->
      error({badconfig, switch, both_ipaddr_and_datapathid}).
  
  install_flows(IpAddr, DatapathId, Version, Config) ->
      case get_switch_config(IpAddr, DatapathId, Config) of
  
negative.code: start_link() ->
      gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
  
  connect(IpAddr, Port) ->
      gen_server:cast(?MODULE, {connect, IpAddr, Port}).
  
  % @hidden
  ofsh_init(_Mode, IpAddr, DatapathId, Version, _Connection) ->
      ?INFO("Connection from ~p ~p~n", [IpAddr, DatapathId]),
      gen_server:cast(?MODULE, {initialize_switch, IpAddr, DatapathId, Version}).
  
  % @hidden
  ofsh_connect(_Mode, IpAddr, DatapathId, _Version, _Connection, AuxId) ->
      ?INFO("Connection from ~p ~p AuxId: ~p~n", [IpAddr, DatapathId, AuxId]),
      ok.
  
  % @hidden
  ofsh_disconnect(AuxId, DatapathId) ->
      ?INFO("Disconnect from ~p AuxId: ~p~n", [DatapathId, AuxId]),
      ok.
  
  % @hidden
  ofsh_failover() ->
      % not implemented in ofs_handler
      ok.
  
  % @hidden
  ofsh_handle_error(DatapathId, Reason) ->
      ?INFO("Error from ~p Error: ~p~n", [DatapathId, Reason]),
      ok.
  
  % @hidden
  ofsh_handle_message(DatapathId, Msg) ->
      ?DEBUG("Message from ~p Message: ~p~n", [DatapathId, Msg]),
      ok.
  
  % @hidden
  ofsh_terminate(DatapathId) ->
      ?INFO("Terminate Main Connection from ~p~n", [DatapathId]),
      ok.
  