Additional Reference Material

Raw Packet Length

Raw packets do not include the IBA transport headers, so a raw datagram packet may have a payload greater than the PMTU. Table 21-1 on this page summarizes the maximum payload (and corresponding value for LRH:PktLen) for the two raw datagram types. PktLen indicates the payload size as a number of dwords, so the packet payload must always be divisible by four. If the encapsulated payload size is not a multiple of four, the payload must be padded so as to be a multiple of four. The smallest allowed value for Packet Length is five (5 X 4 = 20 bytes) including the LRH (which is eight bytes in length). The 124-byte maximum packet header/CRC byte count does not include the VCRC.

  • The largest possible raw IPv6 packet payload = PMTU + 124 (the largest packet header/CRC size) – 8 (LRH size) – 40 (IPv6 header size).

  • The largest possible raw EtherType packet payload = PMTU + 124 (the largest packet header/CRC size) – 8 (LRH size) – 4 (RWH header size).

Table 21-1. Maximum Raw Datagram Packet Payload
MTUIPv6 Raw DatagramRaw EtherType Datagram
Largest possible packet payloadCorresponding PktLen valueLargest possible packet payloadCorresponding PktLen value
256332 bytes95 dwords368 bytes95 dwords
512588 bytes159 dwords624 bytes159 dwords
10241100 bytes287 dwords1136 bytes287 dwords
20482124 bytes543 dwords2160 bytes543 dwords
40964172 bytes1055 dwords4208 bytes1055 dwords

Q_Key and Partition Do Not Apply

No Q_Key is carried in a raw packet and no Q_Key check is performed upon packet receipt. Partitioning (P_Keys) do not apply to raw QPs or to raw packets.

Raw Packet Multicast

General

In a multicast operation, upon a request packet's arrival at a switch or a router, the switch or router examines the destination address and, if it's a multicast address, the packet is replicated and transmitted through one or more ports to all destinations that belong to the multicast group identified by the destination address.

  • Switches examine the LRH:DLID address, determine if it is a multicast address (see “LID Address Space” on page 133), and if it is, the packet is replicated and transmitted through one or more switch ports to all destinations that belong to the multicast group identified by the destination address.

  • Routers use the raw packet's IPv6 Routing Header's DGID address, or its EtherType field, to determine if the address is a multicast address, and, if so, the packet is replicated and transmitted through one or more router ports to all destinations that belong to the multicast group identified by the destination address. IPv6 applications target a multicast group using an IPv6 multicast address (see “IPv6 Multicast Addressing” on page 152). All other protocols use protocol-specific addressing and resolution. Routers may vary in their ability to support multicast packets and thus may have implementation-specific scheduling, resource management, and congestion/drop policies that are outside the scope of the IBA specification.

Two types of multicast operations are identified in the IBA specification:

  • UD multicast operations (covered in “Multicasting” on page 563).

  • Raw datagram multicast operations.

Raw packet multicast is an optional feature for an HCA. The HCA's ability can be discovered by executing the Query HCA verb.

Raw Multicast Packets Use Data VLs

Raw multicast packets are transmitted using any LRH:SL value (i.e., the desired QoS within the local subnet). The SL is specified in the WR. Raw multicast packets are transmitted on any data VL (never over the SMP VL,VL15).

Receiving a Raw Multicast Packet

Raw QPs are not attached to multicast groups in order to receive raw packet multicast messages:

  • If an HCA supports one raw IPv6 QP per port, all raw IPv6 multicast messages received on a port are delivered to that port's raw IPv6 QP.

  • If multiple raw IPv6 QPs are supported within a CA, an inbound raw IPv6 multicast message packet is delivered to a subset (or all) of those QPs based on an implementation-defined policy outside the scope of the IBA specification. The selection of the QPs to whom the packet is delivered may, for example, be based on the IPv6 Routing Header's NxtHdr value (i.e., the Internet Protocol Number).

  • If an HCA supports one raw EtherType QP per port, all raw EtherType multicast messages received on a port are delivered to that port's raw EtherType QP. Otherwise, the distribution of those messages to some (or all) raw EtherType QPs within the CA is implementation-defined.

On Raw Packet Send, Packet May Also Be Delivered to Internal Raw QPs

Loopback for raw packet multicast within a CA depends on the number of raw QPs (of the same type) implemented per port. If a raw packet Send operation is performed and the HCA supports one raw QP of each type per port, then no loopback is performed. That is, although the request packet is transmitted through the CA port to the fabric, it is not internally looped back and delivered to the RQ Logic of the same QP.

If the HCA supports multiple raw QPs of each type per port, however, then a multicast message packet sent using the SQ Logic of one raw QP may or may not be internally looped back and received on another QP (or multiple QPs) of the same type. Whether or not this is permitted and, if so, to which QPs the packet is internally routed, is implementation-specific and is outside the scope of the IBA specification.

Raw RCQ CQE Contents

When the receipt of an inbound Raw packet is completed, a CQE is created on the CQ associated with the raw QP's RQ. In addition to the information typically deposited in a CQE (see “CQE Contents” on page 287), the information found in Table 21-2 on this page is also deposited in the CQE.

Table 21-2. Additional Raw RQ's CQ CQE Information
Raw IPv6Raw EtherType
16-bit SLID16-bit SL ID
4-bit SL4-bit SL
 16-bit Ethertype
DLID Path BitsDLID Path Bits

Raw QP Error Handling

SQ Logic's Completion of a Bad Transfer

Since no responses are returned to the SQ Logic, it has no way of knowing if the Send operation completed without error at the remote destination. The only types of errors that the SQ Logic can detect are those that are locally detected by the SQ Logic. Assuming that a local error is detected, the SQ Logic immediately stops the message transmission. The additional actions taken by the SQ Logic are defined by the error type (see Table 21-3 on page 551). It should be noted that the state of the memory at the responder is unknown.

Table 21-3. Raw QP's SQ Logic Error Types and Handling
ErrorDescriptionHandling
Locally Detected Memory Protection ErrorAs an example, the Gather Buffer List specified in a WQE for a Send may have one or more entries with invalid L_Key values. Class B error handling:
  • SQ Logic retires the current WQE and creates an error CQE. The error code returned in the CQE is “Local Protection Error.”

  • Transition QP to the SQE state.

  • Retire all subsequent SQ WQEs and create error CQEs indicating that they were flushed due to an error in an earlier WQE.

Implementation-Specific Error Associated With a WQEAn implementation-specific error occurred in the requester's local CI that can be associated with a certain WQE.Class B error handling:
  • SQ Logic retires the current WQE and creates an error CQE. The error code returned in the CQE is “Local Protection Error.”

  • Transition QP to the SQE state.

  • Retire all subsequent SQ WQEs and create error CQEs indicating that they were flushed due to an error in an earlier WQE.

Implementation-Specific Error With No WQE AssociationThe error can be associated with a specific QP, but not with a specific WQE on that QP's SQ.Class C error handling:
  • That QP is transitioned to the SQE state.

  • All of the QP's SQ WQEs are retired and CQEs are created for each of them indicating that they were flushed and not executed.

  • If the CA is an HCA, the CA causes the Asynchronous Event Handler to be called (typically via an interrupt) and the error is reported as an Asynchronous Affiliated Error.

Good Transfer But Can't Post CQEThe current message transfer completed without error, but the CQE could not be written to the CQ due a failure internal to the CA. The CQ is in-accessible or full and an attempt was made to retire a WQE and create a CQE.Class F error handling:
  • The affected QP is transitioned to the SQE state.

  • If the CA is an HCA, the CA causes the Asynchronous Event Handler to be called (typically via an interrupt) and the error is reported as an Asynchronous Affiliated Error.

  • The current WQE and any subsequent WQEs on the currently active client QP's SQ are left in an unknown state.


RQ Logic Error Types and Handling

Table 21-4 on page 553 details the types of errors that may be detected by the QP's RQ Logic and how each is handled. Note that when some error types are detected, it is not possible to guarantee the state of local memory. Some or all of a given packet may have been committed to the local memory before the error is detected.

Table 21-4. Raw QP's RQ Logic Error Types and Handling
ErrorDescriptionHandling
Malformed WQE The RQ Logic detected a malformed RQ WQE while processing the packet. These errors are not caused by the sender.Class A error handling:
  • RQ WQE is retired.

  • If the error occurred on an HCA, an error CQE is created indicating a “Local QP Operation Error.”

  • All subsequent RQ WQEs are retired and a CQE is created for each indicating that they were flushed due to the error in the earlier WQE.

  • All SQ WQEs are retired and a CQE is created for each indicating that they were flushed.

  • The QP transitions to the Error state.

Unsupported or reserved opcodeInbound request packet's Opcode was either reserved or was for a function not supported by this QP (any opcode other than Send Only). Class D error handling:
  • The request packet is silently dropped.

  • No RQ error CQE is created.

No RQE availableAn inbound Send request packet has been received, but there is no RQ WQE posted, and therefore no Scatter Buffer List to define where the message is to be written in local memory.The request is invalid and is silently dropped by the RQ Logic.
Local QP ErrorRQ Logic detected a local QP-related error while executing the request packet. The error prevented the RQ Logic responder from successfully executing the request.Class A error handling:
  • RQ WQE is retired.

  • If the error occurred on an HCA, an error CQE is created indicating a “Local QP Operation Error.”

  • All subsequent RQ WQEs are retired and a CQE is created for each, indicating that they were flushed due to the error in the earlier WQE.

  • All SQ WQEs are retired and a CQE is created for each, indicating that they were flushed.

  • The QP transitions to the Error state.

Packet Header ViolationRQ Logic detected a header violation that requires a silent drop. See Figure 17-25 on page 438.See Class D error handling earlier in this table.
Length errorsInbound Send request packet's data payload exceeded the buffer space specified by the RQ WQE's Scatter Buffer List.See Class D error handling earlier in this table.
CQ overflowThe inbound Send message transfer completed with no error, but the CQE could not be written to the CQ. The CQ is inaccessible or full.Class G error handling:
  • QP transitions to the Error state.

  • Affiliated Asynchronous Error is generated (i.e., the Asynchronous Event Handler is called—typically by generating an interrupt).

  • The current RQ WQE and any subsequent RQ WQEs are left in an unknown state.


Internet Protocol Number Assignments

Table 21-5 on this page defines the content of the raw IPv6 packet's NxtHdr field (aka Internet Protocol Number). It should be stressed that this is a snapshot in time (on 5/12/02) and new assignments are made periodically.

Table 21-5. Assigned Internet Protocol Numbers
DecimalKeywordProtocolReferences
0HOPOPTIPv6 Hop-by-Hop Option[RFC1883]
1ICMPInternet Control Message[RFC792]
2IGMPInternet Group Management[RFC1112]
3GGPGateway-to-Gateway[RFC823]
4IPIP-in-IP (encapsulation)[RFC2003]
5STStream[RFC1190, RFC1819]
6TCPTransmission Control Protocol[RFC793]
7CBTCBT[Ballardie]
8EGPExterior Gateway Protocol[RFC888, DLM1]
9IGPany private interior gateway (used by Cisco for their IGRP)[IANA]
10BBN-RCC-MONBBN RCC Monitoring[SGC]
11NVP-IINetwork Voice Protocol[RFC741, SC3]
12PUPPUP[PUP, XEROX]
13ARGUSARGUS[RWS4]
14EMCONEMCON[BN7]
15XNETCross Net Debugger[IEN158, JFH2]
16CHAOSChaos[NC3]
17UDPUser Datagram[RFC768, JBP]
18MUXMultiplexing[IEN90, JBP]
19DCN-MEAS DCNMeasurement Subsystems[DLM1]
20HMPHost Monitoring[RFC869, RH6]
21PRMPacket Radio Measurement[ZSU]
22XNS-IDPXEROX NS IDP[ETHERNET, XEROX]
23TRUNK-1Trunk-1[BWB6]
24TRUNK-2Trunk-2[BWB6]
25LEAF-1Leaf-1[BWB6]
26LEAF-2Leaf-2[BWB6]
27RDPReliable Data Protocol[RFC908, RH6]
28IRTPInternet Reliable Transaction[RFC938, TXM]
29ISO-TP4ISO Transport Protocol Class 4[RFC905, RC77]
30NETBLTBulk Data Transfer Protocol[RFC969, DDC1]
31MFE-NSPMFE Network Services Protocol[MFENET, BCH2]
32MERIT-INPMERIT Internodal Protocol[HWB]
33SEPSequential Exchange Protocol[JC120]
343PCThird Party Connect Protocol[SAF3]
35IDPRInter-Domain Policy Routing Protocol[MXS1]
36XTPXTP[GXC]
37DDPDatagram Delivery Protocol [WXC]
38IDPR-CMTPIDPR Control Message Transport Protocol[MXS1]
39TP++TP++ Transport Protocol[DXF]
40ILIL Transport Protocol[Presotto]
41IPv6IPv6[Deering]
42SDRPSource Demand Routing Protocol[DXE1]
43SIP-SRIPv6-Route Routing Header for IPv6[Deering]
44SIP-FRAGIPv6-Frag Fragment Header for IPv6[Deering]
45IDRPInter-Domain Routing Protocol[Sue Hares]
46RSVPReservation Protocol[Bob Braden]
47GREGeneral Routing Encapsulation[Tony Li]
48MHRPMobile Host Routing Protocol[David Johnson]
49BNABNA[Gary Salamon]
50ESPEncapsulating Security Payload[RFC1827]
51AHAuthentication Header[RFC1826]
52I-NLSPIntegrated Net Layer Security TUBA[GLENN]
53SWIPEIP with Encryption[JI6]
54NARPNBMA Address Resolution Protocol[RFC1735]
55MOBILEIP Mobility[Perkins]
56TLSPTransport Layer Security Protocol[Oberg]
57SKIPSKIP[Markson]
58IPv6-ICMPICMP for IPv6[RFC1883]
59IPv6-NoNxtNo Next Header for IPv6[RFC1883]
60IPv6-OptsDestination Options for IPv6[RFC1883]
61 Any host internal protocol[IANA]
62CFTPCFTP[CFTP, HCF2]
63 Any local network[IANA]
64SAT-EXPAKSATNET and Backroom EXPAK[SHB]
65KRYPTOLANKryptolan[PXL1]
66RVTRemote Virtual Disk Protocol[MBG]
67IPPCInternet Pluribus Packet Core[SHB]
68 Any distributed file system[IANA]
69SAT-MONSATNET Monitoring[SHB]
70VISAVISA Protocol[GXT1]
71IPCVInternet Packet Core Utility [SHB]
72CPNXComputer Protocol Network Executive[DXM2]
73CPHBComputer Protocol Heart Beat[DXM2]
74WSNWang Span Network[VXD]
75PVPPacket Video Protocol[SC3]
76BR-SAT-MONBackroom SATNET Monitoring[SHB]
77SUN-NDSUN ND PROTOCOL-Temporary[WM3]
78WB-MONWIDEBAND Monitoring[SHB]
79WB-EXPAKWIDEBAND EXPAK[SHB]
80ISO-IPISO Internet Protocol[MTR]
81VMTPVMTP[DRC3]
82SECURE-VMTPSECURE-VMTP[DRC3]
83VINESVINES[BXH]
84TTPTTP[JXS]
85NSFNET-IGPNSFNET-IGP[HWB]
86DGPDissimilar Gateway Protocol[DGP, ML109]
87TCFTCF[GAL5]
88EIGRPEIGRP[CISCO, GXS]
89OSPFIGPOSPFIGP[RFC1583, JTM4]
90Sprite-RPCSprite RPC Protocol[SPRITE, BXW]
91LARPLocus Address Resolution Protocol[BXH]
92MTPMulticast Transport Protocol[SXA]
93AX.25AX.25 Frames[BK29]
94 IPIPIP-within-IP Encapsulation Protocol[JI6]
95MICPMobile Internetworking Control Protocol[JI6]
96SCC-SPSemaphore Communications Sec. Pro.[HXH]
97ETHERIPEthernet-within-IP Encapsulation[RDH1]
98ENCAPEncapsulation Header[RFC1241, RXB3]
99 Any private encryption scheme[IANA]
100GMTPGMTP[RXB5]
101IFMPIpsilon Flow Management Protocol[Hinden]
102PNNIPNNI over IP[Callon]
103PIMProtocol Independent Multicast[Farinacci]
104ARISARIS[Feldman]
105SCPSSCPS 
106QNXQNX 
107A/NActive Networks[Braden]
108IPCompIP Payload Compression Protocol[RFC2393]
109SNPSitara Networks Protocol[Sridhar]
110Compaq-PeerCompaq Peer Protocol[Volpe]
111IPX-in-IPIPX in IP 
112VRRPVirtual Router Redundancy Protocol[Hinden]
113PGMPGM Reliable Transport Protocol[Speakman]
114 Any 0-hop protocol[IANA]
115L2TPLayer Two Tunneling Protocol[Aboba]
116DDXD-II Data Exchange (DDX)[Worley]
117IATPInteractive Agent Transfer Protocol[Murphy]
118STPSchedule Transfer Protocol[JMP]
119SRPSpectraLink Radio Protocol[Hamilton]
120UTIUTI 
121SMPSimple Message Protocol[Ekblad]
122SM SM
123PTPPerformance Transparency Protocol[Welzl]
124 ISIS over IPv4[Przygienda]
125FIRE  
126CRTPCombat Radio Transport Protocol[Sautter]
127CRUDPCombat Radio User Datagram[Sautter]
128SSCOPMCE  
129IPLT  
130SPSSecure Packet Shield[McIntosh]
131PIPEPrivate IP Encapsulation within IP[Petri]
132SCTPStream Control Transmission Protocol[Stewart]
133FCFibre Channel[Rajagopal]
134RSVP-E2E-IGNORE [RFC3175]
135–254 Unassigned[IANA]
255 Reserved[IANA]

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.188.96.232