idnits 2.17.1 draft-leymann-banana-signaling-attributes-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (December 21, 2017) is 2318 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'TR-069' is defined on line 1373, but no explicit reference was found in the text == Unused Reference: '802Type' is defined on line 1389, but no explicit reference was found in the text -- Possible downref: Non-RFC (?) normative reference: ref. 'Port-NO' -- Possible downref: Non-RFC (?) normative reference: ref. 'Pro-NO' ** Downref: Normative reference to an Informational RFC: RFC 2697 -- Possible downref: Non-RFC (?) normative reference: ref. 'TR-069' -- Possible downref: Normative reference to a draft: ref. 'BANANA-signaling' Summary: 1 error (**), 0 flaws (~~), 3 warnings (==), 5 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 BANANA N. Leymann 3 Internet Draft C. Heidemann 4 Category: Proposed Standard Deutsche Telekom AG 5 L. Chen 6 M. Zhang 7 B. Sarikaya 8 Huawei 9 M. Cullen 10 Painless Security 11 Expires: June 24, 2018 December 21, 2017 13 BANdwidth Aggregation for interNet Access (BANANA) 14 Attributes for the Control Protocol of Bonding Tunnels 15 draft-leymann-banana-signaling-attributes-01.txt 17 Abstract 19 This memo specifies the attributes for the control protocol of 20 BANdwidth Aggregation for interNet Access (BANANA). 22 Status of this Memo 24 This Internet-Draft is submitted to IETF in full conformance with the 25 provisions of BCP 78 and BCP 79. 27 Internet-Drafts are working documents of the Internet Engineering 28 Task Force (IETF), its areas, and its working groups. Note that 29 other groups may also distribute working documents as 30 Internet-Drafts. 32 Internet-Drafts are draft documents valid for a maximum of six months 33 and may be updated, replaced, or obsoleted by other documents at any 34 time. It is inappropriate to use Internet-Drafts as reference 35 material or to cite them other than as "work in progress." 37 The list of current Internet-Drafts can be accessed at 38 http://www.ietf.org/1id-abstracts.html 40 The list of Internet-Draft Shadow Directories can be accessed at 41 http://www.ietf.org/shadow.html 43 Copyright and License Notice 45 Copyright (c) 2017 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents 50 (http://trustee.ietf.org/license-info) in effect on the date of 51 publication of this document. Please review these documents 52 carefully, as they describe your rights and restrictions with respect 53 to this document. Code Components extracted from this document must 54 include Simplified BSD License text as described in Section 4.e of 55 the Trust Legal Provisions and are provided without warranty as 56 described in the Simplified BSD License. 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 61 2. Acronyms and Terminology . . . . . . . . . . . . . . . . . . . 3 62 3. GRE Tunnel Setup Request . . . . . . . . . . . . . . . . . . . 4 63 3.1. Client Identification Name . . . . . . . . . . . . . . . . 4 64 3.2. Session ID . . . . . . . . . . . . . . . . . . . . . . . . 4 65 3.3. Synchronization Rate . . . . . . . . . . . . . . . . . . . 5 66 4. GRE Tunnel Setup Accept . . . . . . . . . . . . . . . . . . . . 6 67 4.1. R IPv4 Address . . . . . . . . . . . . . . . . . . . . . . 6 68 4.2. R IPv6 Address . . . . . . . . . . . . . . . . . . . . . . 6 69 4.3. Session ID . . . . . . . . . . . . . . . . . . . . . . . . 7 70 4.4. RTT Difference Threshold . . . . . . . . . . . . . . . . . 7 71 4.5. Bypass Bandwidth Check Interval . . . . . . . . . . . . . . 8 72 4.6. Active Hello Interval . . . . . . . . . . . . . . . . . . . 8 73 4.7. Hello Retry Times . . . . . . . . . . . . . . . . . . . . . 9 74 4.8. Idle Timeout . . . . . . . . . . . . . . . . . . . . . . . 10 75 4.9. Bonding Key Value . . . . . . . . . . . . . . . . . . . . . 10 76 4.10. Configured Link Upstream Bandwidth . . . . . . . . . . . . 11 77 4.11. Configured Link Downstream Bandwidth . . . . . . . . . . . 11 78 4.12. RTT Difference Threshold Violation . . . . . . . . . . . . 12 79 4.13. RTT Difference Threshold Compliance . . . . . . . . . . . 13 80 4.14. Idle Hello Interval . . . . . . . . . . . . . . . . . . . 13 81 4.15. No Traffic Monitored Interval . . . . . . . . . . . . . . 14 82 5. GRE Tunnel Setup Deny . . . . . . . . . . . . . . . . . . . . . 14 83 5.1. Error Code . . . . . . . . . . . . . . . . . . . . . . . . 15 84 6. GRE Tunnel Hello . . . . . . . . . . . . . . . . . . . . . . . 16 85 6.1. Timestamp . . . . . . . . . . . . . . . . . . . . . . . . . 16 86 6.2. IPv6 Prefix Assigned by the Remote . . . . . . . . . . . . 17 87 7. GRE Tunnel Tear Down . . . . . . . . . . . . . . . . . . . . . 17 88 8. GRE Tunnel Notify . . . . . . . . . . . . . . . . . . . . . . . 17 89 8.1. Bypass Traffic Rate . . . . . . . . . . . . . . . . . . . . 18 90 8.2. Filter List Package . . . . . . . . . . . . . . . . . . . . 18 91 8.3. Switching To Tunnel One . . . . . . . . . . . . . . . . . . 22 92 8.4. Overflowing To Tunnel Two . . . . . . . . . . . . . . . . . 22 93 8.5. Link One Failure . . . . . . . . . . . . . . . . . . . . . 23 94 8.6. Link Two Failure . . . . . . . . . . . . . . . . . . . . . 23 95 8.7. IPv6 Prefix Assigned to Host . . . . . . . . . . . . . . . 23 96 8.8. Diagnostic Start: Bonding Tunnel . . . . . . . . . . . . . 24 97 8.9. Diagnostic Start: Tunnel One . . . . . . . . . . . . . . . 24 98 8.10. Diagnostic Start: Tunnel Two . . . . . . . . . . . . . . . 25 99 8.11. Diagnostic End . . . . . . . . . . . . . . . . . . . . . . 25 100 8.12. Filter List Package ACK . . . . . . . . . . . . . . . . . 26 101 8.13. Switching To Active Hello State . . . . . . . . . . . . . 26 102 8.14. Switching To Idle Hello State . . . . . . . . . . . . . . 27 103 8.15. Tunnel Verification . . . . . . . . . . . . . . . . . . . 28 104 9. Security Considerations . . . . . . . . . . . . . . . . . . . . 29 105 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 106 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 29 107 11.1. Normative References . . . . . . . . . . . . . . . . . . . 29 108 11.2. Informative References . . . . . . . . . . . . . . . . . . 30 109 Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 110 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 30 112 1. Introduction 114 The control plane of BANANA delivers configuration and control 115 information between two peering BANANA boxes. Control messages such 116 as GRE Tunnel Setup Request, GRE Tunnel Setup Accept, GRE Tunnel 117 Setup Deny, GRE Tunnel Hello, GRE Tunnel Tear Down and GRE Tunnel 118 Notify are specified in [BANANA-signaling]. This document further 119 specifies the attributes to be carried as Attribute field in those 120 control messages exchanged between the two peering BANANA boxes. 122 2. Acronyms and Terminology 124 GRE: Generic Routing Encapsulation [RFC2784] [RFC2890]. 126 CIR: Committed Information Rate [RFC2697]. 128 RTT: Round-Trip Time. 130 FQDN: Fully Qualified Domain Name. Generally, a host name with at 131 least one domain label under the top-level domain. For example, 132 "dhcp.example.org" is an FQDN [RFC7031]. 134 DSCP: The 6-bit codepoint (DSCP) of the Differentiated Services field 135 (DS field) in the IPv4 and IPv6 headers [RFC2724]. 137 DNS: Domain Name System. A hierarchical distributed naming system 138 for computers, services, or any resource connected to the Internet 139 or a private network. 141 DHCP: Dynamic Host Configuration Protocol. A standardized network 142 protocol used on Internet Protocol (IP) networks for dynamically 143 distributing network configuration parameters, such as IP 144 addresses for interfaces and services. 146 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 147 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 148 document are to be interpreted as described in RFC 2119 [RFC2119]. 150 3. GRE Tunnel Setup Request 152 The local BANANA box uses the GRE Tunnel Setup Request message to 153 request that the remote BANANA box establishes the GRE tunnels. It 154 is sent out from the local BANANA box's "F" and "S" interfaces (see 155 Figure 3.1 of [BANANA-signaling]). Attributes that need to be 156 included in this message are defined in the following subsections. 158 3.1. Client Identification Name 160 An operator uses the Client Identification Name (CIN) to identify the 161 local BANANA box. The local BANANA box sends the CIN to the remote 162 BANANA box for authentication and authorization as specified in 163 [TS23.401]. It is REQUIRED that the GRE Tunnel Setup Request message 164 sent out from the "S" interface contain the CIN attribute while the 165 GRE Tunnel Setup Request message sent out from the "F" interface does 166 not contain this attribute. 168 The CIN attribute has the following format: 170 +-+-+-+-+-+-+-+-+ 171 |Attribute Type | (1 byte) 172 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 173 | Attribute Length | (2 bytes) 174 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 175 | Client Identification Name (40 bytes) | 176 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 178 Attribute Type 179 CIN, set to 3. 181 Attribute Length 182 Set to 40. 184 Client Identification Name 185 This is a 40-byte string value encoded in UTF-8 and set by the 186 operator. It is used as the identification of the local BANANA 187 box in the operator's network. 189 3.2. Session ID 190 This Session ID is generated by the remote BANANA box when the first 191 GRE Tunnel Setup Request message is received. The remote BANANA box 192 announces the Session ID to the local BANANA box in the GRE Tunnel 193 Setup Accept message. For the "F" and "S" interfaces that need to be 194 bonded together, the local BANANA box MUST use the same Session ID. 195 The local BANANA box MUST carry the Session ID attribute in each GRE 196 Tunnel Setup Request message except the first time that the GRE 197 Tunnel Setup Request message is sent to the remote BANANA box. 199 The Session ID attribute has the following format: 201 +-+-+-+-+-+-+-+-+ 202 |Attribute Type | (1 byte) 203 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 204 | Attribute Length | (2 bytes) 205 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 206 | Session ID (4 bytes) | 207 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 209 Attribute Type 210 Session ID, set to 4. 212 Attribute Length 213 Set to 4. 215 Session ID 216 An unsigned integer generated by the remote BANANA box. It is 217 used as the identification of bonded GRE tunnels. 219 3.3. Synchronization Rate 221 If a GRE tunnel is using the Digital Subscriber Line (DSL), the local 222 BANANA box uses the Synchronization Rate to notify the remote BANANA 223 box about the downstream bandwidth of the DSL link. The GRE Tunnel 224 Setup Request message sent on a GRE tunnel on a DSL link MUST include 225 the Synchronization Rate attribute. GRE Tunnel Setup Request message 226 sent on a GRE tunnel on other kinds of link SHOULD NOT include this 227 attribute. 229 +-+-+-+-+-+-+-+-+ 230 |Attribute Type | (1 byte) 231 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 232 | Attribute Length | (2 bytes) 233 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 234 | Synchronization Rate (4 bytes) | 235 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 237 Attribute Type 238 Synchronization Rate, set to 7. 240 Attribute Length 241 Set to 4. 243 Synchronization Rate 244 An unsigned integer measured in kbps. 246 4. GRE Tunnel Setup Accept 248 The remote BANANA box uses the GRE Tunnel Setup Accept message as the 249 response to the GRE Tunnel Setup Request message. This message 250 indicates acceptance of the tunnel establishment and carries 251 parameters of the GRE tunnels. Attributes that need to be included 252 in this message are defined below. 254 4.1. R IPv4 Address 256 The remote BANANA box uses the "R" (see Figure 3.1 of [BANANA- 257 signaling]) IPv4 Address attribute to inform the local BANANA box of 258 the "R" IPv4 address. The local BANANA box uses the "R" IPv4 address 259 as the destination endpoint IPv4 address of the GRE tunnels (the 260 source endpoint IPv4 addresses of the GRE tunnels are the "F" 261 interface IP address and the "S" interface IP address). The GRE 262 Tunnel Setup Accept message sent over Tunnel 2 MUST include the R 263 IPv4 Address attribute. 265 +-+-+-+-+-+-+-+-+ 266 |Attribute Type | (1 byte) 267 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 268 | Attribute Length | (2 bytes) 269 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 270 | R IPv4 Address (4 bytes) | 271 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 273 Attribute Type 274 R IPv4 Address, set to 1. 276 Attribute Length 277 Set to 4. 279 R IPv4 Address 280 Set to the pre-configured IPv4 address (e.g., an IP address of a 281 Line Card in the remote BANANA box), which is used as the 282 endpoint IP address of GRE tunnels by the remote BANANA box. 284 4.2. R IPv6 Address 285 The remote BANANA box uses the "R" (see Figure 3.1 of [BANANA- 286 signaling]) IPv6 Address attribute to inform the local BANANA box of 287 the "R" IPv6 address. The local BANANA box uses the "R" IPv6 address 288 as the destination endpoint IPv6 address of the GRE tunnels (the 289 source endpoint IPv6 addresses of the GRE tunnels are the "F" 290 interface IP address and the "S" interface IP address). The GRE 291 Tunnel Setup Accept message sent over Tunnel 2 MUST include the R 292 IPv6 Address attribute. 294 +-+-+-+-+-+-+-+-+ 295 |Attribute Type | (1 byte) 296 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 297 | Attribute Length | (2 bytes) 298 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 299 | R IPv6 Address (16 bytes) | 300 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 302 Attribute Type 303 R IPv6 Address, set to 2. 305 Attribute Length 306 Set to 16. 308 R IPv6 Address 309 Set to the pre-configured IPv6 address (e.g., an IP address of a 310 Line Card in the remote BANANA box), which is used as the 311 endpoint IP address of GRE tunnels by the remote BANANA box. 313 4.3. Session ID 315 The GRE Tunnel Setup Accept message sent over Tunnel 2 MUST include 316 the Session ID attribute as defined in Section 3.2. 318 4.4. RTT Difference Threshold 320 The remote BANANA box uses the RTT Difference Threshold attribute to 321 inform the local BANANA box of the acceptable threshold of the RTT 322 difference between Tunnel 1 and Tunnel 2. If the measured RTT 323 difference exceeds this threshold, the local BANANA box SHOULD stop 324 offloading traffic to Tunnel 2. The GRE Tunnel Setup Accept message 325 sent over Tunnel 2 MUST include the RTT Difference Threshold 326 attribute. 328 +-+-+-+-+-+-+-+-+ 329 |Attribute Type | (1 byte) 330 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 331 | Attribute Length | (2 bytes) 332 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 333 | RTT Difference Threshold (4 bytes) | 334 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 336 Attribute Type 337 RTT Difference Threshold, set to 9. 339 Attribute Length 340 Set to 4. 342 RTT Difference Threshold 343 An unsigned integer measured in milliseconds. This value can be 344 chosen in the range 0 through 1000. 346 4.5. Bypass Bandwidth Check Interval 348 The remote BANANA box uses the Bypass Bandwidth Check Interval 349 attribute to inform the local BANANA box of how frequently the bypass 350 bandwidth should be checked. The local BANANA box should check the 351 bypass bandwidth of the "F" interface in each time period indicated 352 by this interval. The GRE Tunnel Setup Accept message sent over 353 Tunnel 2 MUST include the Bypass Bandwidth Check Interval attribute. 355 +-+-+-+-+-+-+-+-+ 356 |Attribute Type | (1 byte) 357 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 358 | Attribute Length | (2 bytes) 359 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 360 | Bypass Bandwidth Check Interval (4 bytes) | 361 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 363 Attribute Type 364 Bypass Bandwidth Check Interval, set to 10. 366 Attribute Length 367 Set to 4. 369 Bypass Bandwidth Check Interval 370 An unsigned integer measured in seconds. This value can be chosen 371 in the range 10 through 300. 373 4.6. Active Hello Interval 375 The remote BANANA box uses the Active Hello Interval attribute to 376 inform the local BANANA box of the pre-configured interval for 377 sending out GRE Tunnel Hellos. The local BANANA box should send out 378 GRE Tunnel Hellos via both "F" and "S" interfaces in each time period 379 as indicated by this interval. The GRE Tunnel Setup Accept message 380 sent over Tunnel 2 MUST include the Active Hello Interval attribute. 382 +-+-+-+-+-+-+-+-+ 383 |Attribute Type | (1 byte) 384 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 385 | Attribute Length | (2 bytes) 386 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 387 | Active Hello Interval (4 bytes) | 388 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 390 Attribute Type 391 Active Hello Interval, set to 14. 393 Attribute Length 394 Set to 4. 396 Active Hello Interval 397 An unsigned integer measured in seconds. This value can be chosen 398 in the range 1 through 100. 400 4.7. Hello Retry Times 402 The remote BANANA box uses the Hello Retry Times attribute to inform 403 the local BANANA box of the retry times for sending GRE Tunnel 404 Hellos. If the local BANANA box does not receive any acknowledgement 405 from the remote BANANA box for the number of GRE Tunnel Hello 406 attempts specified in this attribute, the local BANANA box will 407 declare a failure of the GRE tunnel. The GRE Tunnel Setup Accept 408 message sent over Tunnel 2 MUST include the Hello Retry Times 409 attribute. 411 +-+-+-+-+-+-+-+-+ 412 |Attribute Type | (1 byte) 413 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 414 | Attribute Length | (2 bytes) 415 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 416 | Hello Retry Times (4 bytes) | 417 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 419 Attribute Type 420 Hello Retry Times, set to 15. 422 Attribute Length 423 Set to 4. 425 Hello Retry Times 426 An unsigned integer that takes values in the range 3 through 10. 428 4.8. Idle Timeout 430 The remote BANANA box uses the Idle Timeout attribute to inform the 431 local BANANA box of the pre-configured timeout value to terminate 432 Tunnel 1. When Tunnel 2 failure is detected, all traffic will be 433 sent over Tunnel 1. If the failure of Tunnel 2 lasts longer than the 434 Idle Timeout, subsequent traffic will be sent over the raw link 1 435 rather than over Tunnel 1, and Tunnel 1 SHOULD be terminated. The 436 GRE Tunnel Setup Accept message sent over Tunnel 2 MUST include the 437 Idle Timeout attribute. 439 +-+-+-+-+-+-+-+-+ 440 |Attribute Type | (1 byte) 441 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 442 | Attribute Length | (2 bytes) 443 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 444 | Idle Timeout (4 bytes) | 445 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 447 Attribute Type 448 Idle Timeout, set to 16. 450 Attribute Length 451 Set to 4. 453 Idle Timeout 454 An unsigned integer measured in seconds. It takes values in the 455 range 0 through 172,800 with a granularity of 60. The default 456 value is 86,400 (24 hours). The value 0 indicates that the idle 457 timer never expires. 459 4.9. Bonding Key Value 461 The remote BANANA box uses the Bonding Key Value attribute to inform 462 the local BANANA box of the number that is to be carried as the Key 463 of the GRE header for subsequent control messages. The Bonding Key 464 Value is generated by the remote BANANA box and used for security 465 purposes. 467 The method used to generate this number is left up to 468 implementations. The pseudorandom number generator defined in ANSI 469 X9.31, Appendix A.2.4 [ANSI-X9.31-1998] is RECOMMENDED. Note that 470 random number generation "collisions" are allowed in the GRE Tunnel 471 Bonding Protocol. 473 +-+-+-+-+-+-+-+-+ 474 |Attribute Type | (1 byte) 475 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 476 | Attribute Length | (2 bytes) 477 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 478 | Bonding Key Value (4 bytes) | 479 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 481 Attribute Type 482 Bonding Key Value, set to 20. 484 Attribute Length 485 Set to 4. 487 Bonding Key Value 488 A 32-bit random number generated by the remote BANANA box. 490 4.10. Configured Link Upstream Bandwidth 492 The remote BANANA box obtains the upstream bandwidth of a link from 493 the management system and uses the Configured Link Upstream Bandwidth 494 attribute to inform the local BANANA box. The local BANANA box uses 495 the received upstream bandwidth as the CIR [RFC2697] for the link. 496 GRE Tunnel Setup Accept messages sent on either Tunnel 1 or Tunnel 2 497 MAY include the Configured Link Upstream Bandwidth attribute. If a 498 GRE tunnel is using the DSL, the GRE Tunnel Setup Accept message sent 499 on this link MUST include the Configured Link Upstream Bandwidth 500 attribute. 502 +-+-+-+-+-+-+-+-+ 503 |Attribute Type | (1 byte) 504 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 505 | Attribute Length | (2 bytes) 506 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 507 | Configured Link Upstream Bandwidth (4 bytes) | 508 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 510 Attribute Type 511 Configured Link Upstream Bandwidth, set to 22. 513 Attribute Length 514 Set to 4. 516 Configured Link Upstream Bandwidth 517 An unsigned integer measured in kbps. 519 4.11. Configured Link Downstream Bandwidth 520 The remote BANANA box obtains the downstream bandwidth of a link from 521 the management system and uses the Configured Link Downstream 522 Bandwidth attribute to inform the local BANANA box. The local BANANA 523 box uses the received downstream bandwidth as the base in calculating 524 the bypassing bandwidth. GRE Tunnel Setup Accept messages sent on 525 either Tunnel 1 or Tunnel 2 MAY include the Configured Link 526 Downstream Bandwidth attribute. If a GRE tunnel is using the DSL, 527 the GRE Tunnel Setup Accept message sent on this link MUST include 528 the Configured DSL Downstream Bandwidth attribute. 530 +-+-+-+-+-+-+-+-+ 531 |Attribute Type | (1 byte) 532 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 533 | Attribute Length | (2 bytes) 534 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 535 |Configured Link Downstream Bandwidth(4 bytes) | 536 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 538 Attribute Type 539 Configured Link Downstream Bandwidth, set to 23. 541 Attribute Length 542 Set to 4. 544 Configured Link Downstream Bandwidth 545 An unsigned integer measured in kbps. 547 4.12. RTT Difference Threshold Violation 549 The remote BANANA box uses the RTT Difference Threshold Violation 550 attribute to inform the local BANANA box of the number of times in a 551 row that the RTT Difference Threshold (see Section 4.4) may be 552 violated before the local BANANA box MUST stop using Tunnel 2. If 553 the RTT Difference Threshold is continuously violated for more than 554 the indicated number of measurements, the local BANANA box MUST stop 555 using Tunnel 2. The GRE Tunnel Setup Accept message sent over Tunnel 556 2 MUST include the RTT Difference Threshold Violation attribute. 558 +-+-+-+-+-+-+-+-+ 559 |Attribute Type | (1 byte) 560 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 561 | Attribute Length | (2 bytes) 562 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 563 | RTT Diff Threshold Violation (4 bytes) | 564 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 566 Attribute Type 567 RTT Difference Threshold Violation, set to 24. 569 Attribute Length 570 Set to 4. 572 RTT Difference Threshold Violation 573 An unsigned integer that takes values in the range 1 through 25. 574 A typical value is 3. 576 4.13. RTT Difference Threshold Compliance 578 The remote BANANA box uses the RTT Difference Threshold Compliance 579 attribute to inform the local BANANA box of the number of times in a 580 row that the RTT Difference Threshold (see Section 4.4) must be 581 compliant before use of Tunnel 2 can be resumed. If the RTT 582 Difference Threshold is continuously detected to be compliant across 583 more than this number of measurements, the local BANANA box MAY 584 resume using Tunnel 2. The GRE Tunnel Setup Accept message sent over 585 Tunnel 2 MUST include the RTT Difference Threshold Compliance 586 attribute. 588 +-+-+-+-+-+-+-+-+ 589 |Attribute Type | (1 byte) 590 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 591 | Attribute Length | (2 bytes) 592 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 593 | RTT Diff Threshold Compliance (4 bytes) | 594 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 596 Attribute Type 597 RTT Difference Threshold Compliance, set to 25. 599 Attribute Length 600 Set to 4. 602 RTT Difference Threshold Compliance 603 An unsigned integer that takes values in the range 1 through 25. 604 A typical value is 3. 606 4.14. Idle Hello Interval 608 The remote BANANA box uses the Idle Hello Interval attribute to 609 inform the local BANANA box of the pre-configured interval for 610 sending out GRE Tunnel Hellos when the subscriber is detected to be 611 idle. The local BANANA box SHOULD begin to send out GRE Tunnel 612 Hellos via both "F" and "S" interfaces in each time period as 613 indicated by this interval, if the bonded tunnels have seen no 614 traffic for a period longer than the "No Traffic Monitored Interval" 615 (see Section 4.15). The GRE Tunnel Setup Accept message sent over 616 Tunnel 2 MUST include the Idle Hello Interval attribute. 618 +-+-+-+-+-+-+-+-+ 619 |Attribute Type | (1 byte) 620 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 621 | Attribute Length | (2 bytes) 622 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 623 | Idle Hello Interval (4 bytes) | 624 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 626 Attribute Type 627 Idle Hello Interval, set to 31. 629 Attribute Length 630 Set to 4. 632 Idle Hello Interval 633 An unsigned integer measured in seconds. This value can be chosen 634 in the range 100 through 86,400 (24 hours) with a granularity of 635 100. The default value is 1800 (30 minutes). 637 4.15. No Traffic Monitored Interval 639 The remote BANANA box uses the No Traffic Monitored Interval 640 attribute to inform the local BANANA box of the pre-configured 641 interval for switching the GRE Tunnel Hello mode. If traffic is 642 detected on the bonded GRE tunnels before this interval expires, the 643 local BANANA box SHOULD switch to the Active Hello Interval. The GRE 644 Tunnel Setup Accept message sent over Tunnel 2 MUST include the No 645 Traffic Monitored Interval attribute. 647 +-+-+-+-+-+-+-+-+ 648 |Attribute Type | (1 byte) 649 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 650 | Attribute Length | (2 bytes) 651 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 652 | No Traffic Monitored Interval (4 bytes) | 653 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 655 Attribute Type 656 No Traffic Monitored Interval, set to 32. 658 Attribute Length 659 Set to 4. 661 No Traffic Monitored Interval 662 An unsigned integer measured in seconds. This value is in the 663 range 30 through 86,400 (24 hours). The default value is 60. 665 5. GRE Tunnel Setup Deny 666 The remote BANANA box MUST send the GRE Tunnel Setup Deny message to 667 the local BANANA box if the GRE Tunnel Setup Request from this local 668 BANANA box is denied. The local BANANA box MUST terminate the GRE 669 tunnel setup process as soon as it receives the GRE Tunnel Setup Deny 670 message. 672 5.1. Error Code 674 The remote BANANA box uses the Error Code attribute to inform the 675 local BANANA box of the error code. The error code depicts why the 676 GRE Tunnel Setup Request is denied. GRE Tunnel Setup Deny messages 677 sent over both Tunnel 1 and Tunnel 2 MUST include the Error Code 678 attribute. 680 +-+-+-+-+-+-+-+-+ 681 |Attribute Type | (1 byte) 682 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 683 | Attribute Length | (2 bytes) 684 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 685 | Error Code (4 bytes) | 686 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 688 Attribute Type 689 Error Code, set to 17. 691 Attribute Length 692 Set to 4. 694 Error Code 695 An unsigned integer. The list of codes is as follows: 697 1: The remote BANANA box was not reachable via link 2 during the 698 GRE Tunnel Setup Request. 700 2: The remote BANANA box was not reachable via link 1 during the 701 GRE Tunnel Setup Request. 703 3: The Tunnel 2 to the remote BANANA box failed. 705 4: The Tunnel 1 to the remote BANANA box failed. 707 5: The given User ID of link 1 is not allowed to use the GRE 708 Tunnel Bonding service. 710 6: The given User Alias / User ID (Globally Unique Identifier 711 (GUID)) is not allowed to use the GRE Tunnel Bonding service. 713 7: The User IDs of link 1 and link 2 do not match. 715 8: The remote BANANA box denied the GRE Tunnel Setup Request 716 because a bonding session with the same User ID already 717 exists. 719 9: The remote BANANA box denied the GRE Tunnel Setup Request 720 because the user's CIN is not permitted. 722 10: The remote BANANA box terminated a GRE Tunnel Bonding session 723 for maintenance reasons. 725 11: There was a communication error between the remote BANANA box 726 and the management system when the GRE Tunnel Setup Request 727 message is being sent over Tunnel 2. 729 12: There was a communication error between the remote BANANA box 730 and the management system when the GRE Tunnel Setup Request 731 message is being sent over Tunnel 1. 733 6. GRE Tunnel Hello 735 After the Tunnel 1 / Tunnel 2 is established, the local BANANA box 736 begins to periodically send out GRE Tunnel Hello messages via the 737 tunnel; the remote BANANA box acknowledges the local BANANA box's 738 messages by returning GRE Tunnel Hello messages to the local BANANA 739 box. This continues until the tunnel is terminated. 741 6.1. Timestamp 743 The remote BANANA box uses the Timestamp attribute to inform the 744 local BANANA box of the timestamp value that is used for RTT 745 calculation. GRE Tunnel Hello messages sent over both Tunnel 1 and 746 Tunnel 2 MUST include the Timestamp attribute. 748 +-+-+-+-+-+-+-+-+ 749 |Attribute Type | (1 byte) 750 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 751 | Attribute Length | (2 bytes) 752 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 753 | Timestamp (8 bytes) | 754 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 756 Attribute Type 757 Timestamp, set to 5. 759 Attribute Length 760 Set to 8. 762 Timestamp 763 The time since the system restarted. The high-order 4 bytes 764 indicate an unsigned integer in units of 1 second; the low-order 765 4 bytes indicate an unsigned integer in units of 1 millisecond. 767 6.2. IPv6 Prefix Assigned by the Remote 769 The remote BANANA box uses the IPv6 Prefix Assigned by the Remote 770 attribute to inform the local BANANA box of the assigned IPv6 prefix. 771 This IPv6 prefix is to be captured via lawful intercept. GRE Tunnel 772 Hello messages sent over both Tunnel 1 and Tunnel 2 MUST include the 773 IPv6 Prefix Assigned by the Remote attribute. 775 +-+-+-+-+-+-+-+-+ 776 |Attribute Type | (1 byte) 777 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 778 | Attribute Length | (2 bytes) 779 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 780 | IPv6 Prefix Assigned by the Remote(16 bytes) | 781 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 783 Attribute Type 784 IPv6 Prefix Assigned by the Remote, set to 13. 786 Attribute Length 787 Set to 17. 789 IPv6 Prefix Assigned by the Remote 790 The highest-order 16 bytes encode an IPv6 address. The 791 lowest-order 1 byte encodes the prefix length. These two values 792 are put together to represent an IPv6 prefix. 794 7. GRE Tunnel Tear Down 796 The remote BANANA box can terminate Tunnel 1 / Tunnel 2 by sending 797 the GRE Tunnel Tear Down message to the local BANANA box via the 798 tunnel. The Error Code attribute as defined in Section 5.1 MUST be 799 included in this message. After receiving the GRE Tunnel Tear Down 800 message, the local BANANA box removes the IP address of R, which is 801 the destination IP addresses of Tunnel 1 and Tunnel 2. 803 8. GRE Tunnel Notify 805 The local BANANA box and the remote BANANA box use the GRE Tunnel 806 Notify message, which is transmitted through either Tunnel 1 or 807 Tunnel 2, to notify each other about their status regarding the two 808 GRE tunnels, the information for the bonded tunnels, the actions that 809 need to be taken, etc. 811 Usually, the receiver just sends the received attributes back as the 812 acknowledgement for each GRE Tunnel Notify message. However, there 813 is an exception for the Filter List Package: since the size of the 814 Filter List Package attribute can be very large, a special attribute 815 -- the Filter List Package ACK attribute -- is used as the 816 acknowledgement (see Section 8.12). 818 Attributes that need to be included in the GRE Tunnel Notify message 819 are defined below. 821 8.1. Bypass Traffic Rate 823 There are a few types of traffic that need to be transmitted over the 824 raw "F" interface (see Figure 3.1 of [BANANA-signaling]) rather than 825 the bonded GRE tunnels. The local BANANA box has to set aside bypass 826 bandwidth on the "F" interface for these traffic types. Therefore, 827 the available bandwidth of Tunnel 1 is the entire "F" interface 828 bandwidth minus the occupied bypass bandwidth. 830 The local BANANA box uses the Bypass Traffic Rate attribute to inform 831 the remote BANANA box of the downstream bypass bandwidth for the "F" 832 interface. The Bypass Traffic Rate attribute will be included in the 833 GRE Tunnel Notify message sent over Tunnel 1. The remote BANANA box 834 calculates the available downstream bandwidth for Tunnel 1 as the 835 Configured Link Downstream Bandwidth minus the bypass bandwidth 836 provided by the local BANANA box. The available downstream bandwidth 837 will be used as the CIR of the coloring system [RFC2697]. 839 +-+-+-+-+-+-+-+-+ 840 |Attribute Type | (1 byte) 841 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 842 | Attribute Length | (2 bytes) 843 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 844 | Bypass Traffic Rate (4 bytes) | 845 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 847 Attribute Type 848 Bypass Traffic Rate, set to 6. 850 Attribute Length 851 Set to 4. 853 Bypass Traffic Rate 854 An unsigned integer measured in kbps. 856 8.2. Filter List Package 858 The remote BANANA box uses the Filter List Package attribute to 859 inform the local BANANA box of the service types that need to bypass 860 the bonded GRE tunnels. The full list of all Filter Items may be 861 given by a series of Filter List Package attributes with each 862 specifying a partial list. At the local BANANA box, a full list of 863 Filter Items is maintained. Also, the local BANANA box needs to 864 maintain an exception list of Filter Items. For example, the packets 865 carrying the control messages defined in this document should be 866 excluded from the filter list. 868 Incoming packets that match a Filter Item in the filter list while 869 not matching any item in the exception list MUST be transmitted over 870 the raw link 1 rather than the bonded GRE tunnels. GRE Tunnel Notify 871 messages sent over both Tunnel 1 and Tunnel 2 MAY include the Filter 872 List Package attribute. When one of the link is DSL, the DSL GRE 873 Tunnel Notify message is preferred. 875 +-+-+-+-+-+-+-+-+ 876 |Attribute Type | (1 byte) 877 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 878 | Attribute Length | (2 bytes) 879 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 880 | Filter List TLV (variable) ~ 881 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 883 Attribute Type 884 Filter List Package, set to 8. 886 Attribute Length 887 The total length of the Filter List TLV. The maximum allowed 888 length is 969 bytes. 890 Filter List TLV 891 The Filter List TLV occurs one time in a Filter List Package 892 attribute. It has the following format: 894 0 1 2 3 895 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 896 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 897 | Commit_Count | 898 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 899 | Packet_Sum | Packet_ID | 900 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 901 | Filter Item (1) | 902 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 903 | ...... | 904 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 905 | Filter Item (n) | 906 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 907 where each Filter Item is of the following format: 909 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 910 | Type | Length | 911 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 912 | Enable | Description Length | 913 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 914 ~ Description Value ~ 915 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 916 ~ Value ~ 917 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 919 Commit_Count 920 An unsigned integer that identifies the version of the Filter 921 Item list. The version is shared by all Filter List Packages 922 and increases monotonically by one for each new Filter Item 923 list. The local BANANA box MUST refresh its Filter Item list 924 when a new Commit_Count is received. 926 Packet_Sum 927 If a single Filter List Package attribute might make the 928 control message larger than the MTU, fragmentation is used. 929 The Packet_Sum indicates the total number of fragments. 931 Packet_ID 932 The fragmentation index for this Filter List Package attribute. 933 Each fragment is numbered starting at 1 and increasing by one 934 up to Packet_Sum. 936 Type 937 The Type of the Filter Item. Currently, the following types 938 are supported: 940 Filter Item Type 941 =========================== ============ 942 FQDN [RFC7031] 1 943 DSCP [RFC2724] 2 944 Destination Port 3 945 Destination IP 4 946 Destination IP & Port 5 947 Source Port 6 948 Source IP 7 949 Source IP & Port 8 950 Source MAC 9 951 Protocol 10 952 Source IP Range 11 953 Destination IP Range 12 954 Source IP Range & Port 13 955 Destination IP Range & Port 14 957 Other values are reserved for future use and MUST be ignored on 958 receipt. 960 Length 961 The length of the Filter Item in bytes. Type and Length are 962 excluded. 964 Enable 965 An integer that indicates whether or not the Filter Item is 966 enabled. A value of 1 means "enabled", and a value of 0 means 967 "disabled". Other possible values are reserved and MUST be 968 ignored on receipt. 970 Description Length 971 The length of the Description Value in bytes. 973 Description Value 974 A variable-length string value encoded in UTF-8 that describes 975 the Filter List TLV (e.g., "FQDN"). 977 Value 978 A variable-length string encoded in UTF-8 that specifies the 979 value of the Filter Item (e.g., "www.yahoo.com"). As an 980 example, Type = 1 and Value = "www.yahoo.com" mean that packets 981 whose FQDN field equals "www.yahoo.com" match the Filter Item. 982 "Source MAC" (source Media Access Control address) values are 983 specified using hexadecimal numbers. Port numbers are decimals 984 as assigned by IANA in [Port-NO]. For the "Protocol" type, the 985 value could be either a decimal or a keyword specified by IANA 986 in [Pro-NO]. The formats for IP addresses and IP address 987 ranges are defined in [RFC4632] and [RFC4291] for IPv4 and 988 IPv6, respectively. A Filter Item of Type 5, 8, 13, or 14 is a 989 combination of two parameters; values for the two parameters 990 are separated by a colon (":"). 992 8.3. Switching To Tunnel One 994 If the RTT difference between Tunnel 1 and Tunnel 2 is continuously 995 detected to be in violation of the RTT Difference Threshold (see 996 Section 4.4) more than the number of times specified in the RTT 997 Difference Threshold Violation attribute (see Section 4.12), the 998 local BANANA box uses the Switching To Tunnel One attribute to inform 999 the remote BANANA box to use Tunnel 1 only. When the remote BANANA 1000 box receives this attribute, it MUST begin to transmit downstream 1001 traffic to this local BANANA box solely over Tunnel 1. The GRE 1002 Tunnel Notify message sent over Tunnel 1 MAY include the Switching To 1003 Tunnel One attribute. 1005 +-+-+-+-+-+-+-+-+ 1006 |Attribute Type | (1 byte) 1007 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1008 | Attribute Length | (2 bytes) 1009 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1011 Attribute Type 1012 Switching To Tunnel One, set to 11. 1014 Attribute Length 1015 Set to 0. 1017 8.4. Overflowing To Tunnel Two 1019 If the RTT difference between Tunnel 1 and Tunnel 2 is continuously 1020 detected to not be in violation of the RTT Difference Threshold (see 1021 Section 4.4) more than the number of times specified in the RTT 1022 Difference Threshold Compliance attribute (see Section 4.13), the 1023 local BANANA box uses the Overflowing To Tunnel Two attribute to 1024 inform the remote BANANA box that Tunnel 2 can be used again. The 1025 GRE Tunnel Notify message sent over Tunnel 1 MAY include the 1026 Overflowing To Tunnel Two attribute. 1028 +-+-+-+-+-+-+-+-+ 1029 |Attribute Type | (1 byte) 1030 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1031 | Attribute Length | (2 bytes) 1032 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1034 Attribute Type 1035 Overflowing To Tunnel Two, set to 12. 1037 Attribute Length 1038 Set to 0. 1040 8.5. Link One Failure 1042 When the local BANANA box detects that the "F" interface status is 1043 "down", it MUST tear down Tunnel 1. It informs the remote BANANA box 1044 about the failure by using the Link One Failure attribute. The 1045 remote BANANA box MUST tear down Tunnel 1 upon receipt of the Link 1046 One Failure attribute. The Link One Failure attribute SHOULD be 1047 carried in the GRE Tunnel Notify message sent over Tunnel 2. 1049 +-+-+-+-+-+-+-+-+ 1050 |Attribute Type | (1 byte) 1051 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1052 | Attribute Length | (2 bytes) 1053 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1055 Attribute Type 1056 Link One Failure, set to 18. 1058 Attribute Length 1059 Set to 0. 1061 8.6. Link Two Failure 1063 When the local BANANA box detects that the "S" interface status is 1064 "down", it MUST tear down Tunnel 2. It informs the remote BANANA box 1065 about the failure by using the Link Two Failure attribute. The 1066 remote BANANA box MUST tear down Tunnel 2 upon receipt of the Link 1067 Two Failure attribute. The Link Two Failure attribute SHOULD be 1068 carried in the GRE Tunnel Notify message sent over Tunnel 1. 1070 +-+-+-+-+-+-+-+-+ 1071 |Attribute Type | (1 byte) 1072 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1073 | Attribute Length | (2 bytes) 1074 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1076 Attribute Type 1077 Link Two Failure, set to 19. 1079 Attribute Length 1080 Set to 0. 1082 8.7. IPv6 Prefix Assigned to Host 1084 If the local BANANA box changes the IPv6 prefix assigned to the host, 1085 it uses the IPv6 Prefix Assigned to Host attribute to inform the 1086 remote BANANA box. GRE Tunnel Notify messages sent over both Tunnel 1087 1 and Tunnel 2 MAY include the IPv6 Prefix Assigned to Host 1088 attribute. 1090 +-+-+-+-+-+-+-+-+ 1091 |Attribute Type | (1 byte) 1092 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1093 | Attribute Length | (2 bytes) 1094 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 1095 | IPv6 Prefix Assigned to Host (16 bytes) | 1096 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 1098 Attribute Type 1099 IPv6 Prefix Assigned to Host, set to 21. 1101 Attribute Length 1102 Set to 17. 1104 IPv6 Prefix Assigned to Host 1105 The highest-order 16 bytes encode an IPv6 address. The 1106 lowest-order 1 byte encodes the prefix length. These two values 1107 are put together to represent an IPv6 prefix. 1109 8.8. Diagnostic Start: Bonding Tunnel 1111 The local BANANA box uses the Diagnostic Start: Bonding Tunnel 1112 attribute to inform the remote BANANA box to switch to diagnostic 1113 mode to test the performance of the entire bonding tunnel. The 1114 Diagnostic Start: Bonding Tunnel attribute SHOULD be carried in the 1115 GRE Tunnel Notify message sent over Tunnel 1. 1117 +-+-+-+-+-+-+-+-+ 1118 |Attribute Type | (1 byte) 1119 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1120 | Attribute Length | (2 bytes) 1121 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1123 Attribute Type 1124 Diagnostic Start: Bonding Tunnel, set to 26. 1126 Attribute Length 1127 Set to 0. 1129 8.9. Diagnostic Start: Tunnel One 1131 The local BANANA box uses the Diagnostic Start: Tunnel One attribute 1132 to inform the remote BANANA box to switch to diagnostic mode to test 1133 the performance of Tunnel 1. The Diagnostic Start: Tunnel One 1134 attribute SHOULD be carried in the GRE Tunnel Notify message sent 1135 over Tunnel 1. 1137 +-+-+-+-+-+-+-+-+ 1138 |Attribute Type | (1 byte) 1139 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1140 | Attribute Length | (2 bytes) 1141 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1143 Attribute Type 1144 Diagnostic Start: Tunnel One, set to 27. 1146 Attribute Length 1147 Set to 0. 1149 8.10. Diagnostic Start: Tunnel Two 1151 The local BANANA box uses the Diagnostic Start: Tunnel Two attribute 1152 to inform the remote BANANA box to switch to diagnostic mode to test 1153 the performance of Tunnel 2. The Diagnostic Start: Tunnel Two 1154 attribute SHOULD be carried in the GRE Tunnel Notify message sent 1155 over Tunnel 1. 1157 +-+-+-+-+-+-+-+-+ 1158 |Attribute Type | (1 byte) 1159 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1160 | Attribute Length | (2 bytes) 1161 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1163 Attribute Type 1164 Diagnostic Start: Tunnel Two, set to 28. 1166 Attribute Length 1167 Set to 0. 1169 8.11. Diagnostic End 1171 The local BANANA box uses the Diagnostic End attribute to inform the 1172 remote BANANA box to stop operating in diagnostic mode. The 1173 Diagnostic End attribute SHOULD be carried in the GRE Tunnel Notify 1174 message sent over Tunnel 1. 1176 +-+-+-+-+-+-+-+-+ 1177 |Attribute Type | (1 byte) 1178 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1179 | Attribute Length | (2 bytes) 1180 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1181 Attribute Type 1182 Diagnostic End, set to 29. 1184 Attribute Length 1185 Set to 0. 1187 8.12. Filter List Package ACK 1189 The local BANANA box uses the Filter List Package ACK attribute to 1190 acknowledge the Filter List Package sent by the remote BANANA box. 1191 GRE Tunnel Notify messages sent over both Tunnel 1 and Tunnel 2 MAY 1192 include the Filter List Package ACK attribute. 1194 +-+-+-+-+-+-+-+-+ 1195 |Attribute Type | (1 byte) 1196 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1197 | Attribute Length | (2 bytes) 1198 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+ 1199 | Filter List Package ACK (5 bytes) | 1200 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+ 1202 Attribute Type 1203 Filter List Package ACK, set to 30. 1205 Attribute Length 1206 Set to 5. 1208 Filter List Package ACK 1209 The highest-order 4 bytes are the Commit_Count as defined in 1210 Section 8.2. The lowest-order 1 byte encodes the following 1211 error codes: 1213 0: The Filter List Package is acknowledged. 1215 1: The Filter List Package is not acknowledged. The local BANANA 1216 box is a new subscriber and has not ever received a Filter List 1217 Package. In this case, the remote BANANA box SHOULD tear down 1218 the bonding tunnels and force the local BANANA box to re- 1219 establish the GRE tunnels. 1221 2: The Filter List Package is not acknowledged. The local BANANA 1222 box has already gotten a valid Filter List Package. The filter 1223 list on the local BANANA box will continue to be used, while 1224 the remote BANANA box need not do anything. 1226 8.13. Switching To Active Hello State 1228 If traffic is being sent/received over the bonding GRE tunnels before 1229 the "No Traffic Monitored Interval" expires (see Section 4.15), the 1230 local BANANA box sends the remote BANANA box a GRE Tunnel Notify 1231 message containing the Switching To Active Hello State attribute. 1233 The remote BANANA box will switch to Active Hello State and send the 1234 local BANANA box a GRE Tunnel Notify message carrying the Switching 1235 To Active Hello State attribute as the ACK. 1237 When the local BANANA box receives the ACK, it will switch to Active 1238 Hello State, start RTT detection, and start sending GRE Tunnel Hello 1239 messages with the Active Hello Interval (see Section 4.6). 1241 +-+-+-+-+-+-+-+-+ 1242 |Attribute Type | (1 byte) 1243 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1244 | Attribute Length | (2 bytes) 1245 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1247 Attribute Type 1248 Switching To Active Hello State, set to 33. 1250 Attribute Length 1251 Set to 0. 1253 8.14. Switching To Idle Hello State 1255 The local BANANA box initiates switching To Idle Hello State when the 1256 bonding of GRE tunnels is successfully established and the GRE Tunnel 1257 Setup Accept message sent over Tunnel 2 carrying the Idle Hello 1258 Interval attribute (see Section 4.14) is received. The local BANANA 1259 box sends the remote BANANA box a GRE Tunnel Notify message 1260 containing the Switching To Idle Hello State attribute. 1262 The remote BANANA box will switch to Idle Hello State, clear RTT 1263 state, and send the local BANANA box a GRE Tunnel Notify message 1264 carrying the Switching to Idle Hello State attribute as the ACK. 1266 When the local BANANA box receives the ACK, it will (1) switch to 1267 Idle Hello State, (2) stop RTT detection and clear RTT state, and (3) 1268 start sending GRE Tunnel Hello messages with the Idle Hello Interval 1269 (see Section 4.14). 1271 +-+-+-+-+-+-+-+-+ 1272 |Attribute Type | (1 byte) 1273 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1274 | Attribute Length | (2 bytes) 1275 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1276 Attribute Type 1277 Switching To Idle Hello State, set to 34. 1279 Attribute Length 1280 Set to 0. 1282 8.15. Tunnel Verification 1284 The remote BANANA box uses the Tunnel Verification attribute to 1285 inform the local BANANA box to verify whether an existing Tunnel 2 is 1286 still functioning. The Tunnel Verification attribute SHOULD be 1287 carried in the GRE Tunnel Notify message sent over Tunnel 2. It 1288 provides a means to detect the tunnel faster than the GRE Tunnel 1289 Hello, especially when Tunnel 2 is in the Idle Hello State and it 1290 takes a much longer time to detect this tunnel. 1292 When the remote BANANA box receives a GRE Tunnel Setup Request sent 1293 over Tunnel 2 and finds that the requested tunnel conflicts with an 1294 existing tunnel, the remote BANANA box initiates tunnel verification. 1295 The remote BANANA box drops all conflicting GRE Tunnel Setup Request 1296 messages sent over Tunnel 2 and sends GRE Tunnel Notify messages 1297 carrying the Tunnel Verification attribute until the verification 1298 ends. The local BANANA box MUST respond to the remote BANANA box 1299 with the same Tunnel Verification attribute as the ACK if the tunnel 1300 is still functioning. 1302 If the ACK of the Tunnel Verification attribute is received from the 1303 local BANANA box, the remote BANANA box determines that the existing 1304 tunnel is still functioning. A Tunnel 2 Deny message (with Error 1305 Code = 8) will be sent to the local BANANA box. The local BANANA box 1306 SHOULD terminate the GRE Tunnel Setup Request process immediately. 1308 If the remote BANANA box does not receive a tunnel verification ACK 1309 message after three attempts (one initial attempt and two retries), 1310 it will regard the existing tunnel as failed, and the GRE Tunnel 1311 Setup Request sent over Tunnel 2 will be accepted. 1313 +-+-+-+-+-+-+-+-+ 1314 |Attribute Type | (1 byte) 1315 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1316 | Attribute Length | (2 bytes) 1317 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1319 Attribute Type 1320 Tunnel Verification, set to 35. 1322 Attribute Length 1323 Set to 0. 1325 9. Security Considerations 1327 See the Security Considerations of [BANANA-signaling]. 1329 10. IANA Considerations 1331 IANA need not assign anything for this memo. RFC editor: please 1332 remove this section before publication. 1334 11. References 1336 11.1. Normative References 1338 [Port-NO] IANA, "Service Name and Transport Protocol Port Number 1339 Registry", . 1342 [Pro-NO] IANA, "Assigned Internet Protocol Numbers", 1343 . 1345 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1346 Requirement Levels", BCP 14, RFC 2119, DOI 1347 10.17487/RFC2119, March 1997, . 1350 [RFC2697] Heinanen, J. and R. Guerin, "A Single Rate Three Color 1351 Marker", RFC 2697, DOI 10.17487/RFC2697, September 1999, 1352 . 1354 [RFC2784] Farinacci, D., Li, T., Hanks, S., Meyer, D., and P. 1355 Traina, "Generic Routing Encapsulation (GRE)", RFC 2784, 1356 DOI 10.17487/RFC2784, March 2000, . 1359 [RFC2890] Dommety, G., "Key and Sequence Number Extensions to GRE", 1360 RFC 2890, DOI 10.17487/RFC2890, September 2000, 1361 . 1363 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 1364 Architecture", RFC 4291, DOI 10.17487/RFC4291, 1365 February 2006, . 1367 [RFC4632] Fuller, V. and T. Li, "Classless Inter-domain Routing 1368 (CIDR): The Internet Address Assignment and 1369 Aggregation Plan", BCP 122, RFC 4632, DOI 1370 10.17487/RFC4632, August 2006, . 1373 [TR-069] Broadband Forum, "CPE WAN Management Protocol", Issue: 1 1374 Amendment 5, November 2013, . 1377 [TS23.401] 3GPP TS23.401, "General Packet Radio Service (GPRS) 1378 enhancements for Evolved Universal Terrestrial Radio 1379 Access Network (E-UTRAN) access", v11.7.0, September 2013. 1381 [BANANA-signaling] 1382 N. Leymann, C. Heidemann, et al, "BANdwidth Aggregation 1383 for interNet Access (BANANA) The Control Protocol of 1384 Bonding Tunnels", draft-leymann-banana-signaling, work 1385 in progress. 1387 11.2. Informative References 1389 [802Type] IANA, "IEEE 802 Numbers", 1390 . 1392 [ANSI-X9.31-1998] 1393 ANSI Standard X9.31-1998, "Digital Signatures Using 1394 Reversible Public Key Cryptography for the Financial 1395 Services Industry (rDSA)", 1998. 1397 [RFC2724] Handelman, S., Stibler, S., Brownlee, N., and G. Ruth, 1398 "RTFM: New Attributes for Traffic Flow Measurement", RFC 1399 2724, DOI 10.17487/RFC2724, October 1999, . 1402 [RFC7031] Mrugalski, T. and K. Kinnear, "DHCPv6 Failover 1403 Requirements", RFC 7031, DOI 10.17487/RFC7031, September 1404 2013, . 1406 Contributors 1408 Li Xue 1409 Individual 1410 Email: xueli_jas@163.com 1412 Zhongwen Jiang 1413 Huawei Technologies 1414 Email: jiangzhongwen@huawei.com 1416 Authors' Addresses 1417 Nicolai Leymann 1418 Deutsche Telekom AG 1419 Winterfeldtstrasse 21-27 1420 Berlin 10781 1421 Germany 1422 Phone: +49-170-2275345 1423 Email: n.leymann@telekom.de 1425 Cornelius Heidemann 1426 Deutsche Telekom AG 1427 Heinrich-Hertz-Strasse 3-7 1428 Darmstadt 64295 1429 Germany 1430 Phone: +49-6151-5812721 1431 Email: heidemannc@telekom.de 1433 Lihao Chen 1434 Huawei Technologies 1435 No.156 Beiqing Rd. Haidian District, 1436 Beijing 100095 1437 P.R. China 1438 EMail: lihao.chen@huawei.com 1440 Mingui Zhang 1441 Huawei Technologies 1442 No.156 Beiqing Rd. Haidian District, 1443 Beijing 100095 1444 P.R. China 1445 Email: zhangmingui@huawei.com 1447 Behcet Sarikaya 1448 Huawei USA 1449 5340 Legacy Dr. Building 3 1450 Plano, TX 75024 1451 United States of America 1452 Email: sarikaya@ieee.org 1454 Margaret Cullen 1455 Painless Security 1456 14 Summer St. Suite 202 1457 Malden, MA 02148 1458 United States of America 1459 Email: margaret@painless-security.com