]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Fix pktgen src_mac handling.
authorAdit Ranadive <adit.262@gmail.com>
Thu, 20 Sep 2007 19:40:03 +0000 (12:40 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 26 Sep 2007 17:54:43 +0000 (10:54 -0700)
commit ce5d0b47f13f83dfb9fbb8ac91adad7120747aaf in mainline

Subject: [PATCH] [PKTGEN]: srcmac fix

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/pktgen.c

index 9cd3a1cb60ef33b485075cb4ce49183d13f9c67b..33190c3c7410fe183bfff5b5aea2a5127382fb4e 100644 (file)
  *
  * 802.1Q/Q-in-Q support by Francesco Fondelli (FF) <francesco.fondelli@gmail.com>
  *
+ * Fixed src_mac command to set source mac of packet to value specified in
+ * command by Adit Ranadive <adit.262@gmail.com>
+ *
  */
 #include <linux/sys.h>
 #include <linux/types.h>
@@ -1415,8 +1418,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;
@@ -1445,6 +1451,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;
        }