anchor.diff:  -define(SWx_APPLICATION_ID, 16777265).
   -define(SWx_APPLICATION, ocs_diameter_3gpp_swx_application).
   -define(TIMEOUT, 10000).
  +-define(GTPv2_SUPPORTED, 16#0000400000000000).
   
   -record(statedata,
   		{identity :: binary() | undefined,
  
positive.code: 			'Origin-Realm' = OriginRealm,
  			'User-Name' = UserName,
  			'Auth-Application-Id' = ?S6b_APPLICATION_ID,
  			'Auth-Request-Type' = AuthRequestType},
  	ok = ocs_log:auth_log(diameter, Server, Client, Request, Answer),
  	Answer;
  response(RedirectHost,
  
negative.code: 			ResultCode = ?'DIAMETER_BASE_RESULT-CODE_UNABLE_TO_COMPLY',
  			Reply = response(ResultCode, NewStateData),
  			{stop, Reason, Reply, NewStateData}
  	end;
  idle(#'3gpp_s6b_AAR'{'User-Name' = [Identity], 'Session-Id' = SessionId,
  		'Origin-Host' = PgwHost, 'Origin-Realm' = PgwRealm,
  		'Auth-Request-Type' = ?'3GPP_SWX_AUTH-REQUEST-TYPE_AUTHORIZE_ONLY',
  		'MIP6-Agent-Info' = AgentInfo, 'Visited-Network-Identifier' = VPLMN,
  		'Service-Selection' = [APN]} = Request, From, StateData) ->
  	[IMSI | _] = binary:split(Identity, <<$@>>, []),
  	PGW = agent_info(AgentInfo),
  	NewStateData = StateData#statedata{from = From, request = Request,
  			identity = Identity, imsi = IMSI,
  			pgw_host = PgwHost, pgw_realm = PgwRealm,
  			pgw_id = PGW, pgw_plmn = VPLMN, apn_name = APN},
  	ResultCode = ?'DIAMETER_BASE_RESULT-CODE_UNABLE_TO_COMPLY',
  	error_logger:warning_report(["PGW doesn't support GTPv2",
  			{pgw_host, PgwHost}, {pgw_realm, PgwRealm},
  			{pgw_id, pgw_id(PGW)}, {pgw_plmn, VPLMN}, {apn, APN},
  			{imsi, IMSI}, {identity, Identity},
  			{session, SessionId}, {result, ResultCode}]),
  	gen_fsm:reply(From, response(ResultCode, NewStateData)),
  	{stop, shutdown, NewStateData}.
  
  -spec register(Event, StateData) -> Result
  	when
  