anchor.diff:  	end,
       eap_handshake_next(Next, State);
   
  -eap_handshake(Data, State) ->
  +eap_handshake(Data, State0) ->
       lager:warning("unexpected EAP Handshake: ~p", [Data]),
  +    State = stop_eapol_timer(State0),
       wtp_del_station(State),
       aaa_disassociation(State),
       State#state{eapol_state = undefined}.
  
positive.code:     ReqData = <<0, "networkid=", SSID/binary, ",nasid=SCG4,portid=1">>,
      Id = 1,
      EAPData = eapol:request(Id, identity, ReqData),
      send_eapol_packet(EAPData, State#state{eapol_state = {request, Id}}).
  
  eap_handshake({start, _Data},
  	      #state{eapol_state = {request, _}} = State) ->
      %% restart the handshake
      init_eapol(State);
  
  eap_handshake(Data = {response, Id, EAPData, Response},
  	      #state{eapol_state = {request, Id}} = State) ->
      lager:debug("EAP Handshake: ~p", [Data]),
      Next =
  	case Response of
  	    {identity, Identity} ->
  
negative.code:     Frame = eapol:encode_802_11(StationMAC, BSS, EAPData),
      wtp_send_80211(Frame, State).
  
  send_eapol_packet(EAPData, State = #state{eapol_retransmit = TxCnt}) ->
      send_eapol(eapol:packet(EAPData), State),
      start_eapol_timer({packet, EAPData}, State#state{eapol_retransmit = TxCnt + 1}).
  
  send_eapol_key(Flags, KeyData,
  	       State = #state{eapol_retransmit = TxCnt,
  