RFC 2641
Cabletron's VlanHello Protocol Specification Version 4
RFC 2641: Cabletron's VlanHello Protocol Specification Version 4 β¨
okay so this one is an Informational RFC π, which means it's sharing info with the Internet community and is not an official Internet standard. it's from the Network Working Group, written by D. Hamilton and D. Ruffen from Cabletron Systems Incorporated, dated August 1999 π¦. the title block doesn't list anything it obsoletes or updates, so it's kind of its own thing π
Status of this Memo
this memo gives info to the Internet community. it does NOT specify an Internet standard of any kind π distribution of this memo is unlimited, so share away bestie πΈ
Copyright Notice
Copyright (C) The Internet Society (1999). All Rights Reserved. π
Abstract
the VlanHello protocol is part of the InterSwitch Message Protocol (ISMP) β¨ ISMP handles interswitch communication between switches running Cabletron's SecureFast VLAN (SFVLAN) product π₯ switches use VlanHello to discover their neighboring switches and figure out the topology of the switch fabric. literally the whole map of who's connected to who πΊοΈ
Table of Contents
1. Introduction...................................... 2
1.1 Data Conventions.............................. 2
2. VlanHello Protocol Operational Overview........... 2
2.1 Neighbor Discovery............................ 2
2.2 Port States................................... 3
2.3 Topology Events............................... 5
2.4 Timers........................................ 9
3. InterSwitch Message Protocol...................... 9
3.1 Frame Header.................................. 10
3.2 ISMP Packet Header............................ 11
3.3 ISMP Message Body............................. 12
4. Interswitch Keepalive Message..................... 13
5. Security Considerations........................... 16
6. References........................................ 16
7. Authors' Addresses................................ 16
8. Full Copyright Statement.......................... 17
1. Introduction π§
this memo is going out to the Internet community to get reactions to the proposals in it π the specification here might not be directly relevant to the research problems of the Internet, but researchers and implementers might still find it interesting π
1.1 Data Conventions
the way this memo describes and pictures data follows the standards of Internet Protocol documentation [RFC1700] π specifically:
The convention in the documentation of Internet Protocols is to express numbers in decimal and to picture data in "big-endian" order. That is, fields are described left to right, with the most significant octet on the left and the least significant octet on the right.
The order of transmission of the header and data described in this document is resolved to the octet level. Whenever a diagram shows a group of octets, the order of transmission of those octets is the normal order in which they are read in English.
Whenever an octet represents a numeric quantity the left most bit in the diagram is the high order or most significant bit. That is, the bit labeled 0 is the most significant bit.
Similarly, whenever a multi-octet field represents a numeric quantity the left most bit of the whole field is the most significant bit. When a multi-octet quantity is transmitted the most significant octet is transmitted first. π«Ά
2. VlanHello Protocol Operational Overview π
switches use VlanHello to detect their neighboring switches and build the topology of the switch fabric. it's giving teamwork β¨
2.1 Neighbor Discovery
at initialization, each switch sends an Interswitch Keepalive message out all local ports EXCEPT the ones that have been preconfigured so they cannot be Network ports (see Section 2.2) π« then, as each switch finds its neighbors through incoming Interswitch Keepalive messages, it tells its local topology services (see Section 2.3), and those services build the topology tables for the switching fabric π
each switch keeps sending Interswitch Keepalive messages at regular intervals (currently 5 seconds) β° if a switch hasn't heard from one of its neighbors for some predetermined interval (see Section 2.4), it sends a notification to all interested services and the neighbor gets removed from the topology table. bye bye π
Interswitch Keepalive messages are described in Section 4.
2.2 Port States
every port on a switch can be in one of several different states π they're listed below, and Figure 1 shows how the port state changes inside the VlanHello protocol π¦
- Unknown. This is the default state of all ports at initialization. πΈ
- Network. A port is deemed a Network port when the switch has received an Interswitch Keepalive message over the port from one of its neighbor switches. A transition to this state triggers a Neighbor Found event, which tells the local topology servers that the interface is functioning and a 2-way conversation has been established with the neighbor. β¨
When the last switch is lost on a Network port, the state of the switch reverts to either Network Only (see next state) or to Unknown, and a Neighbor Lost event is triggered, telling the local topology servers that the interface is no longer operational. π
- Network Only. Certain types of port interfaces are incapable of accessing user endstations and can only be used to access other switches. Such ports are deemed Network Only ports. If the last switch is lost from a port that has already been deemed a Network port, the VlanHello protocol checks the condition of the port interface. If it is the type of interface that can only be used to access other switches, the state of the port is set to Network Only. Otherwise, it reverts to Unknown. π§
- Standby. A port is deemed a Standby port under the following conditions:
- The neighbor switch on the port has a higher level of functionality and it has determined that the local switch is incompatible with that functionality. In this circumstance, the MAC entry for the local switch in the Interswitch Keepalive message received from the neighbor contains an assigned status of Incompatible. π
- The list of MAC entries in the Interswitch Keepalive message received from the neighbor switch does not contain an entry for the local switch. In this circumstance, the local switch assumes that communication with its neighbor will be one-way only. π
The VlanHello protocol keeps listening for Interswitch Keepalive messages on a Standby port, but it does not transmit any Interswitch Keepalive messages over the port. If a message comes in that removes the condition under which the port state was set to Standby, the state of the port is set to Network. π₯
- Going to Access. When any packet other than an Interswitch Keepalive message is received over an Unknown port, the state of the port changes to Going to Access and a timer is activated. If the timer expires without an Interswitch Keepalive message being received over the port, the port state changes to Access. β³
- Access. A port is deemed an Access port when any packet other than an Interswitch Keepalive message has been received over the port and the Going to Access timer has expired. A port can also be administratively designated an Access "control" port, meaning the port is to remain an Access port, regardless of the type of messages that are received on it. Interswitch Keepalive messages are not sent over Access control ports. π
Three other types of ports are recognized: the host management port, host data port, and host control port. These ports are designated at initialization and are used to access the host CPU. Interswitch Keepalive messages are not sent over these ports. π
Packet in
|
V
+---------+
Packet in | Unknown |
| +---------+
G-A V |
Timer +----------+ no V
exp | Going to |<------[KA msg?] Packet in
<------| Access | | |
| +----------+ yes | V
V | V yes +---------+
+--------+ V [1-way?]------+-->| Standby |
| Access | [KA msg?] | ^ +---------+
+--------+ | | no | |
| V no | V
yes | [compatible?]----+ [KA msg?]
| | |
| | yes | yes
| V V
V +---------+ [1-way?]
+--------->| Network |<--+ |
+---------+ ^ | no
| | yes V
lost last | +<----[compatible?]
neighbor |
V
[network]
[ only? ]
|
+--------------+ yes | no +---------+
| Network Only |<-----------+----------->| Unknown |
+--------------+ +---------+
Figure 1: Port State Machine
2.3. Topology Events πΈ
okay so when VlanHello finds something new about one of its ports, it has to tell the local topology service center π§ so the center can build or update the topology tables for the switch fabric. That message is a system event, and it lives inside a structure called a topology relay structure π These structures sit in a first-in/first-out (FIFO) queue, so the topology servers handle them in the order they arrived. No cap, it's very fair π
A topology relay structure usually carries info pulled from Interswitch Keepalive messages that came in on the port, and it looks like this:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00 | Event |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
04 | Delta options mask |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
08 | Current options mask |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 | Port number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
16 | |
+ Port neighbor switch identifier +
| |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Port neighbor IP address ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
28 | ... Port neighbor IP address | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Neighbor chassis MAC addr +
32 | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
36 | Neighbor chassis IP address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
40 | Neighbor functional level |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
44 | Topology agent |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
48 | Next event |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Event
This 4-octet field is the number of the event π Here are the valid values:
1: A new neighbor switch was discovered on the specified port.2: The neighbor switch has gained the feature(s) specified in the Delta options mask.3: The neighbor switch has lost the feature(s) specified in the Delta options mask.4: The neighbor switch has timed out and is presumed down.5: The specified port is down.6: The neighbor switch has been previously seen on a different port. The specified port is the previous port.7: The specified port is being reassigned to another topology agent. Event is generated by the current (old) agent.8: The port is looped, which means the Keepalive message was generated by the receiving switch.9: The port is crossed, which means a Keepalive message was received on a port not owned by this topology agent.10: The neighbor switch's functional level has changed.11: The neighbor switch is running an incompatible version of the protocol.12: Two-way communication with the neighbor switch has been lost.13: The neighbor switch's Keepalive message sequence number has been reset, indicating the switch itself has been reset.
Delta options mask
This 4-octet field is a bit map of the feature(s) the neighbor switch gained or lost π It only matters for events 2 and 3. Valid values are the same as for the next field, Current options mask.
Current options mask
This 4-octet field is a bit map of the features the neighbor switch has β¨ Here are the bit assignments:
1 (unused)
2 The switch is a VLAN switch.
4 The switch has link state capability.
8 The switch has loop-free flood path capability.
16 The switch has resolve capability.
32 (unused)
64 The switch has tag-based flood capability.
128 The switch has tap capability.
256 The switch has message connection capability.
512 The switch has redundant access capability.
1024 The switch is an isolated switch.
4096 The switch is an uplink. (SFVLAN V1.8 only)
8192 The switch is an uplink to core. (SFVLAN V1.8 only)
16384 The port is an uplink port. (SFVLAN V1.8 only)
32768 The port is an uplink flood port. (SFVLAN V1.8 only)
Port number
This 4-octet field is the logical number of the local port where the event happened π
Port neighbor switch identifier
This 10-octet field is the internal identifier of the neighbor switch found on the port π¦ It's made of the neighbor's 6-octet physical (MAC) address, followed by the 4-octet logical port number on the neighbor switch where it was discovered.
Port neighbor IP address
This 4-octet field is the Internet Protocol (IP) address of the neighbor switch π
Neighbor chassis MAC address
This 6-octet field is the physical (MAC) address of the neighbor switch's chassis π«Ά
Neighbor chassis IP address
This 4-octet field is the Internet Protocol (IP) address of the neighbor switch's chassis π
Neighbor functional level
This 4-octet field is the functional level of the neighbor switch. It depends on the version of the SecureFast VLAN software that switch is running. Valid values:
1: The switch is running a version of SFVLAN prior to Version 1.8.2: The switch is running SFVLAN Version 1.8 or greater.
Topology agent
This 4-octet field is a pointer to the topology agent that generated the event π The pointer can reference any topology agent that sends Interswitch Keepalive messages, meaning any agent running the VlanHello protocol.
Next event
This 4-octet field is a pointer to the next event relay structure in the list π§
2.4. Timers β°
VlanHello runs on three timers, bestie π
- Send Hello timer. This one controls how often Interswitch Keepalive messages get sent.
- Aging timer. This one detects when communication with a neighboring switch has been lost π
- Going to Access timer. This one keeps a port from being prematurely designated as an Access port during network initialization. It makes sure the transition to Access happens at the right time π If an Unknown port gets any packet other than an Interswitch Keepalive message, the port state is set to Going To Access. If the switch gets an Interswitch Keepalive message on that port before the timer expires, the port state changes to Network. Otherwise, once the timer expires, the port state changes to Access.
3. InterSwitch Message Protocol π
The VlanHello protocol runs as part of the InterSwitch Message Protocol (ISMP), which is part of Cabletron's SecureFast VLAN (SFVLAN) product, as described in [IDsfvlan]. ISMP gives SFVLAN switches a consistent way to wrap up and send network control messages between each other π«Ά
ISMP packets are variable length, and their general structure is:
- Frame header
- ISMP packet header
- ISMP message body
3.1. Frame Header π¦
ISMP packets are wrapped in an IEEE 802-compliant frame using a standard header, which looks like this:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00 | |
+ Destination address +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
04 | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Source address +
08 | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 | Type | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
16 | |
+ +
: :
Destination address
This 6-octet field is the Media Access Control (MAC) address of the multicast channel that every switch in the fabric listens on for ISMP packets πΈ The destination address field of every ISMP packet is set to 01-00-1D-00-00-00.
Source address
This 6-octet field is the physical (MAC) address of the switch that sent the ISMP packet β¨
Type
This 2-octet field tells you what kind of data is inside the frame π For ISMP packets, the type field is 0x81FD.
3.2 ISMP Packet Header β¨
okay bestie, the ISMP packet header is a variable number of octets, and here's the map πΊοΈ
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00 |///////////////////////////////////////////////////////////////|
://////// Frame header /////////////////////////////////////////:
+//////// (14 octets) /////////+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 |///////////////////////////////| ISMP Version |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
16 | ISMP message type | Sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
20 | Code length | |
+-+-+-+-+-+-+-+-+ +
| Authentication code |
: :
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
: :
Frame header
this 14-octet field holds the frame header π¦
ISMP Version
this 2-octet field says which version of the InterSwitch Message Protocol this ISMP packet follows. VlanHello uses ISMP Version 3.0 π
ISMP message type
this 2-octet field tells you what kind of ISMP message is in the message body. VlanHello Interswitch Keepalive messages have a message type of 2 π¦
Sequence number
this 2-octet field is an internally generated sequence number that the various protocol handlers use to keep messages in sync π
Code length
this 1-octet field is the number of octets in the Authentication code field π’
Authentication code
this variable-length field holds an encoded value used to authenticate the ISMP message π
3.3 ISMP Message Body
the ISMP message body is a variable-length field with the actual data of the message π its length and content depend on the value in the message type field. the format of the VlanHello Interswitch Keepalive message is coming up in the next section, so stay tuned π
4. Interswitch Keepalive Message
the VlanHello Interswitch Keepalive message is a variable number of octets, and it looks like this π§
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00 | |
+ Frame header / +
: ISMP packet header :
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
n | Version | Switch IP address ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
n+4 | ... Switch IP address | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
n+8 | |
+ Switch ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
n+16 | |
+ Chassis MAC address +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Chassis IP address ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
n+24 | ... Chassis IP address | Switch type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
n+28 | Functional level |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
n+32 | Options |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
n+36 | Base MAC count | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
n+40 | |
: Base MAC entries :
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
n = 21 + length of the authentication code of the packet
Frame header/ISMP packet header
this variable-length field holds both the frame header and the ISMP packet header π
Version
this 2-octet field is the version of the VlanHello protocol this message follows. this document describes VlanHello Version 4 β¨
Switch IP address
this 4-octet field is the Internet Protocol (IP) address of the sending switch π
Switch ID
this 10-octet field is the internal ISMP identifier of the sending switch. the switch makes this ID itself, and it's built from the switch's 6-octet physical (MAC) address, followed by a 4-octet value with the logical port number the switch sent the packet over πͺͺ
Chassis MAC
this 6-octet field is the physical (MAC) address of the sending switch's chassis π§±
Chassis IP address
this 4-octet field is the Internet Protocol (IP) address of the switch chassis πΈ
Switch type
this 2-octet field is the type of the switch. right now, the only value recognized here is:
- 2 The switch is an SFVLAN switch.
Functional level
this 4-octet field is the functional level of the sending switch. it depends on the version level of the SecureFast VLAN software the switch is running. valid values are:
- 1 The switch is running a version of SFVLAN prior to Version 1.8.
- 2 The switch is running SFVLAN Version 1.8 or greater.
Options
this 4-octet field is a bit map of the switch's features. bit assignments are below, and this part is giving puzzle energy π§©
1 (unused)
2 The switch is a VLAN switch.
4 The switch has link state capability.
8 The switch has loop-free flood path capability.
16 The switch has resolve capability.
32 (unused)
64 The switch has tag-based flood capability.
128 The switch has tap capability.
256 The switch has message connection capability.
512 The switch has redundant access capability.
1024 The switch is an isolated switch.
4096 The switch is an uplink. (SFVLAN V1.8 only)
8192 The switch is an uplink to core. (SFVLAN V1.8 only)
16384 The port is an uplink port. (SFVLAN V1.8 only)
32768 The port is an uplink flood port. (SFVLAN V1.8 only)
Base MAC count
this 2-octet field is the number of entries in the list of Base MAC entries π’
Base MAC entries
this variable-length field is a list of entries for all the neighboring switches that the sending switch has already discovered on the port the message went out over. the number of entries is in the Base MAC count field π―
each MAC entry is 10 octets long, and it's structured like this:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Switch MAC address +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Assigned neighbor state ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... Assigned neighbor state |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Switch MAC address
this 6-octet field is the base MAC address of the neighboring switch π«Ά
Assigned neighbor state
this 4-octet field is the assigned state of the neighboring switch, as the sending switch sees it. right now, the only valid value here is 3, which means a state of Network π₯
5. Security Considerations
π¨ okay bestie, this one is serious. Security concerns are not addressed in this document. so if you're building something with this, you have to think about security yourself π
6. References
- [RFC1700] Reynolds, J. and J. Postel, "Assigned Numbers", STD 2, RFC 1700, October 1994.
- [IDsfvlan] Ruffen, D., Len, T. and J. Yanacek, "Cabletron's SecureFast VLAN Operational Model", RFC 2643, August 1999.
- [IDvlsp] Kane, L., "Cabletron's VLS Protocol Specification", RFC 2642, August 1999.
7. Authors' Addresses
Dave Hamilton Cabletron Systems, Inc. Post Office Box 5005 Rochester, NH 03866-5005
Phone:(603) 332-9400 EMail: daveh@ctron.com
Dave Ruffen Cabletron Systems, Inc. Post Office Box 5005 Rochester, NH 03866-5005
Phone:(603) 332-9400 EMail: ruffen@ctron.com
17. Full Copyright Statement
the legal bit stays word-for-word, because it has to ππ
Copyright (C) The Internet Society (1999). All Rights Reserved.
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgement
funding for the RFC Editor function is currently provided by the Internet Society πβ¨
π¦ where this page comes from
- ietf: rfc2641 1999-08
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms