Adapting ‘Segment C’ Device Driver Module for UDP Segmentation Offloading
100 likes | 203 Vues
Explore necessary changes in ‘Segment C’ device driver module to support UDP segmentation offloading. Understand Ethernet and IP header fields, UDP segment components, and relevant context descriptors.
Adapting ‘Segment C’ Device Driver Module for UDP Segmentation Offloading
E N D
Presentation Transcript
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