DTrace IP Provider [PSARC/2008/302 FastTrack timeout 05/07/2008]

Darren Reed Darren.Reed at sun.com
Mon May 12 06:50:08 PDT 2008


Erik Nordmark wrote:
> Adam,
>
> Overall this looks good. One nit though.
>
>> /*
>>  * ipinfo contains common IP info for both IPv4 and IPv6.
>>  */
>> typedef struct ipinfo {
>>         uint8_t ip_ver;                 /* IP version (4, 6) */
>>         uint16_t ip_plength;            /* payload length */
>>         string ip_saddr;                /* source address */
>>         string ip_daddr;                /* destination address */
>> } ipinfo_t;
>
> I don't think "payload length" has a natural definition when trying to 
> look at what IP actually carries because of the IPv6 extension headers.
> For instance, for a 100 byte IPv6 packet with a 8 byte hop-by-hop 
> options header, a fragment header, and a TCP header, what is the 
> payload length?
> The IPv6 header field for payload length is just 40 less than the size 
> of the IPv6 packet. But the payload that IP delivers to TCP is less 
> all the extension headers. And some might think that "payload" refers 
> to the TCP payload.
>
> Thus I think it would be more clear to have the IP provider expose the 
> IP packet length instead of payload length.
>
> Sorry for not catching this earlier.

Hmmm, what position should be taken with respect to IPv6 jumbograms?

We don't support them now, but should implementing them mean this
interface (the dtrace provider) needs to be changed?

Otherwise, I can't see why ip_plength shouldn't be 32bits.

Darren




More information about the opensolaris-arc mailing list