Internet-Draft                                      Guillaume Bichot
   Category: Experimental                                       THOMSON
   Document: draft-bichot-network-                 April 2003
   discovery-protocol-02.txt


                    Network Discovery Protocol (NETDIS)
               draft-bichot-network-discovery-protocol-01.txt



Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026 [1].

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
        http://www.ietf.org/ietf/1id-abstracts.txt
   The list of Internet-Draft Shadow Directories can be accessed at
        http://www.ietf.org/shadow.html.

   Copyright (C) The Internet Society (2003).  All Rights Reserved.

Abstract

   This document describes the Network Discovery Protocol (NETDIS), a
   protocol that provides a way to broadcast information about the
   network service accessible through the access network where the
   information is broadcasted. This allows several service providers to
   share the same access network. The public WLAN access network is
   particularly targeted by this protocol. As a result a mobile terminal
   listening NETDIS announcements discovers the list of Service
   providers (Virtual WLAN operator) supported by the WLAN it is
   currently attached.









G. Bichot               Expires September 2003                [Page 1]


Internet-Draft Core Network Discovery Protocol (NETDIS)     April 2003







Table of Contents

   1. Introduction...................................................2
   2. Model..........................................................3
   3. Network announcement...........................................3
      3.1 SAP potential usage........................................4
      3.2 NETDIS announcement protocol...............................4
      3.3 Transport protocol.........................................4
      3.4 Announcement interval......................................4
   4. Packet format..................................................5
   5. Implementation.................................................9
   6. Security Considerations.......................................10
   7. References....................................................10
   8. Acknowledgments...............................................10
   9. Author's Addresses............................................10
   10. Intellectual Property Statement..............................10
   11. Full Copyright Statement.....................................11

1. Introduction

   The development of public data access network is growing. These
   networks mainly wireless (WLAN) offer the access to Internet, local
   services and potentially other core network (3G) services. Since it
   is impossible, for a customer to subscribe to all possible
   independent WLAN operators, some service providers provide an
   aggregation of these WLAN hot spots. They are also called virtual
   operators. A subscriber of such virtual operator can access to the
   core network (Internet for instance) through several independent
   WLANs.


   The core network may be Internet or a mobile (3G) network or other
   private network. The WLAN virtual network operator may be the core
   network operator.

   It is likely that several [virtual] network operators share a public
   WLAN access network. For instance, in a hot spot like an airport, the
   WLAN operator has an agreement with two virtual network operators in
   such a way the customers from both core network operators may access
   to their respective service (e.g. Internet) through the airport WLAN.
   There is a need to announce (broadcast) in the access network such
   information about, basically, the availability of the [virtual]



G. Bichot              Expires - September 2003               [Page 2]


Internet-Draft Core Network Discovery Protocol (NETDIS)     April 2003


   network operator and the information for accessing the core network
   (e.g. Internet).


2. Model


   The figure 1 illustrates the NETDIS model. A NETDIS controller has in
   charge to collect NETDIS announcement packets and multicast them
   within the public access network. The NETDIS announcement packet
   contains information relative to a [virtual] network operator and the
   type of core network that can be accessed. The way the NETDIS
   Announcer delivers the packets to the NETDIS Controller is out of
   scope of this document. The NETDIS controller may be located within
   the access network, within a third party operator/aggregator network
   or anywhere else. The NETDIS Announcer may be located within the
   access network, the core network, within a third party operator
   aggregator or anywhere else.


                +---------------+        +---------------+
    +--+        |               |        |               |
    |  | NETDIS |               |   I1   |               |
    |MT|<------>|               |--------|               |
    |  |        |     NETDIS    |        |    NETDIS     |
    +--+        |   Controller  |        |   Announcer   |
                +---------------+        +---------------+
                        |
                        | I2
                        |
                +---------------+
                |               |
                |               |
                |     NETDIS    |
                |   Announcer   |
                +---------------+

             Figure 1: The NDIS model


3. Network announcement

   //The SAP protocol (RFC 2974) could be used to carry the
   announcements. However RFC 2974 stipulates that a SAP listener shall
   support SDP (RFC 2327). Due to this constraint we have also defined a
   new announcement protocol based on SAP. Both options are possible.




G. Bichot              Expires - September 2003               [Page 3]


Internet-Draft Core Network Discovery Protocol (NETDIS)     April 2003


3.1 SAP potential usage

   In case of the usage of SAP, the following constraints apply.

   - Session deletion is not supported
   - Encryption is not supported
   - The SAP announcer is located in the NDP controller.
   - The originating source field shall be empty
   - A new payload type is defined: 'application/NETDIS'

3.2 NETDIS announcement protocol

   This is the protocol to be used instead of SAP.

   NETDIS uses UDP/IP multicast in order to broadcast the information
   relative to the different network services. For each network service
   provider, announcements [packets] are sent regularly and continuously
   within the well-known multicast channel.

   IPv4 global scope network announcements use multicast addresses in
   the range 224.2.128.0 - 224.2.255.255 with NETDIS announcements being
   sent to <TBD>

   IPv6 are announced on the address FF0X:0:0:0:0:0:2:7FFE where X is
   the 4-bit scope value. For example, an announcement for a link-local
   session assigned the address FF02:0:0:0:0:0:1234:5678, should be
   advertised on NETDIS address FF02:0:0:0:0:0:2:7FFE.

   NETDIS announcements MUST be sent on port <TBD> and SHOULD be sent
   with an IP time-to-live of 255.

   The announcement contains the identity of the [virtual] network
   operator as well as some information regarding the network. The
   header MAY be signed.

3.3 Transport protocol

   NETDIS (or SAP) packets are carried over UDP / IP.

3.4 Announcement interval

   The time period between repetitions of an announcement is chosen such
   that the total bandwidth used by all announcements on a single NETDIS
   group remains below a preconfigured limit. Each announcement should
   have an equal announcement interval that will be fixed by the NETDIS
   controller.




G. Bichot              Expires - September 2003               [Page 4]


Internet-Draft Core Network Discovery Protocol (NETDIS)     April 2003


4. Packet format

   The figure 2 represents an NETDIS announcement packet carried by the
   SAP packet. The SAP header as well as the payload type field is
   described in [1].

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   :                         SAP Header                            :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   :                         Payload type =                        :
   :                        'Application/NETDIS'                   :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            Org ID                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
   |                                                               |
   :                        Network Operator Name                  :
   :                          (up to 256 bytes)                    :
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   :                          Realm name                           :
   :                        (Up to 64bytes)                        :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Network type                         |
   :                        (Up to 30 characters)                  :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
   |            Payment            |          Accounting           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
   |                    Optional authentication data               |
   :                              ....                             :
   *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
   |                                                               |
   :                         Optional payload                      :
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   Figure 2: SAP carries NETDIS packet



   The figure 3 represents a NETDIS announcement packet carried by the
   NETDIS announcement protocol.





G. Bichot              Expires - September 2003               [Page 5]


Internet-Draft Core Network Discovery Protocol (NETDIS)     April 2003






   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | V=1 |L|R|R|R|C| Auth len      |         msg id hash           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            Org ID                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
   |                                                               |
   :                        Network Operator Name                  |
   :                          (up to 256 bytes)                    :
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   :                          Realm name                           :
   |                        (Up to 64 bytes)                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Network service                      |
   :                        (Up to 30 characters)                  :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
   |            Payment            |          Accounting           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
   |                    Optional authentication data               |
   :                              ....                             :
   *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
   |                                                               |
   :                         Optional payload                      :
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   Figure 2 NETDIS announcement protocol carries NETDIS packet


   V: Version Number. The version number field MUST be set to 1.

   L: Indicates whether the announcement relies to the access (local)
   network. If yes L is set to 1. Otherwise L is set to 0

   R: Reserved. NETDIS announcers MUST set this to 0, NETDIS listeners
   MUST ignore the contents of this field.

   C: Compressed bit. If the compressed bit is set to 1, the payload is
   compressed using the zlib compression algorithm [3].  If the payload
   is to be compressed and encrypted, the compression MUST be performed
   first.



G. Bichot              Expires - September 2003               [Page 6]


Internet-Draft Core Network Discovery Protocol (NETDIS)     April 2003


   Auth len: An 8 bit unsigned quantity giving the number of 32 bit
   words following the main NETDIS header that contain authentication
   data. If it is zero, no authentication header is present.

   Authentication data: containing a digital signature of the packet,
   with length as specified by the authentication length header field.
   See [1] for details. Alternatively, an organization (see Organization
   ID) may specify its own authentication mechanism. If it is the case
   the Authorization Length MUST be set to zero.

   Msg id hash: A 16 bits quantity that used in combination with the
   real name and the network service provides a globally unique
   identifier indicating the precise version of this announcement.  The
   choice of value for this field is not specified here, except that it
   MUST be unique for each Network announcement by a particular NETDIS
   announcer and it MUST be changed if the announcement description is
   modified.

   Org ID: an organization identifier. Identify the organization (e.g.
   standardization body) that has characterized this announcement. Extra
   value is defined and registered through IANA.

   Ox00000000: default value meaning no organization specified.
   0x10xxxxxx: IETF: the remaining 24 bits point out the RFC that this
   announcement relies on.

   Network operator name: this is the name of the [virtual] operator of
   the network. The network operator is a well-identified interlocutor
   for the customer, the client. The name is a bytes string that may
   contain any byte with the exceptions of 0x00 that is used to
   terminate the string. By default the byte string contains US-ASCII
   characters. The format of this field may however depend on the
   Organization ID (see above). The value may for instance correspond to
   the so-called PLMN-ID as defined in [4].

   Realm name: This gives the domain name the announcement relies on.
   This is a character string formatted according to [3]. The NETDIS
   listener may use the realm name to form the Network Access Identifier
   (NAI) as specified in [3]. One announcement relies on one real name.
   This means that an operator that wants to propose several different
   network accesses will use different real names and thus will generate
   several announcements: one per network access.

   Network service: this identifies the type of service the operator
   offers the access. The field is a bytes string that may contain any
   byte with the exceptions of 0x00 that is used to terminate the
   string. By default the byte string contains US-ASCII characters. This
   document defines a few services. New network services may be defined


G. Bichot              Expires - September 2003               [Page 7]


Internet-Draft Core Network Discovery Protocol (NETDIS)     April 2003


   according to the organization ID. One announcement relies on one
   network service. This means that an operator that wants to propose
   several network services generates several announcements: one per
   network service.

   0x00: Null byte string: Not identified: the network type is unknown.

   "IN" - Internet access: The [virtual] network operator offers the
   access to the Internet. After being authenticated by the service
   provider, the client can access to the Internet. There is no
   recommended format for the Network Operator Name. There is no extra
   information linked with this network type.

   The following values are examples. It is up to each organization body
   to defines new network service values.

   "3GPP" - 3GPP access: the [virtual] network operator offers the
   access to a 3GPP network services. Authentication and all 3GPP
   services are managed through the 3GPP network according to a well-
   known method (e.g. 3GPP).

   "3GPP2" - 3GPP2 access: the [virtual] network operator offers the
   access to a 3GPP2 network. Authentication and all 3GPP services are
   managed through the 3GPP network according to a well-known method
   (e.g. 3GPP2).

   Payment: this 16 bits field identifies the method of payment that is
   accepted by the service provider. Each bit indicates whether the
   corresponding method is available (1) or not (0). The following
   values are defined.

   All 00: not identified: the payment method is not identified
   0x0001 - pre-paid card: a pre-paid card from the provider may be used
   0x0002 - subscription: The services from that service provider are
   available only on subscription.
   0x0004 - credit card: the service may be paid online with a credit
   card.
   0x0008 - Free: the service(s) from that service provider is (are)
   free

   Accounting: defines the way the [virtual] network operator debits
   your account. Each bit indicates whether the corresponding method is
   available (1) or not (0). For each valid method an associated string
   located in the payload field indicates the price. The price is a
   bytes string that may contain any byte with the exceptions of 0x00
   that is used to terminate the string. By default the byte string
   contains US-ASCII characters. The format of this price string may
   however depend on the Organization ID (see above).


G. Bichot              Expires - September 2003               [Page 8]


Internet-Draft Core Network Discovery Protocol (NETDIS)     April 2003


   The following values are defined.

   All 00: not identified: the accounting method is not identified
   0x0001 - Divers: The method and the fees are explicitly mentioned in
   the associated string located in the payload part.
   0x02 - day: the fee is for a 24 hours period
   0x03 - minute: each minute of the session is counted.
   0x04 - Size: the fee depends on the total amount of data exchanged
   during the session
   0x05 - Connection: each successful connection implies a well-defined
   fee.

   The header is followed by the optional payload data.  If the C bit is
   set in the header the payload is compressed. The payload gathers
   optional accounting information and extra information according to a
   specification identified by the organization ID.

5. Implementation

   One context this protocol makes sense is the public WLAN.

   A mobile terminal (the NETDIS listener) discovers a set of access
   points and associates with one according to the WLAN specification
   (best signal strength for instance). No particular ESSID (or
   equivalent WLAN ID) is targeted. Once the terminal is associated it
   listens the NETDIS announcements. The user (or the terminal if only
   one choice is possible) chooses the network operator he wants to deal
   with and triggers the authentication process.
   If no announcement is present, the terminal may try to associate with
   another access point belonging to another network (different ESSID or
   equivalent WLAN ID). If there is no other WLAN (ESSID) or no
   announcement are present then NETDIS fails.

   The mobile terminal can even listens the NETDIS announcement before
   being associated with whatever access point. The terminal needs only
   to join/synchronize with an access point and it should be able to
   listen the multicast/broadcast packets). In case of several access
   points in range, the terminal listen the different announcement from
   the different access points. There may be several WLANs. The user (or
   the terminal if only one choice is possible) chooses the network
   operator he wants to deal with and triggers the association between
   the mobile terminal and the corresponding access point.

   The mobile terminal may use the realm name (found in the
   announcement) as part of the NAI [3] in order to establish the AAA
   connection (EAP) with the host associated with the chosen [virtual]
   network operator.



G. Bichot              Expires - September 2003               [Page 9]


Internet-Draft Core Network Discovery Protocol (NETDIS)     April 2003


6. Security Considerations

   NETDIS (as SAP) contains mechanisms for ensuring integrity of session
   announcements, for authenticating the origin of an announcement.

   In case of non-usage of the integrity protection mechanism some
   denial of service attacks are possible.

   - A Rogue NETDIS controller can floods the medium with wrong
     announcements.
   - A rogue NETDIS controller can spoof announcements by catching real
     announcements, modify them and forward them. Although in a
     wireless environment this type of attack is unlikely it may appear
     when the rogue controller (an access point in that case) has a
     better signal strength than the regular Controller (access point).
     The NETDIS listener would then prefer to listen the Rogue
     controller. A way to solve that problem is for the listener to
     listen several controllers (access points), one after the other,
     in order to compare the announcements.


7. References

   1  Session Announcement Protocol, RFC 2974, October 2000.
   2  Session Description Protocol, RFC 2327, April 1998.
   3  Network Access Identifier, RFC 2486
   4  Digital cellular telecommunications system (Phase 2+) (GSM);
      Universal Mobile Telecommunications System (UMTS); Numbering,
      addressing and identification




8. Acknowledgments



9. Author's Addresses

   Guillaume Bichot
   THOMSON
   2 independence way
   Princeton, NJ 08540 - USA
   Email: guillaume.bichot@thomson.net

10. Intellectual Property Statement




G. Bichot              Expires - September 2003              [Page 10]


Internet-Draft Core Network Discovery Protocol (NETDIS)     April 2003


   The IETF takes no position regarding the validity or scope of any
   intellectual property or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; neither does it represent that it
   has made any effort to identify any such rights.  Information on the
   IETF's procedures with respect to rights in standards-track and
   standards-related documentation can be found in BCP-11.  Copies of
   claims of rights made available for publication and any assurances of
   licenses to be made available, or the result of an attempt made to
   obtain a general license or permission for the use of such
   proprietary rights by implementors or users of this specification can
   be obtained from the IETF Secretariat.

11. Full Copyright Statement

   Copyright (C) The Internet Society (2003).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.
   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE
   INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR
   IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."










G. Bichot              Expires - September 2003              [Page 11]