anchor.diff:                   handler_state           :: term(),
                    pending_msgs            :: term(),
                    xid = 0                 :: integer(),
  -                 startup_leftovers       :: binary()
  +                 startup_leftovers       :: binary(),
  +                 idle_timer_poller       :: term(),
  +                 last_receive            :: term()
                  }).
  +
  +%%------------------------------------------------------------------
  +
  +idle_check(ServerPid) ->
  +    gen_server:cast(ServerPid, idle_check).
  +
  +ping_timeout(ServerPid) ->
  +    gen_server:cast(ServerPid, ping_timeout).
   
   %%------------------------------------------------------------------
   
  
positive.code: handle_messages([], NewState) ->
      {ok, NewState};
  handle_messages([Message|Rest], NewState) ->
      case handle_message(Message, NewState) of
          {stop, Reason, State} ->
              {stop, Reason, State};
  
negative.code:     case ofp_parser:parse(Parser, Data) of
          {ok, NewParser, Messages} ->
              case handle_messages(Messages, State) of
                  {ok, NewState} ->
                      {noreply, NewState#?STATE{
                                          parser = NewParser,
                                          last_receive = now()}};
                  {stop, Reason, NewState} ->
                      {stop, Reason, NewState}
              end;
  