100 likes | 192 Views
A ‘segmentation’ exercise. What changes to our ‘segment.c’ device-driver module are needed for offloading of ‘UDP Segmentation’?. Ethernet Header. Destination MAC-address. Source MAC-address. TYPE / LENGTH. IP Header. VERS. HLEN. TOS. Total Length. Identification. FLAGS.
E N D
A ‘segmentation’ exercise What changes to our ‘segment.c’ device-driver module are needed for offloading of ‘UDP Segmentation’?
Ethernet Header Destination MAC-address Source MAC-address TYPE / LENGTH
IP Header VERS HLEN TOS Total Length Identification FLAGS fragment offset TTL Protocol ID IP Header Checksum Destination IP-address Source IP-address
UDP Header Source port-number Destination port-number UDP Segment Length UDP Checksum
UDP Pseudo Header Destination IP-address Source IP-address ZERO Protocol ID UDP Length
‘Partial’ pseudo-header Destination IP-address Source IP-address ZERO Protocol ID ZERO
Context descriptor (type 0) 63 48 47 40 39 32 31 16 15 8 7 0 TUCSE TUCSO TUCSS IPCSE IPCSO IPCSS MSS HDRLEN RSV STA TUCMD DTYP =0 PAYLEN DEXT=1 (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)
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 TSE=1
Context descriptor (type 1) 63 48 47 40 39 32 31 16 15 8 7 0 BASE ADDRESS VLAN POPTS RSV STA DCMD DTYP =1 DTALEN DEXT=1 (Extended Descriptor) Legend: DTALEN (Data Length) DTYP (Descriptor Type) DCMD (Descriptor Command) STA (Status) RSV (Reserved) POPTS (Packet Options) VLAN (VLAN tag)
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 EOP=1