From e2d2f8e0503275deb059573fab71ea338037340f Mon Sep 17 00:00:00 2001 From: Adit Ranadive Date: Sun, 16 Sep 2007 14:52:15 -0700 Subject: [PATCH] --- yaml --- r: 64992 b: refs/heads/master c: ce5d0b47f13f83dfb9fbb8ac91adad7120747aaf h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/core/pktgen.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 6a880a9ddf07..288706203460 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6ae5f983cf8de769214d2d9e8a783c881eccd4cd +refs/heads/master: ce5d0b47f13f83dfb9fbb8ac91adad7120747aaf diff --git a/trunk/net/core/pktgen.c b/trunk/net/core/pktgen.c index 36fdea71d742..803d0c8826af 100644 --- a/trunk/net/core/pktgen.c +++ b/trunk/net/core/pktgen.c @@ -111,6 +111,9 @@ * * 802.1Q/Q-in-Q support by Francesco Fondelli (FF) * + * Fixed src_mac command to set source mac of packet to value specified in + * command by Adit Ranadive + * */ #include #include @@ -1451,8 +1454,11 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "src_mac")) { char *v = valstr; + unsigned char old_smac[ETH_ALEN]; unsigned char *m = pkt_dev->src_mac; + memcpy(old_smac, pkt_dev->src_mac, ETH_ALEN); + len = strn_len(&user_buffer[i], sizeof(valstr) - 1); if (len < 0) { return len; @@ -1481,6 +1487,10 @@ static ssize_t pktgen_if_write(struct file *file, } } + /* Set up Src MAC */ + if (compare_ether_addr(old_smac, pkt_dev->src_mac)) + memcpy(&(pkt_dev->hh[6]), pkt_dev->src_mac, ETH_ALEN); + sprintf(pg_result, "OK: srcmac"); return count; }