<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet type="text/xsl" href="captive-portals.xsl"?>
<?xml-model href="captive-portals.rng" schematypens="http://relaxng.org/ns/structure/1.0" ?>
<registry xmlns="http://www.iana.org/assignments" id="captive-portals">
  <title>Captive Portals</title>
  <created>2020-07-07</created>
  <updated>2024-08-28</updated>

  <registry id="api-keys">
    <title>Captive Portal API Keys</title>
    <xref type="rfc" data="rfc8908"/>
    <registration_rule>Specification Required</registration_rule>
    <expert>Tommy Pauly, Darshak Thakore, Martin Thomson</expert>
    <record date="2020-07-07">
      <key>captive</key>
      <type>boolean</type>
      <description>Indicates whether the client is in a state of
      captivity, i.e it has not satisfied the conditions to access the
      external network.  If the client is captive (i.e. captive=true),
      it will still be allowed enough access for it to perform server
      authentication <xref type="rfc" data="rfc8908">RFC8908, Section
      4.1</xref>.</description>
      <xref type="rfc" data="rfc8908"/>
    </record>
    <record date="2020-07-07">
      <key>user-portal-url</key>
      <type>string</type>
      <description>Provides the URL of a web portal that
	  MUST be accessed over TLS with which a user can interact.</description>
      <xref type="rfc" data="rfc8908"/>
    </record>
    <record date="2020-07-07">
      <key>venue-info-url</key>
      <type>string</type>
      <description>Provides the URL of a webpage or site
      that SHOULD be accessed over TLS on which the operator of the
      network has information that it wishes to share with the user
      (e.g., store info, maps, flight status, or entertainment).</description>
      <xref type="rfc" data="rfc8908"/>
    </record>
    <record date="2020-07-07">
      <key>can-extend-session</key>
      <type>boolean</type>
      <description>Indicates that the URL specified
      as "user-portal-url" allows the user to extend a session once the
      client is no longer in a state of captivity.  This provides a hint
      that a client system can suggest accessing the portal URL to the
      user when the session is near its limit in terms of time or bytes.</description>
      <xref type="rfc" data="rfc8908"/>
    </record>
    <record date="2020-07-07">
      <key>seconds-remaining</key>
      <type>number</type>
      <description>An integer that indicates the number
      of seconds remaining, after which the client will be placed into a
      captive state.  The API server SHOULD include this value if the
      client is not captive (i.e. captive=false) and the client session
      is time-limited, and SHOULD omit this value for captive clients
      (i.e. captive=true) or when the session is not time-limited.</description>
      <xref type="rfc" data="rfc8908"/>
    </record>
    <record date="2020-07-07">
      <key>bytes-remaining</key>
      <type>number</type>
      <description>An integer that indicates the number
      of bytes remaining, after which the client will be in placed into
      a captive state.  The byte count represents the sum of the total
      number of IP packet (layer 3) bytes sent and received by the
      client, including IP headers.  Captive portal systems might not
      count traffic to whitelisted servers, such as the API server, but
      clients cannot rely on such behavior.  The API server SHOULD
      include this value if the client is not captive (i.e.
      captive=false) and the client session is byte-limited, and SHOULD
      omit this value for captive clients (i.e. captive=true) or when
      the session is not byte-limited.</description>
      <xref type="rfc" data="rfc8908"/>
    </record>
    <record date="2024-08-28">
      <key>client-authentication-url</key>
      <type>string</type>
      <description>Provides the URL of the authentication server that 
MUST be accessed over TLS with which the client is authenticated without 
user interaction. Authentication Server authenticates clients using the 
HTTP authentication framework specified in <xref type="rfc" data="rfc9110"/>. The server MUST NOT 
require user interaction on the client device. The client MUST have a 
credential to perform the authentication without user interaction.</description>
      <xref type="draft" data="draft-sawant-capport-api-state-enhancement-02"/>
    </record>
   </registry>

  <people/>
</registry>
