anchor.diff:  %% @@see //stdlib/gen_fsm:StateName/2
   %% @todo EAP-TTLS fragmentation
   %% @private
  -aaa(timeout, #statedata{session_id = SessionID, buf = []} = StateData) ->
  +aaa(timeout, #statedata{session_id = SessionID, tx_buf = []} = StateData) ->
   	{stop, {shutdown, SessionID}, StateData};
  -aaa(timeout, #statedata{buf = Buf, radius_fsm = RadiusFsm,
  +aaa(timeout, #statedata{tx_buf = TxBuf, radius_fsm = RadiusFsm,
   		radius_id = RadiusID, req_auth = RequestAuthenticator,
   		secret = Secret, eap_id = EapID} = StateData)  ->
  -	Data = iolist_to_binary(Buf),
  +	Data = iolist_to_binary(TxBuf),
   	case size(Data) of
   		Size when Size =< 65529 ->
   			EapTtls = #eap_ttls{data = Data},
  
positive.code: 					identifier = EapID, data = EapData},
  			send_response(EapPacket, ?AccessChallenge,
  					RadiusID, [], RequestAuthenticator, Secret, RadiusFsm),
  			NewStateData = StateData#statedata{buf = []},
  			{next_state, ttls, NewStateData, ?TIMEOUT};
  		_ ->
  			{stop, fragmentation_unimplemented, StateData}
  	end;
  aaa({eap_ttls, _SslPid, Data}, #statedata{buf = Buf} = StateData) ->
  	NewStateData = StateData#statedata{buf = [Buf, Data]},
  	{next_state, aaa, NewStateData, ?BufTIMEOUT}.
  
  -spec handle_event(Event :: term(), StateName :: atom(),
  
negative.code: 		radius_fsm :: pid(),
  		radius_id :: byte(),
  		req_auth :: [byte()],
  		mtu :: pos_integer(),
  		ssl_socket :: ssl:sslsocket(),
  		socket_options :: ssl:options(),
  		rx_length :: pos_integer(),
  		rx_buf = [] :: iolist(),
  		tx_buf = [] :: iolist(),
  		ssl_pid :: pid(),
  		tls_key :: string(),
  		tls_crt :: string()}).
  