anchor.diff:      RSN;
   decode_rsne(group_cipher_suite, <<GroupCipherSuite:4/bytes, Next/binary>>, RSN) ->
       decode_rsne(pairwise_cipher_suite, Next, RSN#wtp_wlan_rsn{group_cipher_suite = GroupCipherSuite});
  -decode_rsne(pairwise_cipher_suite, <<Count:16/little, Data/binary>>, RSN) ->
  +decode_rsne(pairwise_cipher_suite, <<Count:16/little, Rest/binary>>, RSN) ->
       Length = Count * 4,
  -    <<Suites:Length/bytes, Next/binary>> = Data,
  +    <<Suites:Length/bytes, Next/binary>> = Rest,
       decode_rsne(auth_key_management, Next,
   		RSN#wtp_wlan_rsn{cipher_suites = [ Id || <<Id:4/bytes>> <= Suites ]});
  -decode_rsne(auth_key_management, <<Count:16/little, Data/binary>>, RSN) ->
  +decode_rsne(auth_key_management, <<Count:16/little, Rest/binary>>, RSN) ->
       Length = Count * 4,
  -    <<Suites:Length/bytes, Next/binary>> = Data,
  +    <<Suites:Length/bytes, Next/binary>> = Rest,
       decode_rsne(rsn_capabilities, Next,
   		RSN#wtp_wlan_rsn{akm_suites =
   				     [ capwap_packet:decode_akm_suite(Id) || <<Id:32>> <= Suites ]});
  
positive.code:     decode_rsne(pmkid, Next, RSN#wtp_wlan_rsn{capabilities = RSNCaps});
  decode_rsne(pmkid, <<0:16/little, Next/binary>>, RSN) ->
      decode_rsne(group_management_cipher, Next, RSN);
  decode_rsne(pmkid, <<Count:16/little, Data/binary>>, RSN) ->
      Length = Count * 16,
      <<PMKIds:Length/bytes, Next/binary>> = Data,
      decode_rsne(group_management_cipher, Next, RSN#wtp_wlan_rsn{pmk_ids = [ Id || <<Id:16/bytes>> <= PMKIds ]});
  decode_rsne(group_management_cipher, <<GroupMgmtCipherSuite:32>>, RSN)
    when (RSN#wtp_wlan_rsn.capabilities band 16#0080) /= 0 ->
  
negative.code: 	end,
      eap_handshake_next(Next, Data);
  
  eap_handshake(HandShake, Data0) ->
      ?LOG(warning, "unexpected EAP Handshake: ~p", [HandShake]),
      Data = stop_eapol_timer(Data0),
      wtp_del_station(Data),
      aaa_disassociation(Data),
  