Tech-invite3GPPspaceIETFspace
959493929190898887868584838281807978777675747372717069686766656463626160595857565554535251504948474645444342414039383736353433323130292827262524232221201918171615141312111009080706050403020100
in Index   Prev   Next

RFC 7256

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

Pages: 99
Proposed Standard
Updates:  6320
Part 4 of 4 – Pages 73 to 99
First   Prev   None

Top   ToC   RFC7256 - Page 73   prevText

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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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   ToC   RFC7256 - 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