Offloading TCP Segmentation - PowerPoint PPT Presentation

About This Presentation
Title:

Offloading TCP Segmentation

Description:

... (IP CheckSum Start) TUCSS (TCP/UDP CheckSum Start) IPCSO (IP CheckSum Offset) TUCSO (TCP/UDP ... IPCSE (IP CheckSum Ending) TUCSE (TCP/UDP CheckSum Ending) ... – PowerPoint PPT presentation

Number of Views:186
Avg rating:3.0/5.0
Slides: 13
Provided by: cru6
Category:

less

Transcript and Presenter's Notes

Title: Offloading TCP Segmentation


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 its
longer than the LAN allows
so our NIC can be programmed to carve it up
into smaller Ethernet packets
partial payload
TCP header
IP header
MAC header
TCP header
IP header
MAC header
partial payload
TCP header
IP header
MAC header
partial payload
3
NICs 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)
63 48
47 40 39 32 31
16 15
8 7 0
IPCSS
IPCSE
IPCSO
TUCSS
TUCSE
TUCSO
PAYLEN
DTYP 0
MSS
TUCMD
STA
HDRLEN
RSV
DEXT1 (Extended Descriptor)
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)
5
The TUCMD byte
7 6 5 4
3 2 1 0
IDE
SNAP
DEXT (1)
reserved (0)
RS
TSE
IP
TCP
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 TSE1
6
Context descriptor (type 1)
63 48
47 40 39 32 31
16 15
8 7 0
ADDRESS
DTALEN
DTYP 1
VLAN
DCMD
STA
POPTS
RSV
DEXT1 (Extended Descriptor)
Legend DTALEN (Data Length) DTYP (Descriptor
Type) DCMD (Descriptor Command) STA (Status)
RSV (Reserved) POPTS (Packet Options) VLAN
(VLAN tag)
7
The DCMD byte
7 6 5 4
3 2 1 0
IDE
VLE
DEXT (1)
reserved (0)
RS
TSE
IFCS
EOP
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 EOP1
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)

63 48
47 40 39 32 31
16 15
8 7 0
IPCSS
IPCSE
IPCSO
TUCSS
TUCSE
TUCSO
PAYLEN
DTYP 0
MSS
TUCMD
STA
HDRLEN
RSV
BASE ADDRESS
DTALEN
DTYP 1
VLAN
DCMD
STA
POPTS
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
31

0
Source IP-address
Destination IP-address
ZERO
ZERO
protocol ID
12
64-bit Statistical Counters
  • The NICs statistical counters are intended to
    operate in a clear-upon-read manner, but this
    requires reading the entire register
  • A few of the NICs 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!
Write a Comment
User Comments (0)
About PowerShow.com