HOMECOURSESSTUDENTSDONATIONSVIDEOSEVENTSTUTORIALSLINKSNEWSCONTACT


VIDEOS 》 Linux Kernel struct tcphdr data-structure

Refer: Kernel Doc printk-formats.txt - http://elixir.free-electrons.com/linux/latest/source/Documentation/printk-formats.txt

Here is the screenshot of my Sample Example Code discussed in the video above:
Screenshot
Screenshot

Refer:
struct tcphdr data-structure - http://elixir.free-electrons.com/linux/latest/source/include/uapi/linux/tcp.h#L24
sk_buff to tcphdr APIs - http://elixir.free-electrons.com/linux/latest/source/include/linux/tcp.h
Definitions for the TCP module - http://elixir.free-electrons.com/linux/latest/source/include/net/tcp.h

And here is the copy paste of struct tcp data-structure (/include/uapi/linux/tcp.h) from the Kernel-source version 4.13 for quick reference:

struct tcphdr {
	__be16	source;
	__be16	dest;
	__be32	seq;
	__be32	ack_seq;
#if defined(__LITTLE_ENDIAN_BITFIELD)
	__u16	res1:4,
		doff:4,
		fin:1,
		syn:1,
		rst:1,
		psh:1,
		ack:1,
		urg:1,
		ece:1,
		cwr:1;
#elif defined(__BIG_ENDIAN_BITFIELD)
	__u16	doff:4,
		res1:4,
		cwr:1,
		ece:1,
		urg:1,
		ack:1,
		psh:1,
		rst:1,
		syn:1,
		fin:1;
#else
#error	"Adjust your  defines"
#endif	
	__be16	window;
	__sum16	check;
	__be16	urg_ptr;
};



Suggested Topics:


Video Episodes :: Linux Kernel programming

Join The Linux Channel :: Facebook Group ↗

Visit The Linux Channel :: on Youtube ↗


Join a course:

💎 Linux, Kernel, Networking and Device Drivers: PDF Brochure
💎 PhD or equivalent (or Post Doctoral) looking for assistance: Details
💎 ... or unlimited life-time mentorship: Details


💗 Help shape the future: Sponsor/Donate


Recommended Topics:
Featured Video:
Watch on Youtube - [16530/0] Teardown D-Link DES-1008D 8-port 10/100Mbps Fast Ethernet Switch ↗

Quagga Routing Suite - OSPF, RIP, RIPng BGP4 | GNU Zebra fork | ZebOS ↗
Monday' 01-Jun-2020
GNU Zebra is one of the oldest open-source Dynamic Routing Protocol suite stack developed by Kunihiro Ishiguro. Zebra supports features such as RIPv1/RIPv2 for IPv4 and RIPng for IPv6, OSPFv2 and OSPFv3, BGPv4+ and so on. Zebra is an active project for many years. After many years of active support Zebra is discontinued, and sometime down the lane a new fork is created from Zebra called Quagga which is now maintained by a separate independent open-source community. Quagga is a routing software suite, providing implementations of OSPFv2, OSPFv3, RIP v1 and v2, RIPng and BGP-4 for Unix platforms, particularly FreeBSD, Linux, Solaris and NetBSD. Quagga is a fork of GNU Zebra which was developed by Kunihiro Ishiguro. The Quagga architecture consists of a core daemon, zebra, which acts as an abstraction layer to the underlying Unix kernel and presents the Zserv API over a Unix or TCP stream to Quagga clients.


Trending Video:
Watch on Youtube - [1618/0] 268 TCP Congestion Control Algorithms - implemented in Linux Kernel - Introduction - Ep1 ↗



Recommended Video:
Watch on Youtube - [1759/0] 254 Linux ioctl() API interface - copy_from_user() and copy_to_user() - Episode 4 ↗