pktgen.c (47a0200d535f08ac8f784a709c48995ca0b10288) pktgen.c (4940fc889e1e63667a15243028ddcd84d471cd8e)
1/*
2 * Authors:
3 * Copyright 2001, 2002 by Robert Olsson <robert.olsson@its.uu.se>
4 * Uppsala University and
5 * Swedish University of Agricultural Sciences
6 *
7 * Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
8 * Ben Greear <greearb@candelatech.com>

--- 1406 unchanged lines hidden (view full) ---

1415 if (debug)
1416 printk(KERN_DEBUG "pktgen: src_max set to: %s\n",
1417 pkt_dev->src_max);
1418 i += len;
1419 sprintf(pg_result, "OK: src_max=%s", pkt_dev->src_max);
1420 return count;
1421 }
1422 if (!strcmp(name, "dst_mac")) {
1/*
2 * Authors:
3 * Copyright 2001, 2002 by Robert Olsson <robert.olsson@its.uu.se>
4 * Uppsala University and
5 * Swedish University of Agricultural Sciences
6 *
7 * Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
8 * Ben Greear <greearb@candelatech.com>

--- 1406 unchanged lines hidden (view full) ---

1415 if (debug)
1416 printk(KERN_DEBUG "pktgen: src_max set to: %s\n",
1417 pkt_dev->src_max);
1418 i += len;
1419 sprintf(pg_result, "OK: src_max=%s", pkt_dev->src_max);
1420 return count;
1421 }
1422 if (!strcmp(name, "dst_mac")) {
1423 char *v = valstr;
1424 unsigned char old_dmac[ETH_ALEN];
1425 unsigned char *m = pkt_dev->dst_mac;
1426 memcpy(old_dmac, pkt_dev->dst_mac, ETH_ALEN);
1427
1428 len = strn_len(&user_buffer[i], sizeof(valstr) - 1);
1429 if (len < 0)
1430 return len;
1431
1432 memset(valstr, 0, sizeof(valstr));
1433 if (copy_from_user(valstr, &user_buffer[i], len))
1434 return -EFAULT;
1423 len = strn_len(&user_buffer[i], sizeof(valstr) - 1);
1424 if (len < 0)
1425 return len;
1426
1427 memset(valstr, 0, sizeof(valstr));
1428 if (copy_from_user(valstr, &user_buffer[i], len))
1429 return -EFAULT;
1435 i += len;
1436
1430
1437 for (*m = 0; *v && m < pkt_dev->dst_mac + 6; v++) {
1438 int value;
1439
1440 value = hex_to_bin(*v);
1441 if (value >= 0)
1442 *m = *m * 16 + value;
1443
1444 if (*v == ':') {
1445 m++;
1446 *m = 0;
1447 }
1448 }
1449
1431 if (!mac_pton(valstr, pkt_dev->dst_mac))
1432 return -EINVAL;
1450 /* Set up Dest MAC */
1433 /* Set up Dest MAC */
1451 if (compare_ether_addr(old_dmac, pkt_dev->dst_mac))
1452 memcpy(&(pkt_dev->hh[0]), pkt_dev->dst_mac, ETH_ALEN);
1434 memcpy(&pkt_dev->hh[0], pkt_dev->dst_mac, ETH_ALEN);
1453
1435
1454 sprintf(pg_result, "OK: dstmac");
1436 sprintf(pg_result, "OK: dstmac %pM", pkt_dev->dst_mac);
1455 return count;
1456 }
1457 if (!strcmp(name, "src_mac")) {
1437 return count;
1438 }
1439 if (!strcmp(name, "src_mac")) {
1458 char *v = valstr;
1459 unsigned char old_smac[ETH_ALEN];
1460 unsigned char *m = pkt_dev->src_mac;
1461
1462 memcpy(old_smac, pkt_dev->src_mac, ETH_ALEN);
1463
1464 len = strn_len(&user_buffer[i], sizeof(valstr) - 1);
1465 if (len < 0)
1466 return len;
1467
1468 memset(valstr, 0, sizeof(valstr));
1469 if (copy_from_user(valstr, &user_buffer[i], len))
1470 return -EFAULT;
1440 len = strn_len(&user_buffer[i], sizeof(valstr) - 1);
1441 if (len < 0)
1442 return len;
1443
1444 memset(valstr, 0, sizeof(valstr));
1445 if (copy_from_user(valstr, &user_buffer[i], len))
1446 return -EFAULT;
1471 i += len;
1472
1447
1473 for (*m = 0; *v && m < pkt_dev->src_mac + 6; v++) {
1474 int value;
1475
1476 value = hex_to_bin(*v);
1477 if (value >= 0)
1478 *m = *m * 16 + value;
1479
1480 if (*v == ':') {
1481 m++;
1482 *m = 0;
1483 }
1484 }
1485
1448 if (!mac_pton(valstr, pkt_dev->src_mac))
1449 return -EINVAL;
1486 /* Set up Src MAC */
1450 /* Set up Src MAC */
1487 if (compare_ether_addr(old_smac, pkt_dev->src_mac))
1488 memcpy(&(pkt_dev->hh[6]), pkt_dev->src_mac, ETH_ALEN);
1451 memcpy(&pkt_dev->hh[6], pkt_dev->src_mac, ETH_ALEN);
1489
1452
1490 sprintf(pg_result, "OK: srcmac");
1453 sprintf(pg_result, "OK: srcmac %pM", pkt_dev->src_mac);
1491 return count;
1492 }
1493
1494 if (!strcmp(name, "clear_counters")) {
1495 pktgen_clear_counters(pkt_dev);
1496 sprintf(pg_result, "OK: Clearing counters.\n");
1497 return count;
1498 }

--- 2322 unchanged lines hidden ---
1454 return count;
1455 }
1456
1457 if (!strcmp(name, "clear_counters")) {
1458 pktgen_clear_counters(pkt_dev);
1459 sprintf(pg_result, "OK: Clearing counters.\n");
1460 return count;
1461 }

--- 2322 unchanged lines hidden ---