anchor.diff:  	{reply, Port, State};
   handle_call({request, Address, Port, Packet}, {RadFsm, _Tag}= _From,
   		#state{handlers = Handlers} = State) ->
  -	case catch ocs_eap_codec:eap_packet(Packet) of
  -		#eap_packet{identifier = Identifier} = Request ->
  +	case catch radius:codec(Packet) of
  +		#radius{identifier = Identifier, authenticator = Auth, attributes = Attributes} = Request ->
   			NewState = case gb_trees:lookup(Identifier, Handlers) of
   				none ->
  -					start_fsm(State, RadFsm, Address, Port, Identifier, Request);
  +					start_fsm(State, RadFsm, Auth, Address, Port, Identifier, Request);
   				{value, Fsm} ->
  -					case catch radius:codec(Packet) of
  -						#radius{attributes = Attributes} ->
   							case radius_attributes:find(?EAPMessage, Attributes) of
   								{ok, EAPRequest} ->
   									gen_fsm:send_event(Fsm, EAPRequest),
  
positive.code: %% 	state handler and forward the request to it.
  %% @hidden
  start_fsm(#state{eap_fsm_sup = Sup, handlers = Handlers} = State,
  		RadFsm, Address, Port, Identifier, Request) ->
  	ChildSpec = [[RadFsm, Address, Port, Identifier], []],
  	case supervisor:start_child(Sup, ChildSpec) of
  		{ok, Fsm} ->
  			link(Fsm),
  
negative.code: 								error ->
  									{reply, {error, no_such_attribute}, State}
  							end;
  			end,
  			{reply, {ok, wait}, NewState};
  		{'EXIT', _Reason} ->
  