The MPLS WG Archive[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index][Thread Index][Author Index][Subject Index] MPLS Fragmentation
Neeraja Jasty wrote: > > Section 3.4 of RFC says the following. > > ----------------- > If a labeled IPv4 datagram is "too big", and the DF bit is not set > in its IP header, then the LSR MAY silently discard the datagram. > > Note that discarding such datagrams is a sensible procedure only if > the "Maximum Initially Labeled IP Datagram Size" is set to a > non-zero value in every LSR in the network which is capable of > adding a label stack to an unlabeled IP datagram. > ----------------- > > I didn't understand this. In general, If the DF bit is not set and > the packet is too big, we fragment the packet. You can't always fragment labeled packets. The LSP may not be carrying IP traffic, and the hardware may not be capable of fragmenting the packets if they are IP. (legacy ATM hardware is one such example, although ATM's cell-based architecture probably won't impose an MTU limit to begin with.) Additionally, if you have a hard QoS requirement, fragmentation may cause the packet flow to violate its QoS contract (additional IP headers and additional label headers will cause more bandwidth to be used by that IP datagram). This may result in packet loss due to policing. An operator may choose to make a policy decision to disable fragmenting of labeled packets in order to avoid the possibility of this situation. > Next question > RFC says > ------------ > If the LSR chooses not to discard a labeled IPv4 datagram which is > too big, or if the DF bit is set in that datagram, then it MUST > execute the following algorithm: > > 1. Strip off the label stack entries to obtain the IP datagram. > > 2. Let N be the number of bytes in the label stack (i.e, 4 times > the number of label stack entries). > > 3. If the IP datagram does NOT have the "Don't Fragment" bit set in > its IP header: > ------------------ > > My question is, if the DF set, How can we fragment the packet? We don't. But in order to determine whether the DF bit is set (assuming that the packet is IP, of course), you need to strip off label stack entries to get to the IP header. Steps 1 and 2 are describing how you get to that header. Step 3 explins how to fragment, if it is determined that DF is not set. Step 4 explains how to drop the packet if DF is set. Note that locating the IP header under a labeled packet is not necessarily an operation that executes in a fixed time interval - the size of the label stack is not fixed or bounded. The procedure required to do fragmentation may therefore be expensive enough to noticeably impact forwarding performance, which is another reason why an operator (or vendor) may choose to not support fragmentation of labeled packets. -- David
|
|