Presentation is loading. Please wait.

Presentation is loading. Please wait.

Offloading TCP Segmentation Using Context Descriptors lets a driver offload ‘TCP Segmentation’ as well as checksum calculations.

Similar presentations


Presentation on theme: "Offloading TCP Segmentation Using Context Descriptors lets a driver offload ‘TCP Segmentation’ as well as checksum calculations."— Presentation transcript:

1 Offloading TCP Segmentation Using Context Descriptors lets a driver offload ‘TCP Segmentation’ as well as checksum calculations

2 What is ‘segmentation’? packet ‘data’ payload TCP header IP header MAC header The sender creates an Ethernet packet – but it’s longer than the LAN allows partial payload TCP header IP header MAC header TCP header IP header MAC header TCP header IP header MAC header partial payload – so our NIC can be programmed to ‘carve it up’ into smaller Ethernet packets

3 NIC’s segmentation parameters HDRLEN = total length of packet-headers PAYLEN = total length of data to be sent DTALEN = length of packet-buffer content MSS = Maximum Segment Size (w/o hdrs) POPTS = Packet Options

4 Context descriptor (type 0) IPCSS PAYLEN DTYP =0 MSS IPCSEIPCSOTUCSSTUCSETUCSO TUCMDSTAHDRLEN RSV 63 48 47 40 39 32 31 16 15 8 7 0 Legend: IPCSS (IP CheckSum Start)TUCSS (TCP/UDP CheckSum Start) IPCSO (IP CheckSum Offset)TUCSO (TCP/UDP CheckSum Offset) IPCSE (IP CheckSum Ending) TUCSE (TCP/UDP CheckSum Ending) PAYLEN (Payload Length)DTYP (Descriptor Type) TUCMD (TCP/UCP Command)STA (TCP/UDP Status) HDRLEN (Header Length)MSS (Maximum Segment Size) DEXT=1 (Extended Descriptor)

5 The TUCMD byte IDESNAP DEXT (=1) reserved (=0) RSTSEIPTCP 7 6 5 4 3 2 1 0 Legend: IDE (Interrupt Delay Enable) SNAP (Sub-Network Access Protocol) DEXT (Descriptor Extension) RS (Report Status) TSE (TCP-Segmentation Enable) IP (Internet Protocol) TCP (Transport Control Protocol) always valid valid only when TSE=1

6 Context descriptor (type 1) ADDRESS DTALEN DTYP =1 VLANDCMDSTAPOPTS RSV 63 48 47 40 39 32 31 16 15 8 7 0 Legend: DTALEN (Data Length) DTYP (Descriptor Type) DCMD (Descriptor Command) STA (Status) RSV (Reserved) POPTS (Packet Options) VLAN (VLAN tag) DEXT=1 (Extended Descriptor)

7 The DCMD byte IDEVLE DEXT (=1) reserved (=0) RSTSEIFCSEOP 7 6 5 4 3 2 1 0 Legend: IDE (Interrupt Delay Enable) VLE (VLAN Enable) DEXT (Descriptor Extension) RS (Report Status) TSE (TCP-Segmentation Enable) IFCS (Insert Frame CheckSum) EOP (End Of Packet)) always valid valid only when EOP=1

8 Context descriptor-pairs The sender accompanies each packet with a Type 0 Context Descriptor and with (one or more ) Type 1 Context Descriptor(s) IPCSS PAYLEN DTYP =0 MSS IPCSEIPCSOTUCSSTUCSETUCSO TUCMDSTAHDRLEN RSV 63 48 47 40 39 32 31 16 15 8 7 0 BASE ADDRESS DTALEN DTYP =1 VLANDCMDSTAPOPTS RSV

9 Internet Protocol Header Leave these fields equal to zero

10 Transport Control Protocol Header Setup this field with ones-complement sum of words from ‘partial’ pseudo-header

11 The ‘partial’ pseudo-header Source IP-address Destination IP-address ZERO protocol ID 31 0

12 64-bit Statistical Counters The NIC’s statistical counters are intended to operate in a ‘clear-upon-read’ manner, but this requires reading the entire register A few of the NIC’s statistical counters are 64-bit registers (even though a CPU may have to access them 32-bits at a time) Examples: TOTL/TOTH, TORL/TORH You must be sure to access both halves!


Download ppt "Offloading TCP Segmentation Using Context Descriptors lets a driver offload ‘TCP Segmentation’ as well as checksum calculations."

Similar presentations


Ads by Google