tech-invite   World Map     

IETF     RFCs     Groups     SIP     ABNFs    |    3GPP     Specs     Gloss.     Arch.     IMS     UICC    |    Misc.    |    search     info

RFC 7256

 
 
 

Multicast Control Extensions for the Access Node Control Protocol (ANCP)

Part 4 of 4, p. 73 to 99
Prev RFC Part

 


prevText      Top      Up      ToC       Page 73 
11.  References

11.1.  Normative References

   [PIMreg]   IANA, "Protocol Independent Multicast (PIM) Parameters",
              <http://www.iana.org/assignments/pim-parameters>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2710]  Deering, S., Fenner, W., and B. Haberman, "Multicast
              Listener Discovery (MLD) for IPv6", RFC 2710, October
              1999.

   [RFC3376]  Cain, B., Deering, S., Kouvelas, I., Fenner, B., and A.
              Thyagarajan, "Internet Group Management Protocol, Version
              3", RFC 3376, October 2002.

   [RFC3810]  Vida, R. and L. Costa, "Multicast Listener Discovery
              Version 2 (MLDv2) for IPv6", RFC 3810, June 2004.

   [RFC5790]  Liu, H., Cao, W., and H. Asaeda, "Lightweight Internet
              Group Management Protocol Version 3 (IGMPv3) and Multicast
              Listener Discovery Version 2 (MLDv2) Protocols", RFC 5790,
              February 2010.

   [RFC6320]  Wadhwa, S., Moisand, J., Haag, T., Voigt, N., and T.
              Taylor, "Protocol for Access Node Control Mechanism in
              Broadband Networks", RFC 6320, October 2011.

11.2.  Informative References

   [IEEE48]   IEEE, "Guidelines for 48-Bit Global Identifier",
              <http://standards.ieee.org/regauth/oui/tutorials/
              EUI48.html>.

   [IEEE64]   IEEE, "Guidelines for 64-Bit Global Identifier",
              <http://standards.ieee.org/regauth/oui/tutorials/
              EUI64.html>.

   [ITU-T_G.1080]
              ITU-T, "Quality of experience requirements for IPTV
              services", ITU-T Recommendation G.1080, December 2008.

   [RFC2236]  Fenner, W., "Internet Group Management Protocol, Version
              2", RFC 2236, November 1997.

Top      Up      ToC       Page 74 
   [RFC4601]  Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas,
              "Protocol Independent Multicast - Sparse Mode (PIM-SM):
              Protocol Specification (Revised)", RFC 4601, August 2006.

   [RFC5713]  Moustafa, H., Tschofenig, H., and S. De Cnodder, "Security
              Threats and Security Requirements for the Access Node
              Control Protocol (ANCP)", RFC 5713, January 2010.

   [RFC5851]  Ooghe, S., Voigt, N., Platnic, M., Haag, T., and S.
              Wadhwa, "Framework and Requirements for an Access Node
              Control Mechanism in Broadband Multi-Service Networks",
              RFC 5851, May 2010.

   [RFC6614]  Winter, S., McCauley, M., Venaas, S., and K. Wierenga,
              "Transport Layer Security (TLS) Encryption for RADIUS",
              RFC 6614, May 2012.

   [RFC6733]  Fajardo, V., Arkko, J., Loughney, J., and G. Zorn,
              "Diameter Base Protocol", RFC 6733, October 2012.

Top      Up      ToC       Page 75 
Appendix A.  Example of Messages and Message Flows

   This appendix provides an example in which most of the possible
   message flows for multicast control are illustrated.  This appendix
   is for informational purposes only.  In case of discrepancy with text
   in the body of this document, the text in the body of the document is
   to be considered as the normative text.

   Assume the following, for a given access port:

   o  The basic subscribed service is white-listed.  The AN will be
      responsible for admission control for this service.

   o  Some premium services are available, but requests for these
      services must be referred to the Policy Server for proper credit
      processing.  For this reason, they are grey-listed.  The NAS will
      be responsible for admission control for these services.

   o  The subscriber has asked that certain services be blocked so that
      his children cannot view them.  These services are black-listed.

   o  All of the above services are Source-Specific Multicast (SSM).  In
      addition, by means that bypass the AN, the subscriber can signal
      intent to join an on-line game service that is Any-Source
      Multicast (ASM).  The NAS is responsible for admission control for
      this service.

   o  Bandwidth delegation is, in effect, to share video bandwidth
      between the AN and the NAS.

   The stated conditions require the use of four of the five
   capabilities specified in this memo.

A.1.  Provisioning Phase

   Assume that capability negotiation has been completed between the AN
   and NAS and that the set of negotiated capabilities includes the
   following four multicast capabilities: NAS-initiated multicast
   replication, conditional access and admission control with white and
   black lists, conditional access and admission control with grey
   lists, and bandwidth delegation.  At this point, the NAS can
   provision the service profiles on the AN and enable admission control
   at the AN for white-listed flows.  To do this, the NAS sends the AN a
   Provisioning message containing this information.  An example message
   providing the profile for our assumed subscriber is shown in
   Figure 22.  The message has the following contents:

Top      Up      ToC       Page 76 
   o  Message Type is 93.

   o  The Result and Result Code fields in the header are set to zeroes,
      as specified [RFC6320].

   o  A Transaction Identifier is assigned by the NAS.

   o  The Multicast-Service-Profile TLV (of which typically there would
      be multiple instances) contains a Multicast-Service-Profile-Name
      TLV (with a length of 20 octets assumed for the example) and three
      List-Action TLVs, one each for the white, grey, and black lists
      within the profile.  The white list flows come in two sets of
      group addresses: 233.252.0.0/29, coming from a server at
      192.0.2.15, and 233.252.0.32/29, coming from a server at
      192.0.2.16.  The grey-listed flows are in the band
      233.252.0.64/29, coming from a server at 192.0.2.21.  Finally, the
      black list flows are two individual flows that happen to overlap
      with the grey list band: 233.252.0.65 and 233.252.0.69, also with
      source 192.0.2.21.

   o  The White-List-CAC TLV indicates that the AN does admission
      control on white-listed flows.

                        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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type (0x880C)          |           Length = 132        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Version     | Msg Type = 93 | Res=0 |    Result Code = 0    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Partition ID  |            Transaction Identifier             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |I|      SubMessage Number      |       Length = 132            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Mcast-Service-Profile  0x0013 |       TLV Length = 112        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Mcast-Svc-Profile-Name 0x0018 |  Embedded TLV Length = 20     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  Multicast service profile name               |
   ~                  = "Cust 0127-53681-0003"                     ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = List-Action 0x0021 |   Embedded TLV Length = 28    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Operation = 1 | List Type = 1 |        Reserved = 0x0000      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Address Family = 1         |       List Length = 20        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Top      Up      ToC       Page 77 
   | G PrefLen = 29| S PrefLen = 32| Group prefix =                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      233.252.0.0              | Source prefix =               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      192.0.2.15               | G PrefLen = 29| S PrefLen = 32|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Group prefix = 233.252.0.32                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Source prefix = 192.0.2.16                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = List-Action 0x0021 |   Embedded TLV Length = 18    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Operation = 1 | List Type = 3 |        Reserved = 0x0000      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Address Family = 1         |       List Length = 10        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | G PrefLen = 29| S PrefLen = 32| Group prefix =                /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /      233.252.0.64             | Source prefix =               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /      192.0.2.21               |   Padding = 0x0000            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = List-Action 0x0021 |   Embedded TLV Length = 28    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Operation = 1 | List Type = 2 |        Reserved = 0x0000      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Address Family = 1         |       List Length = 20        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | G PrefLen = 32| S PrefLen = 32| Group prefix =                /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /      233.252.0.65             | Source prefix =               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /      192.0.2.21               | G PrefLen = 32| S PrefLen = 32|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Group prefix = 233.252.0.69                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Source prefix = 192.0.2.21                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Type = White-List-CAC  0x0024 |          TLV Length = 0       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Figure 22: Example Provisioning Message

   Note that the padding after the middle List-Action TLV is counted as
   part of the length of the Multicast-Service-Profile TLV but is not
   included in the length of that List-Action TLV.  Note also that the
   Length field in the message header, unlike those in the TLVs,
   includes the message header itself, as required by [RFC6320].

Top      Up      ToC       Page 78 
   Finally, note that the Provisioning message does not include a
   MRepCtl-CAC TLV since in our example admission control for grey-
   listed flows and for NAS-initiated replication is performed by the
   NAS.

   As soon as the AN port comes up, the AN sends an ANCP PORT_UP message
   to the NAS specifying the Access Loop Circuit ID.  The NAS replies
   with an ANCP Port Management message that, together with the other
   parameters, includes the multicast service profile name to be
   associated to that port along with the initial amount of delegated
   bandwidth.  The corresponding message flow is illustrated in
   Figure 23.

    +----------+      +---------+         +-----+               +-----+
    |Subscriber|      |  Home   |         | AN  |               | NAS |
    +----------+      | Gateway |         +-----+               +-----+
         |            +---------+            |                     |
         |                 |                 |                     |
         |                 |                 |                     |
         |                 |   DSL Synch.    |                     |
         |                 |---------------->|                     |
         |                 |                 |(M1)PORT_UP(Port ID) |
         |                 |                 |-------------------->|
         |                 |                 |                    (*)
         |                 |                 |(M2) PORT_MNGT       |
         |                 |                 |    (Port ID,        |
         |                 |                 |Mcast S Profile Name,|
         |                 |                 |Bandwidth Allocation)|
         |                 |                 |<--------------------|


   (*) The NAS may optionally seek direction from an external
       Authorization/Policy Server

    Figure 23: Configuring an AN Port with Multicast Service Profile ID
                      and Delegated Bandwidth Amount

   The Port Management message will typically contain other TLVs, but
   our example (Figure 24) just shows the Target, Multicast-Service-
   Profile-Name, and Bandwidth-Allocation TLVs.  The Target TLV
   identifies the subscriber line, the Multicast-Service-Profile-Name
   TLV is identical to the one contained in the Provisioning message,
   and the Bandwidth-Allocation TLV provides just enough bandwidth (2000
   kbits/s) for one channel to start with.

   The following fields in the Port Management message header are shown
   with specific values either as directed by the base protocol document
   or for the sake of our example:

Top      Up      ToC       Page 79 
   o  Message Type is 32.

   o  Result is set to Nack (0x1) for this example.

   o  Result Code is 0.

   o  A Transaction Identifier is assigned by the NAS.

   o  Port is set to 0.

   o  Event Sequence Number, the R flag and the other bits marked x,
      Duration, the Event Flags, and the Flow Control Flags are all
      irrelevant for this function and are set to 0.

   o  Function is set to "Configure Connection Service Data" (8).

   o  X-Function is set to 0.

   o  Tech Type is "DSL" (5).

   o  Block lengths are calculated assuming a Circuit-Id length of 4 in
      our example.  Recall that the example Multicast-Service-Profile-
      Name TLV length is 20.

Top      Up      ToC       Page 80 
                        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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type (0x880C)          |           Length = 84         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Version     | Msg Type = 32 | Res=1 |    Result Code = 0    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Partition ID  |            Transaction Identifier             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |I|      SubMessage Number      |           Length = 84         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             Port = 0                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Port Session Number                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Event Sequence Number = 0                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |R|x|x|x|x|x|x|x| Duration = 0  | Function = 0x8| X-Function = 0|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Event Flags         |        Flow Control Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |x|x|x|x|x|x|x|x| Msg Type = 32 |  Tech Type=5  | Blk Len = 56  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     # of TLVs = 3             | Extension Block length = 44   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = Target      0x1000 |        Target TLV Length = 8  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Access-Loop-Circuit-ID 0x0001 |        Circuit-ID Length = 4  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Access Loop Circuit ID                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Mcast-Svc-Profile-Name 0x0018 |       TLV Length = 20         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  Multicast service profile name               |
   ~                  = "Cust 0127-53681-0003"                     ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Bandwidth-Allocation  0x0015 |       TLV Length = 4          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Bandwidth value = 2000 (kbits/s)               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                Figure 24: Example Port Management Message

Top      Up      ToC       Page 81 
A.2.  Handling Grey-Listed Flows

   Suppose now that the subscriber chooses to watch the premium channel
   characterized by source 192.0.2.21, group 233.252.0.67.  Upon
   receiving the join request, the AN matches it against the multicast
   service profile for the port and determines that it is a grey-listed
   flow.  Figure 25 illustrates the resulting ANCP message flow for the
   case of a simple join and leave, when admission control for grey-
   listed flows is not activated on the AN.

   To start the flow, the AN sends a Multicast Admission Control message
   (M1) to the NAS.  The NAS decides whether the flow can be admitted,
   applying both policy and bandwidth criteria.  It returns its decision
   (positive in this example) in a Multicast Replication Control message
   (M2).  Later, when the subscriber leaves the flow, the AN informs the
   NAS by sending another Multicast Admission Control message.

   +----------+    +-------+   +-----+    ANCP    +-----+
   |Subscriber|    | Home  |   | AN  |<---------->| NAS |
   +----------+    |Gateway|   +-----+            +-----+
         |         +-------+     |                   |
         |           |           |     Multicast     |
         |      Join(Grey-Fl)    |     Admission     |
         |-----------+---------->|      Control (M1) |
         |           |           |------------------>|
         |           |           |                   |  (NAS performs
         |           |           |     Multicast     |   admission
         |           |           |     Replication  (*)  control)
         |           |           |     Control (M2)  |
         |     Mcast Grey Flow   |<------------------|
         |<======================+                   |
         |           |           |                   |
         ~           ~           ~                   ~
         |           |           |     Multicast     |
         |     Leave(Grey-Fl)    |     Admission     |
         |-----------+---------->|      Control (M3) |
         |           |           |------------------>|
         |           |           |                   |

   Grey-Fl: multicast flow matching an entry in grey list

   (*) The NAS may optionally seek direction from an external
   Authorization/Policy Server.

       Figure 25: Successful Join/Leave Operations, Grey-Listed Flow

Top      Up      ToC       Page 82 
   The Multicast Admission Control message M1 contains:

   o  an ANCP Header with:

      *  Message Type is 145;

      *  Result = Ignore (0x0); and

      *  a Transaction Identifier assigned by the AN.

   o  a Target TLV identifying the AN Port

   o  a Command TLV containing:

      *  Command Code = "Add" (1);

      *  Accounting = "No" (0);

      *  a Multicast-Flow embedded TLV indicating the multicast flow for
         which the AN received the IGMP join: flow type "SSM" (2),
         address family "IPv4" (1), Group address = 233.252.0.67, Source
         Address = 192.0.2.21; and

      *  a Request-Source-Device-Id embedded TLV containing the IGMP
         join source local device identifier value 5.

Top      Up      ToC       Page 83 
   The Multicast Admission Control message M1 is illustrated in
   Figure 26:

                        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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type (0x880C)          |           Length = 98         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Version     | Msg Type=145  | Res=0 |    Result Code = 0    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Partition ID  |            Transaction Identifier             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |I|      SubMessage Number      |           Length = 98         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = Target      0x1000 |        Target TLV Length = 8  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Access-Loop-Circuit-ID 0x0001 |        Circuit-ID Length = 4  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Access Loop Circuit ID                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = Command     0x0011 |       TLV Length = 28         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Cmd Code = 1 |   Acctg = 0   |      Reserved = 0x0000        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Type = Multicast-Flow  0x0019 |   Embedded TLV Length = 12    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Flow Type = 2 |  Addr Fam = 1 |     Reserved = 0x0000         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             Multicast Group Address = 233.252.0.67            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Unicast Source Address =  192.0.2.21            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+--+
   |Request-Source-Device-Id 0x0092|   Embedded TLV length = 4     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Value = 5                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Figure 26: Multicast Admission Control Message Seeking to Add a Flow

   The Multicast Replication Control message M2 contains:

   o  an ANCP Header with:

      *  Message Type = "Multicast Replication Control" (144);

      *  Result= 0x1 (Nack); and

      *  a Transaction Identifier assigned by the NAS;

Top      Up      ToC       Page 84 
   o  a Target TLV identifying the AN Port

   o  a Command TLV containing:

      *  Command Code = "Add" (1);

      *  Accounting = "Yes" (1), since in our example the operator wants
         accounting on this flow; and

      *  a Multicast-Flow embedded TLV indicating the multicast flow
         that the NAS is admitting for this access line: flow type "SSM"
         (2), address family "IPv4" (1), Group address = 233.252.0.67,
         Source Address = 192.0.2.21.

   The Multicast Admission Control message M2 is illustrated in
   Figure 27.

                        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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type (0x880C)          |           Length = 48         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Version     | Msg Type=144  | Res=1 |    Result Code =  0   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Partition ID  |            Transaction Identifier             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |I|      SubMessage Number      |           Length = 48         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Target          Type = 0x1000 |        Target TLV Length = 8  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Access-Loop-Circuit-ID 0x0001 |        Circuit-ID Length = 4  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Access Loop Circuit ID                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = Command     0x0011 |       TLV Length = 20         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Cmd Code = 1 |   Acctg = 1   |      Reserved = 0x0000        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Type = Multicast-Flow  0x0019 |   Embedded TLV Length = 12    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Flow Type = 2 |  Addr Fam = 1 |     Reserved = 0x0000         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             Multicast Group Address = 233.252.0.67            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Unicast Source Address =  192.0.2.21            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     Figure 27: Multicast Replication Control Message Admitting a Flow

Top      Up      ToC       Page 85 
   The Multicast Admission Control message M3 advising the NAS that the
   flow has been terminated contains:

   o  an ANCP Header with:

      *  Message Type is 145;

      *  Result = Ignore (0x0); and

      *  a Transaction Identifier assigned by the AN.

   o  a Target TLV identifying the access line

   o  a Command TLV containing:

      *  a Command Code = "Delete" (2);

      *  Accounting = "No" (0);

      *  a Multicast-Flow embedded TLV indicating the multicast flow for
         which the AN received the IGMP leave: flow type "SSM" (2),
         address family "IPv4" (1), Group address = 233.252.0.67, Source
         Address = 192.0.2.21; and

      *  a Request-Source-Device-Id embedded TLV containing the IGMP
         leave request source, the device identified by the local value
         5.

Top      Up      ToC       Page 86 
   The Multicast Admission Control message M3 is illustrated in
   Figure 28.

                        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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type (0x880C)          |           Length              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Version     | Msg Type=145  | Res=0 |    Result Code = 0    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Partition ID  |            Transaction Identifier             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |I|      SubMessage Number      |           Length              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = Target      0x1000 |        Target TLV Length = 8  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Access-Loop-Circuit-ID 0x0001 |        Circuit-ID Length = 4  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Access Loop Circuit ID                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = Command     0x0011 |       TLV Length = 28         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Cmd Code = 2 |    Acctg = 0  |      Reserved = 0x0000        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Multicast-Flow  Type = 0x0019 |   Embedded TLV Length = 12    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Flow Type = 2 |  Addr Fam = 1 |     Reserved = 0x0000         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             Multicast Group Address = 233.252.0.67            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Unicast Source Address =  192.0.2.21            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Request-Source-Device-Id 0x0092|   Embedded TLV length = 4     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Value = 5                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

       Figure 28: Multicast Admission Control Message Signaling Flow
                                Termination

Top      Up      ToC       Page 87 
A.3.  Handling White-Listed Flows

   The NAS has enabled white list admission control on the AN, and the
   bandwidth delegation capability has been negotiated.  White-listed
   flows in themselves require no messages to the NAS, either upon
   admission or upon termination, but the AN may request an increase in
   the amount of delegated bandwidth if it needs the increase to admit a
   flow.

   Consider an example where the AN has already admitted one white-
   listed flow, thereby using up the initially provisioned amount of
   delegated bandwidth (2000 kbits/s).  A request is received to join a
   new flow in the white list range.  The AN chooses to send a Bandwidth
   Reallocation Request message to the NAS, requesting that the
   delegated bandwidth allocation be increased to 4000 kbits/s at a
   minimum and preferably to 6000 kbits/s.

   In our example, the NAS is managing bandwidth tightly, as witnessed
   by its minimal initial allocation of just enough for one flow.  It is
   willing to provide the minimum additional amount only and therefore
   returns a Bandwidth Transfer message where the delegated bandwidth
   value is given as 4000 kbits/s.  With this amount, the AN is able to
   admit the second white-listed flow.  The AN could send a similar
   Bandwidth Transfer message back to the NAS bringing the delegated
   bandwidth amount back down to 2000 kbits/s when one of the flows is
   terminated, but this shows nothing new and is omitted.

   As one more point of illustration, suppose that the NAS chooses to
   audit the current amount of delegated bandwidth to ensure it is
   synchronized with the AN.  It sends a Delegated Bandwidth Query
   Request message to the AN and receives a Delegated Bandwidth Query
   Response message with the current allocation as the AN sees it.

   The complete message flow is shown in Figure 29.

Top      Up      ToC       Page 88 
   +----------+    +-------+   +-----+    ANCP    +-----+
   |Subscriber|    | Home  |   | AN  |<---------->| NAS |
   +----------+    |Gateway|   +-----+            +-----+
         |         +-------+     |                   |
         |           |           |                   |
         |      Join(White-F1)   |                   |
         |-----------+---------->|                   |
         |           |           |AN performs        |
         |  Mcast White Flow 1   | admission control |
         |<======================+                   |
         |           |           |                   |
         |      Join(White-F2)   |                   |
         |-----------+---------->|No bandwidth left  |
         |           |           |                   |
         |           |           |Bandwidth          |
         |           |           | Reallocation Req  |
         |           |           |------------------>|(M1)
         |           |           |                   |
         |           |           |                  (*)
         |           |           |Bandwidth Transfer |
         |           AN can now  |<------------------|(M2)
         |           admit flow  |                   |
         |   Mcast White Flow 2  |                   |
         |<======================+                   |
         |           |           |                   |
         ~           ~           ~                   ~
         |           |           |Delegated Bandwidth|
         |           |           | Query request     |
         |           |           |<------------------|(M3)
         |           |           |                   |
         |           |           |Delegated Bandwidth|
         |           |           | Query response    |
         |           |           |------------------>|(M4)
         |           |           |                   |

   (*) The NAS may optionally seek direction from an external
   Authorization/Policy Server.

      Figure 29: Successful Join/Leave Operations, White-Listed Flow

Top      Up      ToC       Page 89 
   The Bandwidth Reallocation Request message (M1) is shown in
   Figure 30.  The contents require little explanation.  The Message
   Type for the Bandwidth Reallocation Request is 146.  The Result field
   is set to Ignore (0x0).  Besides the Target TLV, the message has one
   other TLV, the Bandwidth-Request, with a TLV Type of 0x0016.  The TLV
   contains Required Amount and Preferred Amount fields, set to 4000 and
   6000 kbits/s respectively.

                        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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type (0x880C)          |           Length = 36         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Version     | Msg Type=146  | Res=0 |     Result Code = 0   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Partition ID  |            Transaction Identifier             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |I|      SubMessage Number      |           Length = 36         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = Target      0x1000 |        Target TLV Length = 8  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Access-Loop-Circuit-ID 0x0001 |        Circuit-ID Length = 4  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Access Loop Circuit ID                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Bandwidth-Request    0x0016 |          TLV Length = 8       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Required Amount = 4000 (kbits/s)                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Preferred Amount = 6000 (kbits/s)               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             Figure 30: Bandwidth Reallocation Request Message

Top      Up      ToC       Page 90 
   The Bandwidth Transfer message (M2) is shown in Figure 31.  Again,
   the contents are easily understood.  The Message Type for the
   Bandwidth Transfer message is 147.  The Result field is set to
   Success (0x3).  The message contains the Target TLV and the
   Bandwidth-Allocation TLV.  The latter has a TLV Type of 0x0015 and
   contains a Delegated Amount field, set to 4000 kbits/s.

                        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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type (0x880C)          |           Length = 32         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Version     | Msg Type=147  | Res=3 |     Result Code = 0   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Partition ID  |            Transaction Identifier             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |I|      SubMessage Number      |           Length = 32         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = Target      0x1000 |        Target TLV Length = 8  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Access-Loop-Circuit-ID 0x0001 |        Circuit-ID Length = 4  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Access Loop Circuit ID                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Bandwidth-Allocation  0x0015 |          TLV Length = 4       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Delegated Amount = 4000 (kbits/s)              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Figure 31: NAS Response, Bandwidth Transfer Message

Top      Up      ToC       Page 91 
   The Delegated Bandwidth Query Request message (M3) is shown in
   Figure 32.  The Message Type for the Delegated Bandwidth Query
   request message is 148.  The Result field is set to AckAll (0x2).
   The message contains the Target TLV only.

                        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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type (0x880C)          |           Length = 24         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Version     | Msg Type=148  | Res=2 |     Result Code = 0   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Partition ID  |            Transaction Identifier             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |I|      SubMessage Number      |           Length = 24         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = Target      0x1000 |        Target TLV Length = 8  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Access-Loop-Circuit-ID 0x0001 |        Circuit-ID Length = 4  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Access Loop Circuit ID                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

           Figure 32: Delegated Bandwidth Query Request Message

Top      Up      ToC       Page 92 
   Finally, the Delegated Bandwidth Query Response message (M4) is shown
   in Figure 33.  The Message Type for the Delegated Bandwidth Query
   response message is 148.  The Result field is set to Success (0x3).
   The message contains the Target TLV and the Bandwidth-Allocation TLV
   with the Delegated Amount field set to 4000 kbits/s.

                        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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type (0x880C)          |           Length = 32         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Version     | Msg Type=148  | Res=3 |     Result Code = 0   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Partition ID  | Transaction Identifier (copied from request)  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |I|      SubMessage Number      |           Length = 32         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = Target      0x1000 |        Target TLV Length = 8  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Access-Loop-Circuit-ID 0x0001 |        Circuit-ID Length = 4  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Access Loop Circuit ID                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Bandwidth-Allocation  0x0015 |          TLV Length = 4       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Delegated Amount = 4000 (kbits/s)              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

           Figure 33: Delegated Bandwidth Query Response Message

A.4.  Handling of Black-Listed Join Requests

   This section introduces no new messages, since requests for flows in
   the black list are simply ignored.  The one thing to point out is the
   overlap in our example between the set of flows in the grey list and
   the flows in the black list.  This does not create any ambiguity,
   since not only does the black list have priority for equally good
   matches, but also the black list entries are more specific (group
   prefix lengths of 32 versus 29 in the grey list) than the grey list
   flow prefixes.

A.5.  Handling of Requests to Join and Leave the On-Line Game

   The final class of multicast control actions in our example allows
   the subscriber to enter and leave the on-line game.  As described at
   the beginning of this example, the game uses Any-Source Multicast
   (ASM).  Subscriber signaling bypasses the AN, going directly to the
   NAS (e.g., through a web interface).

Top      Up      ToC       Page 93 
   When the subscriber requests to join the game, the NAS (after
   applying policy and bandwidth checks) sends a Multicast Replication
   Control message to the AN to enable the flow on the port concerned.
   The AN knows not to apply admission control, since it has not
   received an MRepCtl-CAC TLV in the Provisioning message.  When the
   subscriber leaves, the NAS sends another Multicast Replication
   Control message to delete the flow.  This message sequence is shown
   in Figure 34.

   It is possible that the NAS finds that there is not enough bandwidth
   available to accommodate the subscriber's request.  In this case, the
   NAS could send a Bandwidth Reallocation Request message to the AN,
   asking it to release some of the bandwidth delegated to it.  This is
   not shown in the present example, since the messages are the same as
   those already presented with the exception that the Preferred Amount
   in the request will be *less than* or equal to the Required amount,
   rather than *greater than* or equal to it.

   +----------+    +-------+   +-----+    ANCP    +-----+
   |Subscriber|    | Home  |   | AN  |<---------->| NAS |
   +----------+    |Gateway|   +-----+            +-----+
         |         +-------+     |                   |
         |           |           |                   |
         |      Join game        |                   |
         |-----------+------------------------------>|
         |           |           |     Multicast     |   NAS performs
         |           |           |     Replication  (*)  admission
         |           |           |     Control (M1)  |   control
         |     Mcast Game Flow   |<------------------|
         |<=====================>+                   |
         |           |           |                   |
         ~           ~           ~                   ~
         |           |           |                   |
         |     Leave game        |                   |
         |-----------+------------------------------>|
         |           |           |     Multicast     |
         |           |           |     Replication   |
         |           |           |     Control (M2)  |
         |     Mcast Game Flow   |<------------------|
         |       discontinued    |                   |
         |           |           |                   |

   (*) The NAS may optionally seek direction from an external
   Authorization/Policy Server.

             Figure 34: NAS-Initiated Flows for On-Line Gaming

Top      Up      ToC       Page 94 
   The Multicast Replication Control message (M1) in Figure 35 looks
   like the message in Figure 27 with two exceptions.  The first is that
   the NAS has the option to set the Result field to AckAll (0x02) if it
   needs positive reassurance that the flow has been enabled.  This was
   not done here to save having to depict a response differing only in
   the Result field.  The larger difference in this example is that the
   flow description in the Multicast-Flow embedded TLV is that of an ASM
   multicast group (Flow Type = 1) with IPv4 (1) group address
   233.252.0.100.

                        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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type (0x880C)          |           Length = 44         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Version     | Msg Type=144  | Res=1 |     Result Code = 0   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Partition ID  |            Transaction Identifier             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |I|      SubMessage Number      |           Length = 44         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = Target      0x1000 |        Target TLV Length = 8  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Access-Loop-Circuit-ID 0x0001 |        Circuit-ID Length = 4  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Access Loop Circuit ID                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = Command     0x0011 |       TLV Length = 16         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Cmd Code = 1 |   Acctg = 1   |      Reserved = 0x0000        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Type = Multicast-Flow  0x0019 |   Embedded TLV Length = 12    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Flow Type = 1 |  Addr Fam = 1 |     Reserved = 0x0000         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Multicast Group Address =  233.252.0.100           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+--+

        Figure 35: Enabling the Subscriber to Join an On-Line Game

   Message M2 terminating the flow when the subscriber leaves the game
   looks the same as the message in Figure 35 with two exceptions: the
   Command Code becomes "Delete" (2), and Accounting is set to "No" (0)
   to turn off flow accounting.  Of course, the Transaction Identifier
   values will differ between the two messages.

Top      Up      ToC       Page 95 
A.6.  Example Flow for Multicast Flow Reporting

   The example in this section is independent of the example in the
   preceding sections.

   Figure 36 illustrates a message flow in a case where the NAS queries
   the AN about which multicast flows are active on port 10, port 11,
   and port 20 of the AN.

   +----------+    +-------+   +-----+    ANCP    +-----+
   |Subscriber|    | Home  |   | AN  |<---------->| NAS |
   +----------+    |Gateway|   +-----+            +-----+
         |         +-------+     |                   |
         |             |         |  Multicast Flow   |
         |             |         |  Query Request    |
         |             |         |      (M1)         |
         |             |         |<------------------|
         |             |         |                   |
         |             |         | Multicast Flow    |
         |             |         | Query Response    |
         |             |         |      (M2)         |
         |             |         |------------------>|
         |             |         |                   |
         |             |         |                   |



               Figure 36: Per-Port Multicast Flow Reporting

Top      Up      ToC       Page 96 
   The Multicast Flow Query Request message (M1) is illustrated in
   Figure 37.  The Message Type is 149.  The Result field is set to
   AckAll (0x2).  Three Target TLVs are present, identifying port 10,
   port 20, and port 11, respectively.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type (0x880C)          |           Length              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Version     | Msg Type = 149| Res=2 |     Result Code = 0   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Partition ID  |            Transaction Identifier             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |I|      SubMessage Number      |           Length              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = Target      0x1000 |        Target TLV Length      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Access-Loop-Circuit-ID 0x0001 |        Circuit-ID Length      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                    Access Loop Circuit ID (port10)            ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = Target      0x1000 |        Target TLV Length      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Access-Loop-Circuit-ID 0x0001 |        Circuit-ID Length      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                    Access Loop Circuit ID (port20)            ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = Target      0x1000 |        Target TLV Length      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Access-Loop-Circuit-ID 0x0001 |        Circuit-ID Length      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                    Access Loop Circuit ID (port11)            ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

       Figure 37: Multicast Flow Query Request Message for Per-Port
                         Multicast Flow Reporting

Top      Up      ToC       Page 97 
   The Multicast Flow Query Response message (M2) is illustrated in
   Figure 38.  It indicates that there is one active multicast flow
   [(192.0.2.1, 233.252.0.4)] on port 10, no active multicast flow on
   port 20, and two active multicast flows [(192.0.2.1, 233.252.0.4) and
   (192.0.2.2, 233.252.0.10)] on port 11.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type (0x880C)          |           Length              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Version     | Msg Type = 149|Rslt=3 |    Result Code = 0    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Partition ID  |            Transaction Identifier             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |I|      SubMessage Number      |           Length              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = Target      0x1000 |        Target TLV Length      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Access-Loop-Circuit-ID 0x0001 |        Circuit-ID Length      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                   Access Loop Circuit ID (port10)             ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Type = Multicast-Flow  0x0019 |    Embedded TLV Length = 12   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Flow Type = 2 |  Addr Fam = 1 |       Reserved = 0x0000       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             Multicast Group Address = 233.252.0.4             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Unicast Source Address = 192.0.2.1             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+--+
   | TLV Type = Target      0x1000 |        Target TLV Length      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Access-Loop-Circuit-ID 0x0001 |        Circuit-ID Length      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                   Access Loop Circuit ID (port20)             ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV Type = Target      0x1000 |        Target TLV Length      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Access-Loop-Circuit-ID 0x0001 |        Circuit-ID Length      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                    Access Loop Circuit ID (port11)            ~
   |                                                               |

Top      Up      ToC       Page 98 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Type = Multicast-Flow  0x0019 |    Embedded TLV Length = 12   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Flow Type = 2 |  Addr Fam = 1 |       Reserved = 0x0000       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             Multicast Group Address = 233.252.0.4             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Unicast Source Address = 192.0.2.1             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+--+
   | Type = Multicast-Flow  0x0019 |   Embedded TLV Length = 12    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Flow Type = 2 |  Addr Fam = 1 |       Reserved = 0x0000       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             Multicast Group Address: 233.252.0.10             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Unicast Source Address = 192.0.2.2             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+--+

       Figure 38: Multicast Flow Query Response Message for Per-Port
                         Multicast Flow Reporting

Top      Up      ToC       Page 99 
Authors' Addresses

   Francois Le Faucheur
   Cisco Systems
   45 Allee des Ormes
   Mougins  06250
   France

   Phone: +33 4 97 23 26 19
   EMail: flefauch@cisco.com


   Roberta Maglione
   Cisco Systems
   181 Bay Street
   Toronto, ON  M5J 2T3
   Canada

   EMail: robmgl@cisco.com


   Tom Taylor
   Huawei Technologies
   Ottawa
   Canada

   EMail: tom.taylor.stds@gmail.com