anchor.diff:  send_register(#statedata{imsi = IMSI,
   		orig_host = OriginHost, orig_realm = OriginRealm,
   		hss_host = HssHost, hss_realm = HssRealm, service = Service,
  +		apn_context = Context, apn_name = APN,
   		pgw_id = PGW, pgw_plmn = VPLMN} = _StateData) ->
   	SessionId = diameter:session_id([OriginHost]),
   	Request = #'3gpp_swx_SAR'{'Session-Id' = SessionId,
  
positive.code: 			case lists:keyfind(APN,
  					#'3gpp_swx_APN-Configuration'.'Service-Selection',
  					UserProfile#'3gpp_swx_Non-3GPP-User-Data'.'APN-Configuration') of
  				#'3gpp_swx_APN-Configuration'{} ->
  					send_register(NextStateData),
  					{next_state, profile, NextStateData, ?TIMEOUT};
  				_Other ->
  					ResultCode = ?'DIAMETER_BASE_RESULT-CODE_AUTHORIZATION_REJECTED',
  					Reply = response(ResultCode, NextStateData),
  
negative.code:          		'Auth-Application-Id' = [?SWx_APPLICATION_ID]},
  			'Auth-Session-State' = ?'DIAMETER_BASE_AUTH-SESSION-STATE_NO_STATE_MAINTAINED',
  			'Server-Assignment-Type' = ?'3GPP_SWX_SERVER-ASSIGNMENT-TYPE_PGW_UPDATE',
  			'MIP6-Agent-Info' = PGW, 'Visited-Network-Identifier' = VPLMN,
  			'Context-Identifier' = [Context], 'Service-Selection' = [APN]},
  	diameter:call(Service, ?SWx_APPLICATION,
  			Request, [detach, {extra, [self()]}]).
  
  