anchor.diff:  %% ------------------------------------------------------------------
   
   do_callback(Module, Function, Args) ->
  -    io:format("callback: ~p ~p ~p~n", [Module, Function, Args]).
  -    % erlang:apply(Module, Function, Args).
  -
  -tell_controller_mode(Connection, active, State = #?STATE{
  -                                            generation_id = GenId,
  -                                            main_connection = Connection,
  -                                            of_version = Version}) ->
  -    Msg = ofs_msg_lib:set_role(Version, master, GenId),
  -    State1 = State#?STATE{generation_id = next_generation_id(GenId)},
  -    case of_driver:sync_send(Connection, Msg) of
  -        {error, Reason} ->
  -            {error, Reason, State1};
  -        {ok, _Reply} ->
  -            {ok, State1}
  -    end;
  -tell_controller_mode(_Connection, standby, _State) ->
  -    ok.
  -
  -next_generation_id(GenId) ->
  -    GenId + 1.
  -
  -get_opt(Key) ->
  -    get_opt(Key, []).
  +    erlang:apply(Module, Function, Args).
   
   get_opt(Key, Options) ->
       Default = case application:get_env(ofs_handler, Key) of
  
positive.code: %% ------------------------------------------------------------------
  
  init([DatapathId]) ->
      gen_server:cast(self(), init),
      {ok, #?STATE{datapath_id = DatapathId}}.
  
  % handle API
  
negative.code:         undefined -> undefined
      end,
      proplists:get_value(Key, Options, Default).
  
  sync_send(MsgFn, State) ->
      sync_send(MsgFn, [], State).
  