anchor.diff:  			{reply, {error, ignore}, State}
   	end.
   %% @hidden
  -request1(?AccountingStart, AcctSessionId, Id,
  +request1(?AccountingStart, _AcctSessionId, Id,
   		Authenticator, Secret, NasId, Address, _AccPort, _ListenPort, Attributes,
   		#state{address = ServerAddress, port = ServerPort} = State) ->
  +	SessionAttributes = extract_session_attributes(Attributes),
   	SessionIdentification = [{?NasIdentifier, NasId}, {?NasIpAddress, Address}],
   	{ok, Subscriber} = radius_attributes:find(?UserName, Attributes),
  -	case update_session(Subscriber, AcctSessionId, SessionIdentification) of
  +	case update_session(Subscriber, SessionAttributes, SessionIdentification) of
   		ok ->
   			ok = ocs_log:acct_log(radius, {ServerAddress, ServerPort}, start, Attributes),
   			{reply, {ok, response(Id, Authenticator, Secret)}, State};
  
positive.code: 	StartArgs = [DiscArgs, []],
  	supervisor:start_child(DiscSup, StartArgs).
  
  update_session(SubscriberId, AcctSessionId, SessionIdentification) when is_list(SubscriberId) ->
  	update_session(list_to_binary(SubscriberId), AcctSessionId, SessionIdentification);
  update_session(SubscriberId, AcctSessionId, SessionIdentification) when is_binary(SubscriberId) ->
  	F = fun() ->
  			case mnesia:read(subscriber, SubscriberId, write) of
  				[#subscriber{session_attributes = SessionAttributes} = Subscriber] ->
  					case update_session1(AcctSessionId, SessionIdentification, SessionAttributes) of
  						SessionAttributes ->
  							ok;
  						NSA ->
  							mnesia:write(Subscriber#subscriber{session_attributes = NSA})
  
negative.code: 				Peer :: string()}), Value :: (Fsm :: pid())),
  		disc_id = 1 :: integer()}).
  -type state() :: #state{}.
  
  %% support deprecated_time_unit()
  -define(MILLISECOND, milli_seconds).
  %-define(MILLISECOND, millisecond).
  
  %%----------------------------------------------------------------------
  %%  The ocs_radius_acct_port_server API
  