HOMECOURSESSTUDENTSDONATIONSVIDEOSEVENTSTUTORIALSLINKSNEWSCONTACT


VIDEOS 》 Linux Kernel struct ethhdr data-structure

For more details refer Linux Kernel Source:
struct ethhdr - http://elixir.free-electrons.com/linux/latest/source/include/uapi/linux/if_ether.h#L145
eth_hdr() API - http://elixir.free-electrons.com/linux/latest/source/include/linux/if_ether.h#L26
skb_mac_header() API - http://elixir.free-electrons.com/linux/latest/source/include/linux/skbuff.h#L2215
----
QUICK LINKS for students and advance developers:
Linux Kernel Network stack and architecture - http://the-linux-channel.the-toffee-project.org/index.php?page=3-links-linux-kernel-network-stack-and-architecture
----
Videos related to protocol header data-structures:
struct iphdr - http://the-linux-channel.the-toffee-project.org/index.php?page=48-videos-linux-kernel-struct-iphdr-data-structure
struct tcphdr - http://the-linux-channel.the-toffee-project.org/index.php?page=50-videos-linux-kernel-struct-tcphdr-data-structure
struct udphdr - http://the-linux-channel.the-toffee-project.org/index.php?page=49-videos-linux-kernel-struct-udphdr-data-structure

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

/*
 *	This is an Ethernet frame header.
 */

struct ethhdr {
	unsigned char	h_dest[ETH_ALEN];	/* destination eth addr	*/
	unsigned char	h_source[ETH_ALEN];	/* source ether addr	*/
	__be16		h_proto;		/* packet type ID field	*/
} __attribute__((packed));

Where these are the various Ethernet Header related constants, which are defined in the same file (/include/uapi/linux/if_ether.h) from the Kernel-source version 4.13 for quick reference:

/*
 *	IEEE 802.3 Ethernet magic constants.  The frame sizes omit the preamble
 *	and FCS/CRC (frame check sequence).
 */

#define ETH_ALEN	6		/* Octets in one ethernet addr	 */
#define ETH_HLEN	14		/* Total octets in header.	 */
#define ETH_ZLEN	60		/* Min. octets in frame sans FCS */
#define ETH_DATA_LEN	1500		/* Max. octets in payload	 */
#define ETH_FRAME_LEN	1514		/* Max. octets in frame sans FCS */
#define ETH_FCS_LEN	4		/* Octets in the FCS		 */

#define ETH_MIN_MTU	68		/* Min IPv4 MTU per RFC791	*/
#define ETH_MAX_MTU	0xFFFFU		/* 65535, same as IP_MAX_MTU	*/



Suggested Topics:


Video Episodes :: Linux Kernel programming

Linux Kernel Programming - Device Drivers ↗
Wednesday' 15-Jul-2020
Watch detailed videos and read topics on Linux Kernel Programming - Device Drivers

Linux Kernel Programming ↗
Wednesday' 15-Jul-2020

Linux Operating System - User-space Processes ↗
Wednesday' 15-Jul-2020

Linux Kernel - Containers and Namespaces ↗
Wednesday' 15-Jul-2020

Linux Kernel Architecture ↗
Wednesday' 15-Jul-2020

Linux Kernel Compilation ↗
Wednesday' 15-Jul-2020

Linux Kernel FileSystems Subsystem ↗
Wednesday' 15-Jul-2020

Linux Kernel /proc Interface ↗
Wednesday' 15-Jul-2020

Linux ioctl() API interface ↗
Wednesday' 15-Jul-2020
Watch detailed videos and read topics on Linux Kernel Programming and Linux ioctl() API interface

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 - [222//0] 0x1c3 ARMv7 Marvell Armada 370/XP | Netgear ReadyNAS Teardown and Upgrade | VLOG & Workflow ↗

Roadmap - How to become Linux Kernel Developer - Device Drivers Programmer and a Systems Software Expert ↗
Wednesday' 15-Jul-2020
Many viewers and even sometimes my students ask me how I can become a kernel programmer or just device driver developer and so on. So I shot this video (and an add-on video) where I summarized steps and a roadmap to become a full-fledged Linux Kernel Developer.

Linux Kernel Module to Drop Packets captured via netfilter hooks ↗
Wednesday' 15-Jul-2020
Here is my sample Kernel Module to drop packets (i.e sk_buff instance) captured via netfilter hooks. When you want to drop packets in your custom netfilter hooks make sure you never do a manual kfree_skb(skb) API call. Since it is anyway performed once the flow of the code moves out of your kernel module netfilter hook. All you need to do is to return NF_DROP to drop gracefully the desired packet. Here is my detailed video and a sample Linux Kernel module.

Weekly News Digest - Week 02 - July 2020 ↗
Wednesday' 15-Jul-2020
The Linux Channel :: Weekly News Digest - Week 02 - July 2020
> Google is teaming up with Ubuntu to bring Flutter apps to Linux
> Linux kernel developers: This new BLM coding style avoids words like blacklist
> Zstd'ing The Kernel Might See Mainline With Linux 5.9 For Faster Boot Times
> Linux 5.9 To Bring Arm Memory Tagging Extension Support
> Linux Kernel Raising Compiler Build Requirement To GCC 4.9
> Linux Developers May Discuss Allowing Rust Code Within The Kernel
> Premio Unveils Intel 9th Gen Industrial Motherboard For Advanced Embedded And IoT Solutions

CEO, CTO Talk ↗
Wednesday' 15-Jul-2020

Arduino UNO - RO Water Purifier Controller ↗
Wednesday' 15-Jul-2020
Here is a Youtube VLOG of my DIY RO Water Purifier Controller done via Arduino UNO. I want the Arduino UNO to control the RO pump, so that it pumps for a specific duration and stops automatically. This is done via Opto-isolated 4 Channel 5V 10A Relay Board meant for Arduino UNO, Raspberry Pi or similar SoC boards which offers GPIO pins. To this relay I have connected the RO water purifier booster pump which works at 24V DC connected via 220V AC to 24V DC power supply adaptar. I have also connected a small active 5V buzzer to notify the progress and completion as it fills the tank/canister.

Data-Plane and Control-Plane of a Networking Device ↗
Wednesday' 15-Jul-2020

AT&T Archives: The UNIX Operating System ↗
Wednesday' 15-Jul-2020

Socket Options - Socket Programming - setsockopt(), getsockopt() ↗
Wednesday' 15-Jul-2020

PyDelhi + PyData + ILUG-D + Linux Chix meetup mash @ Sarai on 17-Dec-2016 ↗
Wednesday' 15-Jul-2020

Tour of my new Home Networking Lab within VirtualBox VM ↗
Wednesday' 15-Jul-2020


Trending Video:
Watch on Youtube - [207//0] 0x1a2 Joblessness and Suicide rates in Tech (IT) Industry | The Linux Channel ↗

Code Snippets ↗
Wednesday' 15-Jul-2020



Recommended Video:
Watch on Youtube - [208//0] 0x1bd Raspberry Pi Official Universal Power Supply | DC 2.5 Amps - 5.1 Volts | Unboxing and Review ↗