anchor.diff:  %% @see //stdlib/gen_fsm:init/1
   %% @private
   %%
  -init([NasIpAddress, NasIdentifier, Subscriber, AcctSessionId, Secret, Id,
  -		 NasPortType, NasPortId, CallingStation, CalledStation, FramedIp]) ->
  +init([NasIpAddress, NasIdentifier, Subscriber, AcctSessionId, Secret,
  +			Id, Attributes]) ->
   	process_flag(trap_exit, true),
   	StateData = #statedata{nas_ip = NasIpAddress, nas_id = NasIdentifier,
   		subscriber = Subscriber, acct_session_id = AcctSessionId,
  -		secret = Secret, id = Id, nas_port_type = NasPortType, nas_port_id = NasPortId,
  -		calling_station = CallingStation, called_station = CalledStation,
  -		framed_ip = FramedIp},
  +		secret = Secret, id = Id, attributes = Attributes},
   	{ok, send_request, StateData, 0}.
   
   -spec send_request(Event :: timeout | term(), StateData :: #statedata{}) ->
  
positive.code: 		_ ->
  			radius_attributes:add(?NasIdentifier, NasIdentifier, Attr4)
  	end,
  	Attr6 = case NasPortType of
  		{error, not_found} ->
  			Attr5;
  		_ ->
  			radius_attributes:add(?NasPortType, NasPortType, Attr5)
  	end,
  	Attr7 = NasPortId case of
  		{error, not_found} ->
  			Attr6;
  		_ ->
  			radius_attributes:add(?NasPortId, NasPortId, Attr6)
  	end,
  	Attr8 = case CallingStation of
  		{error, not_found} ->
  			Attr7;
  		_ ->
  			radius_attributes:add(?CallingStationId, CallingStation, Attr7)
  	end,
  	Attr9 = case CalledStation of
  		{error, not_found} ->
  			Attr8;
  		_ ->
  			radius_attributes:add(?CalledStationId, CalledStation, Attr8)
  	end,
  	Attr10 = case FramedIp of
  		{error, not_found} ->
  			Attr9;
  		_ ->
  			radius_attributes:add(?FramedIpAddress, FramedIp, Attr9)
  	end,
  	Attributes = radius_attributes:codec(Attr10),
  	Length = size(Attributes) + 20,
  	RequestAuthenticator = crypto:hash(md5,
  			[<<?DisconnectRequest, Id, Length:16>>,
  			<<0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0>>, Attributes, Secret]),
  	DisconRec = #radius{code = ?DisconnectRequest, id = Id,
  			authenticator = RequestAuthenticator, attributes = Attributes},
  	DisconnectRequest = radius:codec(DisconRec),
  
negative.code: 		 retry_time = 500 :: integer(),
  		 retry_count = 0 :: integer(),
  		 request :: binary(),
  		 attributes :: radius_attributes:attributes()}).
  
  -define(TIMEOUT, 30000).
  -define(ERRORLOG, radius_disconnect_error).
  