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 --- |