anchor.diff:          {ok, CallbackState} ->
               {reply, {ok, self()},
                               State1#?STATE{callback_state = CallbackState}};
  -        {error, _Reason} ->
  -            {stop, normal, State1}
  +        {terminate, Reason} ->
  +            signal_stop(),
  +            {reply, {terminate, Reason}, State1}
       end;
   handle_call({connect, _IpAddr, _DatapathId, _Features, _Version, Connection, AuxId, _Opt}, _From, State = #?STATE{aux_connections = AuxConnections}) ->
       State1 = State#?STATE{aux_connections = [{AuxId, Connection} | AuxConnections]},
  
positive.code: %% ------------------------------------------------------------------
  
  init([DatapathId]) ->
      {ok, #?STATE{datapath_id = DatapathId}}.
  
  % handle API
  handle_call({send, Msg}, _From, State) ->
  
negative.code:     % this is an auxiliary connection.
      % XXX spawn connection handler
      {reply, {ok, self()}, State1};
  handle_call({message, _Connection, Message}, _From, State) ->
      % switch sent us a message
      case notify(Message, State) of
          {ok, CallbackState} ->
              {reply, ok, State#?STATE{callback_state = CallbackState}};
          {terminate, Reason} ->
              signal_stop(),
              {reply, {terminate, Reason}, State}
      end;
  handle_call({error, _Connection, _Reason}, _From, State) ->
      % error on the connection
      {reply, ok, State};
  