[Lizhong] Total option length will not solve the parser buffer issue. The parser buffer is located before parser, and for Geneve, implement 512Byte is the only way since the longest of Geneve header is 260Bytes. At least in some implementations as I know, hardware will firstly receive enough 512Bytes per packets, and send the 512Bytes to parser. Then parse will be able to skip over options to get inner payload. Did I have any misunderstanding?
[Tom] Skipping header is useful so that transit devices can find the inner headers. The fact that there is no way to skip over an IPv6 extension header chain to find the transport headers of a packet has been a source of unhappiness. [Tom] The parser buffer limit applies to all headers a device wishes to inspect (some devices still may have less than 512 byte buffers also). The best way to deal with this is to minimize the length of headers. Geneve TLVs each have four bytes of overhead so they are less compact that other TLVs at similar layer (IP options, TCP options, IPv6 options each have two bytes overhead). The tradeoff made here is probably to simply alignment (I really don't see any rationale for needing 24 bits to identify options). Bit-fields are still better in this regard for being compact since there is no additional overhead per each option. _______________________________________________ nvo3 mailing list [email protected] https://www.ietf.org/mailman/listinfo/nvo3
