2005-01-20 02:13:16

by Junfeng Yang

[permalink] [raw]
Subject: [BUG] 2.6.* pktgen doesn't set ethnet header properly

Hi,

I tried to use pktgen module from 2.6.* kernels and found out that I
couldn't receive any packets generated by pktgen. I did not even see a
"packet dropped by kernel" message. It turned out that function
setup_inject in net/core/pktgen.c doesn't setup the ethernet header field
correctly. Below is a patch that fixes the problem.

--- kernel-source-2.6.8-orig/net/core/pktgen.c 2004-08-13 22:37:26.000000000 -0700
+++ kernel-source-2.6.8/net/core/pktgen.c 2005-01-19 17:54:46.000000000 -0800
@@ -259,6 +259,9 @@

/* Set up Dest MAC */
memcpy(&(info->hh[0]), info->dst_mac, 6);
+
+ /* Set up protocol */
+ ((struct ethhdr *)(info->hh))->h_proto = htons(ETH_P_IP);

info->saddr_min = 0;
info->saddr_max = 0;

-Junfeng


2005-01-21 12:52:04

by Robert Olsson

[permalink] [raw]
Subject: [BUG] 2.6.* pktgen doesn't set ethnet header properly


Hello!

Look at

pginfos[i].hh[12] = 0x08; /* fill in protocol. Rest is filled in later. */
pginfos[i].hh[13] = 0x00;

--ro


Junfeng Yang writes:
> Hi,
>
> I tried to use pktgen module from 2.6.* kernels and found out that I
> couldn't receive any packets generated by pktgen. I did not even see a
> "packet dropped by kernel" message. It turned out that function
> setup_inject in net/core/pktgen.c doesn't setup the ethernet header field
> correctly. Below is a patch that fixes the problem.
>
> --- kernel-source-2.6.8-orig/net/core/pktgen.c 2004-08-13 22:37:26.000000000 -0700
> +++ kernel-source-2.6.8/net/core/pktgen.c 2005-01-19 17:54:46.000000000 -0800
> @@ -259,6 +259,9 @@
>
> /* Set up Dest MAC */
> memcpy(&(info->hh[0]), info->dst_mac, 6);
> +
> + /* Set up protocol */
> + ((struct ethhdr *)(info->hh))->h_proto = htons(ETH_P_IP);
>
> info->saddr_min = 0;
> info->saddr_max = 0;
>
> -Junfeng
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/