Date: Fri, 14 Jun 1996 06:21:42 -0800 To: p8021@hepnrc.hep.net From: jfw@fore.com (John Wakerly) Subject: FDDI VLAN Frame Format -- two alternate interpretations Notes on two interpretations of FDDI VLAN tagging format discussed at IEEE 802.1 Interim Meeting, June 1996, as recorded by John Wakerly. Basics ------ (Note: Numbers at left of fields are field size in octets.) Untagged Ethernet frame ---------- 6 | DA | Destination Address |--------| 6 | SA | Source Address |--------| 2 | PT/L | Packet Type (Ethernet Type II) or Length (802.3) |--------| | | N | Data | User data | | |--------| 4 | CRC | CRC (Frame Check Sequence) ---------- Tagged Ethernet frame ---------- 6 | DA | Destination Address |--------| 6 | SA | Source Address |--------| 2 | VTYPE | "Ethernet VLAN" Packet-Type value (to be assigned) |--------| 2 | VID | VLAN ID |--------| 2 | PT/L | Packet Type (Ethernet Type II) or Length (802.3) |--------| | | N | Data | User data | | |--------| 4 | CRC | CRC (Frame Check Sequence) ---------- Tagged Ethernet frame is 4 octets longer than untagged frame. SNAP Header bytes for 802.1H translation: --------- 6 | SNAPH | AA-AA-02-00-00-00 --------- Frame Control byte on FDDI: ---------- 1 | FC | ---------- Notes: Ethernet VLAN Tag = VTYPE + VID (4 octets) ---------- | 2 | VTYPE | | |--------| | Ethernet VLAN Tag 2 | VID | | ---------- | FDDI VLAN Tag = SNAPH + VTYPE + VID (10 octets) ---------- | 6 | SNAPH | | |--------| | 2 | VTYPE | | FDDI VLAN Tag |--------| | 2 | VID | | ---------- | "FDDI VLAN Tag" is defined in this way for Format B only. In Format A, the VLAN Tagged frame on FDDI has whatever format you get by doing an 802.1H translation on an Ethernet-VLAN-Tagged frame. Conceptual model for format A ----------------------------- Ethernet FDDI | OO | ------------ ------------ ------------- O | | Get | | Insert | | FDDI | O +->| Untagged |----->| Ethernet |----->| Translate |----->O | | Frame | | VTAG | | (802.1H) | O | ------------ ------------ ------------ O | ^ OO | ------------ | | | Classify | | -->| Frame |------------- | | ------------ 1. Start with an explicitly or implicitly tagged frame on Ethernet. 2. If tagged, extract the corresponding untagged frame. 3. Classify the frame into a VLAN -- if tagged, using the VLAN info already in the tag; if untagged, using the implicit info in the frame (MAC address, type, subnet, etc.). 4. Insert an Ethernet VTAG into the untagged frame, creating an Ethernet-tagged frame. 5. Translate the Ethernet-tagged frame into a FDDI frame using standard 802.1H (RFC1042) translation. Tagged frames on FDDI ring in format A -------------------------------------- ---------- 1 | FC | |--------| 6 | DA | Destination Address |--------| 6 | SA | Source Address |--------| 6 | SNAPH | AA-AA-02-00-00-00 |--------| 2 | VTYPE | "Ethernet VLAN" Packet-Type value (to be assigned) |--------| 2 | VID | VLAN ID |--------| 2 | PT/L | Packet Type (Ethernet Type II) or Length (802.3) |--------| | | N | Data | User data | | |--------| 4 | CRC | CRC (Frame Check Sequence) ---------- Ignoring FC, frame is 10 octets longer than corresponding untagged frame on Ethernet Conceptual model for format B ----------------------------- Ethernet FDDI | OO | ------------ ------------- ------------ O | | Get | | FDDI | | Insert | O +->| Untagged |----->| Translate |----->| FDDI |----->O | | Frame | | (802.1H, | | VTAG | O | ------------ | 802.3, | ----------- O | | etc. ) | ^ OO | ------------- | | | | ------------ | | | Classify | | -->| Frame |------------------------------- | | ------------ 1. Start with an explicitly or implicitly tagged frame on Ethernet. 2. If tagged, extract the corresponding untagged frame. 3. Classify the frame into a VLAN -- if tagged, using the VLAN info already in the tag; if untagged, using the implicit info in the frame (MAC address, type, subnet, etc.). 4. Translate the untagged frame into FDDI as appropriate. E.g, if Ethernet Type II, do 802.1H; if 802.3, drop length field. 5. Insert FDDI VTAG into the FDDI frame. Tagged frames on FDDI ring in format B -------------------------------------- Case 1 -- Untagged Ethernet frame was in Ethernet Type II format ---------- 1 | FC | |--------| 6 | DA | Destination Address |--------| 6 | SA | Source Address |--------| 6 | SNAPH | AA-AA-02-00-00-00 |--------| 2 | VTYPE | FDDI VLAN Packet-Type value (to be assigned, |--------| possibly different from Ethernet value) 2 | VID | VLAN ID |--------| 6 | SNAPH | AA-AA-02-00-00-00 |--------| 2 | PT/L | Packet Type from original untagged Ethernet frame |--------| | | N | Data | User data | | |--------| 4 | CRC | CRC (Frame Check Sequence) ---------- Ignoring FC, frame is 16 octets longer than corresponding untagged frame on Ethernet Case 2 -- Untagged Ethernet frame was in 802.3 format ---------- 1 | FC | |--------| 6 | DA | Destination Address |--------| 6 | SA | Source Address |--------| 6 | SNAPH | AA-AA-02-00-00-00 |--------| 2 | VTYPE | FDDI VLAN Packet-Type value (to be assigned, |--------| possibly different from Ethernet value) 2 | VID | VLAN ID |--------| | | N | Data | User data | | |--------| 4 | CRC | CRC (Frame Check Sequence) ---------- Ignoring FC, frame is 10 octets longer than corresponding untagged frame on Ethernet. ------------ Date: Fri, 14 Jun 96 17:40:18 EDT From: Anil Rijsinghani 14-Jun-1996 1729 To: p8021@hepnrc.hep.net Cc: anil@netcad.ENET.dec.com Subject: Properties of methods A and B for FDDI and 802.5 VLAN frame format FDDI and 802.5 VLAN Frame Format ================================ Attached below is my cut at the properties of the two methods of representing FDDI and 802.5 VLAN frame format - Method A and Method B. Please see John Wakerly's message for further detail on exact fields. Any clarification or feedback I receive will be accepted and incorporated. These are the two formats we discussed at Wakefield -- any new and improved methods are also welcome! Switch Processing ----------------- Within a different-MAC switch, such as an Ethernet-FDDI switch, when going from Ethernet to tagged FDDI: - Method A requires tagging but no translation - Method B requires tagging after the translation that would be done normally in the absence of VLANs (as specified by 802.1H). Tagging refers to the insertion of two fields after the SA -- the VLAN protocol identifier and the VLAN-ID. The packet formats shown in examples correspond to FDDI; but the same principles apply to 802.5. Notations --------- Vtype = 2-byte protocol type assigned to 802.1Q VLAN-ID = 2-byte VLAN identifier or tag VLAN Frame Formats on FDDI - the two methods ============================================ Method A: --------- | FC | DA | SA | VLAN Protocol | VLAN-ID | Enet-PT/Length | Data | CRC | The part of the frame after the VLAN-ID is in Ethernet format. Hence there is always a protocol type or 802.3 Length field after the VLAN-ID. The VLAN Protocol is a canned 802.2 protocol identifier identifying this as a tagged packet: AA-AA-03-00-00-00-Vtype. Method B: --------- | FC | DA | SA | VLAN Protocol | VLAN-ID | LLC | Data | CRC | The LLC field is in native FDDI format -- hence it may be RFC-1042 format for a translated Ethernet PT eg AA-AA-03-00-00-PT; or DSAP-SSAP-Ctl for a packet that started off as 802.3. Method A -------- Pros: 1. In some topologies, non-VLAN switches can interwork with VLAN switches. LAN 1 LAN 2 LAN 3 LAN 4 Regular Tagged Tagged Regular Ethernet Ethernet FDDI Ethernet | | | | | +-----+ | +-----+ | +-----+ | | | | | | | | | | | +--+ V1 +---+---+ N +---+---+ V2 +---+ | | | | | | | | | | | +-----+ | +-----+ | +-----+ | | | | | Figure 1 In the topology in Figure 1: V1, V2 = VLAN-aware switches N = Non-VLAN switch Regular = LAN on which there is no tagging Tagged = LAN on which packets are tagged The "Regular Ethernets" (LAN 1 and LAN 4) can communicate. Packets from LAN 1 are tagged by V1, with PT/L following VLAN-ID. N translates to FDDI format and leaves original PT/L alone. The packet ends up as specified by method A. V2 translates and un-tags to LAN 4. BUT: a. This assumes that N will forward giants -- packets larger than legal max for Ethernet packets -- which 802.1D bridges and switches will typically discard. b. The topologies in which non-VLAN switches can be used are restricted and difficult to recognize. One cannot mix and match these switches and expect things to work. (For example, if the positions of N and V2 are exchanged, then the above config doesn't work.) Cons: 1. FDDI-only and 802.5-only VLAN switches are required to implement Ethernet translation. This is needed even if there is no Ethernet LAN present in the Bridged/Switched LAN. This is because Method A requires either an Ethernet PT (protocol type) or 802.3 Length field to be placed after the VLAN-ID in the FDDI/802.5 packet. Implementation of Ethernet translation in a product that connects between identical non-Ethernet LANs introduces a significant performance penalty. 2. A Length field is required to be in LAN packet formats that did not previously require it, such as 802.5 and FDDI. This causes the following problems: a. When the length of a packet (from a regular FDDI link, for example) is larger than 1518, it can no longer be distinguished from a protocol type. Hence it is ambiguous, when translating into Ethernet format, whether to convert it to an Ethernet frame or 802.3 frame. b. Performing cut-through going to a tagged link becomes impossible in FDDI and 802.5 switches. An entire FDDI/802.5 packet must be received before transmission, in order to be able to determine the 802.3 Length. (Note: We evaluated several ways to try and set the Length field to values other than the actual length, in order to circumvent the above problems. However, we could not come up with a way to make this work.) 3. VLAN-aware end-stations on non-Ethernet LANs must now learn Ethernet translation as well. For example, an FDDI end-station must be able to understand or convert the Ethernet PT/802.3 Length into FDDI format. 4. Today, 802.5 to Ethernet switches are required to perform various "hacks" to take care of bit-order of addresses inside data fields within frames. For example, they must reach into the address fields within ARP and BootP packets and bit-flip them, so that end-stations don't get confused. With Method A, even 802.5 to 802.5 switches which implement VLANs will be required to do such processing. This is because the data field after the VLAN-ID must be in Ethernet format. (A general observation would be that method A moves translation out of translating switches, where it is normally performed, into same-MAC switches.) In addition, 802.5 VLAN-aware end-stations would also be required to flip bit-order within such packets. Method B -------- Pros: 1. Simple: packets stay in native format. This is the way translation works today. Cons: 1. The topology in Figure 1 does not work. This is because when N translates the tagged packet into LAN 3, the data portion below the VLAN-ID is not translated. --------------- Date: Mon, 17 Jun 1996 02:31:56 -0800 To: p8021@hepnrc.hep.net From: jfw@fore.com (John Wakerly) Subject: FDDI VLAN Frame Format -- topology study Steve Haddock's topology for studying FDDI VLAN formats A and B presented at 802.1 Interim Meeting, June 1996 (as transcribed by John Wakerly). DA-SA-Len-LLC-Data Untagged Ethernet DA-SA-PT-Data ------------------------------------------------------------- | | | | | | ----------- ----------- ------------ | 802.1Q | | 802.1Q | | Existing | | Bridge | | Bridge | | Bridge | ----------- ----------- ------------ | | | DA-SA-VPT-VID-Len-LLC-Data | | DA-SA-VPT-VID-PT-Data | OOO Untagged | | O O FDDI | Tagged Ethernet | O O ----------------------- | O O | | O O | | OOO | | | | | | | | FC-DA-SA-LLC-Data | | FC-DA-SA-SNAP-PT-Data | | | | OOO | ----------- O O ----------- | ? | O O | 802.1Q | | |----------O O-----------| Bridge | ----------- O O ----------- OOO Tagged FDDI A: B: FC-DA-SA-SNAP-VPT-VID-Len-LLC-Data FC-DA-SA-SNAP-VPT-VID-LLC-Data FC-DA-SA-SNAP-VPT-VID-PT-Data FC-DA-SA-SNAP-VPT-VID-SNAP-PT-Data Key: SA = Source Address (6 octets) DA = Destination Address (6 octets) Len = 802.3 Length (2 octets) PT = Ethernet Type-2 Packet Type LLC = 802.2 LLC header Data = Data VPT = VLAN Packet Type (2 octets, to be assigned) VID = VLAN ID (2 octets) FC = FDDI Frame Control (1 octet) SNAP = AA-AA-03-00-00-00 (6 octets)