anchor.diff:  		 retry_time = 500 :: integer(),
   		 retry_count = 0 :: integer(),
   		 request :: binary(),
  -		 nas_port_type :: integer(),
  -		 nas_port_id :: string(),
  -		 calling_station :: string(),
  -		 called_station :: string(), 
  -		 framed_ip :: inet:ip_address()}).
  +		 attributes :: radius_attributes:attributes()}).
   
   -define(TIMEOUT, 30000).
   -define(ERRORLOG, radius_disconnect_error).
  
positive.code: %% @see //stdlib/gen_fsm:init/1
  %% @private
  %%
  init([NasIpAddress, NasIdentifier, Subscriber, AcctSessionId, Secret, Id,
  		 NasPortType, NasPortId, CallingStation, CalledStation, FramedIp]) ->
  	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},
  	{ok, send_request, StateData, 0}.
  
  -spec send_request(Event :: timeout | term(), StateData :: #statedata{}) ->
  
negative.code: 		_ ->
  			radius_attributes:add(?NasIdentifier, NasIdentifier, Attr4)
  	end,
  	Attr6 = case radius_attributes:find(?NasPortType, Attributes) of
  		{error, not_found} ->
  			Attr5;
  		{ok, Value1}->
  			radius_attributes:add(?NasPortType, Value1, Attr5)
  	end,
  	Attr7 = case radius_attributes:find(?NasPortId, Attributes) of
  		{error, not_found} ->
  			Attr6;
  		 {ok, Value2}->
  			radius_attributes:add(?NasPortId, Value2, Attr6)
  	end,
  	Attr8 = case radius_attributes:find(?CallingStationId, Attributes) of
  		{error, not_found} ->
  			Attr7;
  		 {ok, Value3}->
  			radius_attributes:add(?CallingStationId, Value3, Attr7)
  	end,
  	Attr9 = case radius_attributes:find(?CalledStationId, Attributes) of
  		{error, not_found} ->
  			Attr8;
  		 {ok, Value4}->
  			radius_attributes:add(?CalledStationId, Value4, Attr8)
  	end,
  	Attr10 = case radius_attributes:find(?FramedIpAddress, Attributes) of
  		{error, not_found} ->
  			Attr9;
  		 {ok, Value5}->
  			radius_attributes:add(?FramedIpAddress, Value5, Attr9)
  	end,
  	Attributes1 = radius_attributes:codec(Attr10),
  	Length = size(Attributes1) + 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, SharedSecret]),
  	DisconRec = #radius{code = ?DisconnectRequest, id = Id,
  			authenticator = RequestAuthenticator, attributes = Attributes},
  	DisconnectRequest = radius:codec(DisconRec),
  