anchor.diff:  -export([init/1, handle_call/3, handle_cast/2, handle_info/2,
            terminate/2, code_change/3]).
   
  --record(state, {dev, port, pubsub, osifconfig}).
  +-define(DEFAULT_MAC, <<16#00,16#00,16#00,16#aa,16#bb,16#cc>>).
  +
  +-record(state, {dev :: string(),
  +                mac = ?DEFAULT_MAC :: ethernet_address(),
  +                port :: port(),
  +                pubsub = pubsub:new() :: pubsub:pubsub(),
  +                osifconfig :: string(),
  +                promisc = false :: boolean()
  +               }).
   
   %%====================================================================
   %% API
  
positive.code:     Port = enet_tap:open(Device),
      {ok, S#state{port=Port
                   ,osifconfig=IfConfig
                   ,pubsub=pubsub:publish()}}.
  
  %%--------------------------------------------------------------------
  %% @private
  
negative.code: %% @doc Cast message handler callbacks
  %% @end
  %%--------------------------------------------------------------------
  handle_cast({send, #raw{data=Frame}}, S = #state{port=P})
    when is_port(P), is_binary(Frame) ->
      publish_tx(Frame, unknown, S),
      port_command(P, Frame),
      {noreply, S};
  handle_cast(Msg, State) ->
      ?WARN("Unexpected cast ~p", [Msg]),
  