anchor.diff:  		      ampdubufsize = 0,
   		      htcsupp = 0,
   		      mcs_set = StaCaps#sta_cap.rx_mask}],
  -    ReqElements = station_session_key(RadioId, WlanId, MAC, CryptoState, ReqElements0),
  +    ReqElements = station_session_key(RadioId, WlanId, MAC, CryptoData, ReqElements0),
       Header = #capwap_header{radio_id = RadioId, wb_id = WBID, flags = Flags},
  -    send_request(Header, station_configuration_request, ReqElements, NotifyFun, State);
  -
  -internal_add_station(_, _MAC, _StaCaps, _CryptoState, NotifyFun, State) ->
  -    response_notify(NotifyFun, -1, [], State).
  -
  -station_session_key(_RadioId, _WlanId, MAC, {AKMonly, false, CipherState}, IEs)
  -  when is_record(CipherState, ccmp) ->
  +    send_request(Header, station_configuration_request, ReqElements, NotifyFun, Data);
  +
  +internal_add_station(_, _MAC, _StaCaps, _CryptoData, NotifyFun, Data) ->
  +    response_notify(NotifyFun, -1, [], Data).
  +
  +station_session_key(_RadioId, _WlanId, MAC, {AKMonly, false, CipherData}, IEs)
  +  when is_record(CipherData, ccmp) ->
       IE = #ieee_802_11_station_session_key{
   	    mac_address = MAC,
   	    flags = ['akm_only' || AKMonly],
  
positive.code: 			'Error-Fragment-Invalid', 'Error-Fragment-Too-Old']),
  
      ergw_aaa_session:start(Session, to_session(SessionOpts)),
      next_state(join, State);
  
  idle(cast, Event, State) when ?IS_RUN_CONTROL_EVENT(Event) ->
      lager:debug("in IDLE got control event: ~p", [Event]),
      next_state(idle, State);
  
  idle(cast, Event, State) ->
      handle_event(Event, idle, State);
  
  idle(info, Info, State) ->
      handle_info(Info, idle, State).
  
  join(enter, _OldStateName, _State) ->
      keep_state_and_data;
  
  join(timeout, _, State) ->
      lager:info("timeout in JOIN -> stop"),
      {stop, normal, State};
  
  join({call, From}, Call, State) ->
      handle_call(Call, From, join, State);
  
  join(cast, {keep_alive, _DataPath, _WTPDataChannelAddress, Header, PayLoad}, State) ->
      lager:warning("in JOIN got unexpected keep_alive: ~p", [{Header, PayLoad}]),
      next_state(join, State);
  
  join(cast, {configuration_status_request, Seq, Elements,
  	    #capwap_header{
  	       wb_id = WBID, flags = Flags}},
       #state{config = Config0} = State0) ->
  
      Config = update_radio_information(Elements, Config0),
      #wtp{
  
negative.code:     StartTime = erlang:system_time(milli_seconds),
      MacTypes = ie(wtp_mac_type, Elements),
      TunnelModes = ie(wtp_frame_tunnel_mode, Elements),
      Data1 = Data0#data{config = Config,
  			  session_id = SessionId, mac_types = MacTypes,
  			  tunnel_modes = TunnelModes, version = Version,
  			  location = ie(location_data, Elements),
  