anchor.diff:  		    {'CAPWAP-Session-Id', <<WtpSessionId:128>>}],
       SessionData1 = add_tunnel_info(WTPDataChannelAddress, SessionData0),
       {ok, Session} = ergw_aaa_session_sup:new_session(self(), to_session(SessionData1)),
  -    ?LOG(info, "NEW session for ~w at ~p", [MAC, Session]),
  +    ?LOG(info, #{obj => session, ev => new, mac => MAC, session => Session,
  +		 opts => to_session(SessionData1), data => Data}),
       Now = erlang:monotonic_time(),
       SOpts = #{now => Now},
       ergw_aaa_session:invoke(Session, #{}, start, SOpts),
       start_session_timers(Data#data{aaa_session = Session}).
   
   aaa_disassociation(#data{aaa_session = Session}) ->
  +    ?LOG(info, #{obj => session, ev => stop, session => Session}),
       ergw_aaa_session:invoke(Session, #{}, stop, #{async => true}),
       ok.
   
  
positive.code: 	    rsna_4way_handshake({init, MSK}, Data);
  
  	{challenge, #{'EAP-Data' := EAPData} = SessionOpts, _} ->
  	    ?LOG(info, #{'AuthResult' => challenge, session => SessionOpts,
  			 challenge => EAPData}),
  
  	    <<_Code:8, Id:8, _/binary>> = EAPData,
  	    send_eapol_packet(EAPData, Data0#data{eapol_state = {request, Id}});
  
  	Other ->
  	    ?LOG(info, "AuthResult: ~p", [Other]),
  
  	    case ergw_aaa_session:get(Session, 'EAP-Data') of
  		{ok, EAPData} ->
  
negative.code:     Data#data{eapol_state = undefined}.
  
  eap_handshake_next({authenticate, Opts}, #data{aaa_session = Session} = Data0) ->
      ?LOG(info, #{obj => session, ev => authenticate, session => Session,
  		 opts => to_session(Opts)}),
      case ergw_aaa_session:invoke(Session, to_session(Opts), authenticate, [inc_session_id]) of
  	{ok, SessionOpts, AuthSEvs} ->
  	    ?LOG(info, #{obj => session, ev => authenticate, 'AuthResult' => success,
  			 session => SessionOpts, events => AuthSEvs}),
  	    Data = handle_session_evs(AuthSEvs, Data0),
  	    case SessionOpts of
  		#{'EAP-Data' := EAPData} ->
  