pkt_dev 107 drivers/block/pktcdvd.c static int pkt_setup_dev(dev_t dev, dev_t* pkt_dev); pkt_dev 108 drivers/block/pktcdvd.c static int pkt_remove_dev(dev_t pkt_dev); pkt_dev 365 drivers/block/pktcdvd.c MAJOR(pd->pkt_dev), MINOR(pd->pkt_dev), pkt_dev 1106 drivers/block/pktcdvd.c pkt_bdev = bdget(kdev_t_to_nr(pd->pkt_dev)); pkt_dev 2571 drivers/block/pktcdvd.c if (pd->pkt_dev == dev) { pkt_dev 2584 drivers/block/pktcdvd.c if (pd2->pkt_dev == dev) { pkt_dev 2698 drivers/block/pktcdvd.c static int pkt_setup_dev(dev_t dev, dev_t* pkt_dev) pkt_dev 2756 drivers/block/pktcdvd.c pd->pkt_dev = MKDEV(pktdev_major, idx); pkt_dev 2770 drivers/block/pktcdvd.c if (pkt_dev) pkt_dev 2771 drivers/block/pktcdvd.c *pkt_dev = pd->pkt_dev; pkt_dev 2790 drivers/block/pktcdvd.c static int pkt_remove_dev(dev_t pkt_dev) pkt_dev 2800 drivers/block/pktcdvd.c if (pd && (pd->pkt_dev == pkt_dev)) pkt_dev 2850 drivers/block/pktcdvd.c ctrl_cmd->pkt_dev = new_encode_dev(pd->pkt_dev); pkt_dev 2853 drivers/block/pktcdvd.c ctrl_cmd->pkt_dev = 0; pkt_dev 2865 drivers/block/pktcdvd.c dev_t pkt_dev = 0; pkt_dev 2877 drivers/block/pktcdvd.c ret = pkt_setup_dev(new_decode_dev(ctrl_cmd.dev), &pkt_dev); pkt_dev 2878 drivers/block/pktcdvd.c ctrl_cmd.pkt_dev = new_encode_dev(pkt_dev); pkt_dev 2883 drivers/block/pktcdvd.c ret = pkt_remove_dev(new_decode_dev(ctrl_cmd.pkt_dev)); pkt_dev 166 include/linux/pktcdvd.h dev_t pkt_dev; /* our dev */ pkt_dev 100 include/uapi/linux/pktcdvd.h __u32 pkt_dev; /* in/out: Device nr for packet device */ pkt_dev 473 net/core/pktgen.c static void pktgen_clear_counters(struct pktgen_dev *pkt_dev); pkt_dev 548 net/core/pktgen.c const struct pktgen_dev *pkt_dev = seq->private; pkt_dev 555 net/core/pktgen.c (unsigned long long)pkt_dev->count, pkt_dev->min_pkt_size, pkt_dev 556 net/core/pktgen.c pkt_dev->max_pkt_size); pkt_dev 560 net/core/pktgen.c pkt_dev->nfrags, (unsigned long long) pkt_dev->delay, pkt_dev 561 net/core/pktgen.c pkt_dev->clone_skb, pkt_dev->odevname); pkt_dev 563 net/core/pktgen.c seq_printf(seq, " flows: %u flowlen: %u\n", pkt_dev->cflows, pkt_dev 564 net/core/pktgen.c pkt_dev->lflow); pkt_dev 568 net/core/pktgen.c pkt_dev->queue_map_min, pkt_dev 569 net/core/pktgen.c pkt_dev->queue_map_max); pkt_dev 571 net/core/pktgen.c if (pkt_dev->skb_priority) pkt_dev 573 net/core/pktgen.c pkt_dev->skb_priority); pkt_dev 575 net/core/pktgen.c if (pkt_dev->flags & F_IPV6) { pkt_dev 579 net/core/pktgen.c &pkt_dev->in6_saddr, pkt_dev 580 net/core/pktgen.c &pkt_dev->min_in6_saddr, &pkt_dev->max_in6_saddr, pkt_dev 581 net/core/pktgen.c &pkt_dev->in6_daddr, pkt_dev 582 net/core/pktgen.c &pkt_dev->min_in6_daddr, &pkt_dev->max_in6_daddr); pkt_dev 586 net/core/pktgen.c pkt_dev->dst_min, pkt_dev->dst_max); pkt_dev 589 net/core/pktgen.c pkt_dev->src_min, pkt_dev->src_max); pkt_dev 595 net/core/pktgen.c is_zero_ether_addr(pkt_dev->src_mac) ? pkt_dev 596 net/core/pktgen.c pkt_dev->odev->dev_addr : pkt_dev->src_mac); pkt_dev 599 net/core/pktgen.c seq_printf(seq, "%pM\n", pkt_dev->dst_mac); pkt_dev 604 net/core/pktgen.c pkt_dev->udp_src_min, pkt_dev->udp_src_max, pkt_dev 605 net/core/pktgen.c pkt_dev->udp_dst_min, pkt_dev->udp_dst_max); pkt_dev 609 net/core/pktgen.c pkt_dev->src_mac_count, pkt_dev->dst_mac_count); pkt_dev 611 net/core/pktgen.c if (pkt_dev->nr_labels) { pkt_dev 613 net/core/pktgen.c for (i = 0; i < pkt_dev->nr_labels; i++) pkt_dev 614 net/core/pktgen.c seq_printf(seq, "%08x%s", ntohl(pkt_dev->labels[i]), pkt_dev 615 net/core/pktgen.c i == pkt_dev->nr_labels-1 ? "\n" : ", "); pkt_dev 618 net/core/pktgen.c if (pkt_dev->vlan_id != 0xffff) pkt_dev 620 net/core/pktgen.c pkt_dev->vlan_id, pkt_dev->vlan_p, pkt_dev 621 net/core/pktgen.c pkt_dev->vlan_cfi); pkt_dev 623 net/core/pktgen.c if (pkt_dev->svlan_id != 0xffff) pkt_dev 625 net/core/pktgen.c pkt_dev->svlan_id, pkt_dev->svlan_p, pkt_dev 626 net/core/pktgen.c pkt_dev->svlan_cfi); pkt_dev 628 net/core/pktgen.c if (pkt_dev->tos) pkt_dev 629 net/core/pktgen.c seq_printf(seq, " tos: 0x%02x\n", pkt_dev->tos); pkt_dev 631 net/core/pktgen.c if (pkt_dev->traffic_class) pkt_dev 632 net/core/pktgen.c seq_printf(seq, " traffic_class: 0x%02x\n", pkt_dev->traffic_class); pkt_dev 634 net/core/pktgen.c if (pkt_dev->burst > 1) pkt_dev 635 net/core/pktgen.c seq_printf(seq, " burst: %d\n", pkt_dev->burst); pkt_dev 637 net/core/pktgen.c if (pkt_dev->node >= 0) pkt_dev 638 net/core/pktgen.c seq_printf(seq, " node: %d\n", pkt_dev->node); pkt_dev 640 net/core/pktgen.c if (pkt_dev->xmit_mode == M_NETIF_RECEIVE) pkt_dev 642 net/core/pktgen.c else if (pkt_dev->xmit_mode == M_QUEUE_XMIT) pkt_dev 649 net/core/pktgen.c if (!pkt_dev->cflows) pkt_dev 652 net/core/pktgen.c if (pkt_dev->flags & (1 << i)) pkt_dev 658 net/core/pktgen.c if (i == F_IPSEC && pkt_dev->spi) pkt_dev 659 net/core/pktgen.c seq_printf(seq, "spi:%u", pkt_dev->spi); pkt_dev 666 net/core/pktgen.c stopped = pkt_dev->running ? ktime_get() : pkt_dev->stopped_at; pkt_dev 667 net/core/pktgen.c idle = pkt_dev->idle_acc; pkt_dev 672 net/core/pktgen.c (unsigned long long)pkt_dev->sofar, pkt_dev 673 net/core/pktgen.c (unsigned long long)pkt_dev->errors); pkt_dev 677 net/core/pktgen.c (unsigned long long) ktime_to_us(pkt_dev->started_at), pkt_dev 683 net/core/pktgen.c pkt_dev->seq_num, pkt_dev->cur_dst_mac_offset, pkt_dev 684 net/core/pktgen.c pkt_dev->cur_src_mac_offset); pkt_dev 686 net/core/pktgen.c if (pkt_dev->flags & F_IPV6) { pkt_dev 688 net/core/pktgen.c &pkt_dev->cur_in6_saddr, pkt_dev 689 net/core/pktgen.c &pkt_dev->cur_in6_daddr); pkt_dev 692 net/core/pktgen.c &pkt_dev->cur_saddr, &pkt_dev->cur_daddr); pkt_dev 695 net/core/pktgen.c pkt_dev->cur_udp_dst, pkt_dev->cur_udp_src); pkt_dev 697 net/core/pktgen.c seq_printf(seq, " cur_queue_map: %u\n", pkt_dev->cur_queue_map); pkt_dev 699 net/core/pktgen.c seq_printf(seq, " flows: %u\n", pkt_dev->nflows); pkt_dev 701 net/core/pktgen.c if (pkt_dev->result[0]) pkt_dev 702 net/core/pktgen.c seq_printf(seq, "Result: %s\n", pkt_dev->result); pkt_dev 798 net/core/pktgen.c static ssize_t get_labels(const char __user *buffer, struct pktgen_dev *pkt_dev) pkt_dev 805 net/core/pktgen.c pkt_dev->nr_labels = 0; pkt_dev 811 net/core/pktgen.c pkt_dev->labels[n] = htonl(tmp); pkt_dev 812 net/core/pktgen.c if (pkt_dev->labels[n] & MPLS_STACK_BOTTOM) pkt_dev 813 net/core/pktgen.c pkt_dev->flags |= F_MPLS_RND; pkt_dev 823 net/core/pktgen.c pkt_dev->nr_labels = n; pkt_dev 861 net/core/pktgen.c struct pktgen_dev *pkt_dev = seq->private; pkt_dev 869 net/core/pktgen.c pg_result = &(pkt_dev->result[0]); pkt_dev 921 net/core/pktgen.c if (value != pkt_dev->min_pkt_size) { pkt_dev 922 net/core/pktgen.c pkt_dev->min_pkt_size = value; pkt_dev 923 net/core/pktgen.c pkt_dev->cur_pkt_size = value; pkt_dev 926 net/core/pktgen.c pkt_dev->min_pkt_size); pkt_dev 938 net/core/pktgen.c if (value != pkt_dev->max_pkt_size) { pkt_dev 939 net/core/pktgen.c pkt_dev->max_pkt_size = value; pkt_dev 940 net/core/pktgen.c pkt_dev->cur_pkt_size = value; pkt_dev 943 net/core/pktgen.c pkt_dev->max_pkt_size); pkt_dev 957 net/core/pktgen.c if (value != pkt_dev->min_pkt_size) { pkt_dev 958 net/core/pktgen.c pkt_dev->min_pkt_size = value; pkt_dev 959 net/core/pktgen.c pkt_dev->max_pkt_size = value; pkt_dev 960 net/core/pktgen.c pkt_dev->cur_pkt_size = value; pkt_dev 962 net/core/pktgen.c sprintf(pg_result, "OK: pkt_size=%u", pkt_dev->min_pkt_size); pkt_dev 983 net/core/pktgen.c pkt_dev->nfrags = value; pkt_dev 984 net/core/pktgen.c sprintf(pg_result, "OK: frags=%u", pkt_dev->nfrags); pkt_dev 994 net/core/pktgen.c pkt_dev->delay = ULLONG_MAX; pkt_dev 996 net/core/pktgen.c pkt_dev->delay = (u64)value; pkt_dev 999 net/core/pktgen.c (unsigned long long) pkt_dev->delay); pkt_dev 1010 net/core/pktgen.c pkt_dev->delay = pkt_dev->min_pkt_size*8*NSEC_PER_USEC/value; pkt_dev 1012 net/core/pktgen.c pr_info("Delay set at: %llu ns\n", pkt_dev->delay); pkt_dev 1025 net/core/pktgen.c pkt_dev->delay = NSEC_PER_SEC/value; pkt_dev 1027 net/core/pktgen.c pr_info("Delay set at: %llu ns\n", pkt_dev->delay); pkt_dev 1038 net/core/pktgen.c if (value != pkt_dev->udp_src_min) { pkt_dev 1039 net/core/pktgen.c pkt_dev->udp_src_min = value; pkt_dev 1040 net/core/pktgen.c pkt_dev->cur_udp_src = value; pkt_dev 1042 net/core/pktgen.c sprintf(pg_result, "OK: udp_src_min=%u", pkt_dev->udp_src_min); pkt_dev 1051 net/core/pktgen.c if (value != pkt_dev->udp_dst_min) { pkt_dev 1052 net/core/pktgen.c pkt_dev->udp_dst_min = value; pkt_dev 1053 net/core/pktgen.c pkt_dev->cur_udp_dst = value; pkt_dev 1055 net/core/pktgen.c sprintf(pg_result, "OK: udp_dst_min=%u", pkt_dev->udp_dst_min); pkt_dev 1064 net/core/pktgen.c if (value != pkt_dev->udp_src_max) { pkt_dev 1065 net/core/pktgen.c pkt_dev->udp_src_max = value; pkt_dev 1066 net/core/pktgen.c pkt_dev->cur_udp_src = value; pkt_dev 1068 net/core/pktgen.c sprintf(pg_result, "OK: udp_src_max=%u", pkt_dev->udp_src_max); pkt_dev 1077 net/core/pktgen.c if (value != pkt_dev->udp_dst_max) { pkt_dev 1078 net/core/pktgen.c pkt_dev->udp_dst_max = value; pkt_dev 1079 net/core/pktgen.c pkt_dev->cur_udp_dst = value; pkt_dev 1081 net/core/pktgen.c sprintf(pg_result, "OK: udp_dst_max=%u", pkt_dev->udp_dst_max); pkt_dev 1089 net/core/pktgen.c ((pkt_dev->xmit_mode == M_NETIF_RECEIVE) || pkt_dev 1090 net/core/pktgen.c !(pkt_dev->odev->priv_flags & IFF_TX_SKB_SHARING))) pkt_dev 1093 net/core/pktgen.c pkt_dev->clone_skb = value; pkt_dev 1095 net/core/pktgen.c sprintf(pg_result, "OK: clone_skb=%d", pkt_dev->clone_skb); pkt_dev 1104 net/core/pktgen.c pkt_dev->count = value; pkt_dev 1106 net/core/pktgen.c (unsigned long long)pkt_dev->count); pkt_dev 1115 net/core/pktgen.c if (pkt_dev->src_mac_count != value) { pkt_dev 1116 net/core/pktgen.c pkt_dev->src_mac_count = value; pkt_dev 1117 net/core/pktgen.c pkt_dev->cur_src_mac_offset = 0; pkt_dev 1120 net/core/pktgen.c pkt_dev->src_mac_count); pkt_dev 1129 net/core/pktgen.c if (pkt_dev->dst_mac_count != value) { pkt_dev 1130 net/core/pktgen.c pkt_dev->dst_mac_count = value; pkt_dev 1131 net/core/pktgen.c pkt_dev->cur_dst_mac_offset = 0; pkt_dev 1134 net/core/pktgen.c pkt_dev->dst_mac_count); pkt_dev 1144 net/core/pktgen.c ((pkt_dev->xmit_mode == M_QUEUE_XMIT) || pkt_dev 1145 net/core/pktgen.c ((pkt_dev->xmit_mode == M_START_XMIT) && pkt_dev 1146 net/core/pktgen.c (!(pkt_dev->odev->priv_flags & IFF_TX_SKB_SHARING))))) pkt_dev 1148 net/core/pktgen.c pkt_dev->burst = value < 1 ? 1 : value; pkt_dev 1149 net/core/pktgen.c sprintf(pg_result, "OK: burst=%d", pkt_dev->burst); pkt_dev 1160 net/core/pktgen.c pkt_dev->node = value; pkt_dev 1161 net/core/pktgen.c sprintf(pg_result, "OK: node=%d", pkt_dev->node); pkt_dev 1162 net/core/pktgen.c if (pkt_dev->page) { pkt_dev 1163 net/core/pktgen.c put_page(pkt_dev->page); pkt_dev 1164 net/core/pktgen.c pkt_dev->page = NULL; pkt_dev 1184 net/core/pktgen.c pkt_dev->xmit_mode = M_START_XMIT; pkt_dev 1187 net/core/pktgen.c if (pkt_dev->clone_skb > 0) pkt_dev 1190 net/core/pktgen.c pkt_dev->xmit_mode = M_NETIF_RECEIVE; pkt_dev 1195 net/core/pktgen.c pkt_dev->last_ok = 1; pkt_dev 1200 net/core/pktgen.c pkt_dev->clone_skb = 0; pkt_dev 1202 net/core/pktgen.c pkt_dev->xmit_mode = M_QUEUE_XMIT; pkt_dev 1203 net/core/pktgen.c pkt_dev->last_ok = 1; pkt_dev 1231 net/core/pktgen.c pkt_dev->flags &= ~flag; pkt_dev 1233 net/core/pktgen.c pkt_dev->flags |= flag; pkt_dev 1249 net/core/pktgen.c sprintf(pg_result, "OK: flags=0x%x", pkt_dev->flags); pkt_dev 1253 net/core/pktgen.c len = strn_len(&user_buffer[i], sizeof(pkt_dev->dst_min) - 1); pkt_dev 1260 net/core/pktgen.c if (strcmp(buf, pkt_dev->dst_min) != 0) { pkt_dev 1261 net/core/pktgen.c memset(pkt_dev->dst_min, 0, sizeof(pkt_dev->dst_min)); pkt_dev 1262 net/core/pktgen.c strcpy(pkt_dev->dst_min, buf); pkt_dev 1263 net/core/pktgen.c pkt_dev->daddr_min = in_aton(pkt_dev->dst_min); pkt_dev 1264 net/core/pktgen.c pkt_dev->cur_daddr = pkt_dev->daddr_min; pkt_dev 1267 net/core/pktgen.c pr_debug("dst_min set to: %s\n", pkt_dev->dst_min); pkt_dev 1269 net/core/pktgen.c sprintf(pg_result, "OK: dst_min=%s", pkt_dev->dst_min); pkt_dev 1273 net/core/pktgen.c len = strn_len(&user_buffer[i], sizeof(pkt_dev->dst_max) - 1); pkt_dev 1280 net/core/pktgen.c if (strcmp(buf, pkt_dev->dst_max) != 0) { pkt_dev 1281 net/core/pktgen.c memset(pkt_dev->dst_max, 0, sizeof(pkt_dev->dst_max)); pkt_dev 1282 net/core/pktgen.c strcpy(pkt_dev->dst_max, buf); pkt_dev 1283 net/core/pktgen.c pkt_dev->daddr_max = in_aton(pkt_dev->dst_max); pkt_dev 1284 net/core/pktgen.c pkt_dev->cur_daddr = pkt_dev->daddr_max; pkt_dev 1287 net/core/pktgen.c pr_debug("dst_max set to: %s\n", pkt_dev->dst_max); pkt_dev 1289 net/core/pktgen.c sprintf(pg_result, "OK: dst_max=%s", pkt_dev->dst_max); pkt_dev 1297 net/core/pktgen.c pkt_dev->flags |= F_IPV6; pkt_dev 1303 net/core/pktgen.c in6_pton(buf, -1, pkt_dev->in6_daddr.s6_addr, -1, NULL); pkt_dev 1304 net/core/pktgen.c snprintf(buf, sizeof(buf), "%pI6c", &pkt_dev->in6_daddr); pkt_dev 1306 net/core/pktgen.c pkt_dev->cur_in6_daddr = pkt_dev->in6_daddr; pkt_dev 1320 net/core/pktgen.c pkt_dev->flags |= F_IPV6; pkt_dev 1326 net/core/pktgen.c in6_pton(buf, -1, pkt_dev->min_in6_daddr.s6_addr, -1, NULL); pkt_dev 1327 net/core/pktgen.c snprintf(buf, sizeof(buf), "%pI6c", &pkt_dev->min_in6_daddr); pkt_dev 1329 net/core/pktgen.c pkt_dev->cur_in6_daddr = pkt_dev->min_in6_daddr; pkt_dev 1342 net/core/pktgen.c pkt_dev->flags |= F_IPV6; pkt_dev 1348 net/core/pktgen.c in6_pton(buf, -1, pkt_dev->max_in6_daddr.s6_addr, -1, NULL); pkt_dev 1349 net/core/pktgen.c snprintf(buf, sizeof(buf), "%pI6c", &pkt_dev->max_in6_daddr); pkt_dev 1363 net/core/pktgen.c pkt_dev->flags |= F_IPV6; pkt_dev 1369 net/core/pktgen.c in6_pton(buf, -1, pkt_dev->in6_saddr.s6_addr, -1, NULL); pkt_dev 1370 net/core/pktgen.c snprintf(buf, sizeof(buf), "%pI6c", &pkt_dev->in6_saddr); pkt_dev 1372 net/core/pktgen.c pkt_dev->cur_in6_saddr = pkt_dev->in6_saddr; pkt_dev 1382 net/core/pktgen.c len = strn_len(&user_buffer[i], sizeof(pkt_dev->src_min) - 1); pkt_dev 1389 net/core/pktgen.c if (strcmp(buf, pkt_dev->src_min) != 0) { pkt_dev 1390 net/core/pktgen.c memset(pkt_dev->src_min, 0, sizeof(pkt_dev->src_min)); pkt_dev 1391 net/core/pktgen.c strcpy(pkt_dev->src_min, buf); pkt_dev 1392 net/core/pktgen.c pkt_dev->saddr_min = in_aton(pkt_dev->src_min); pkt_dev 1393 net/core/pktgen.c pkt_dev->cur_saddr = pkt_dev->saddr_min; pkt_dev 1396 net/core/pktgen.c pr_debug("src_min set to: %s\n", pkt_dev->src_min); pkt_dev 1398 net/core/pktgen.c sprintf(pg_result, "OK: src_min=%s", pkt_dev->src_min); pkt_dev 1402 net/core/pktgen.c len = strn_len(&user_buffer[i], sizeof(pkt_dev->src_max) - 1); pkt_dev 1409 net/core/pktgen.c if (strcmp(buf, pkt_dev->src_max) != 0) { pkt_dev 1410 net/core/pktgen.c memset(pkt_dev->src_max, 0, sizeof(pkt_dev->src_max)); pkt_dev 1411 net/core/pktgen.c strcpy(pkt_dev->src_max, buf); pkt_dev 1412 net/core/pktgen.c pkt_dev->saddr_max = in_aton(pkt_dev->src_max); pkt_dev 1413 net/core/pktgen.c pkt_dev->cur_saddr = pkt_dev->saddr_max; pkt_dev 1416 net/core/pktgen.c pr_debug("src_max set to: %s\n", pkt_dev->src_max); pkt_dev 1418 net/core/pktgen.c sprintf(pg_result, "OK: src_max=%s", pkt_dev->src_max); pkt_dev 1430 net/core/pktgen.c if (!mac_pton(valstr, pkt_dev->dst_mac)) pkt_dev 1433 net/core/pktgen.c ether_addr_copy(&pkt_dev->hh[0], pkt_dev->dst_mac); pkt_dev 1435 net/core/pktgen.c sprintf(pg_result, "OK: dstmac %pM", pkt_dev->dst_mac); pkt_dev 1447 net/core/pktgen.c if (!mac_pton(valstr, pkt_dev->src_mac)) pkt_dev 1450 net/core/pktgen.c ether_addr_copy(&pkt_dev->hh[6], pkt_dev->src_mac); pkt_dev 1452 net/core/pktgen.c sprintf(pg_result, "OK: srcmac %pM", pkt_dev->src_mac); pkt_dev 1457 net/core/pktgen.c pktgen_clear_counters(pkt_dev); pkt_dev 1471 net/core/pktgen.c pkt_dev->cflows = value; pkt_dev 1472 net/core/pktgen.c sprintf(pg_result, "OK: flows=%u", pkt_dev->cflows); pkt_dev 1482 net/core/pktgen.c pkt_dev->spi = value; pkt_dev 1483 net/core/pktgen.c sprintf(pg_result, "OK: spi=%u", pkt_dev->spi); pkt_dev 1493 net/core/pktgen.c pkt_dev->lflow = value; pkt_dev 1494 net/core/pktgen.c sprintf(pg_result, "OK: flowlen=%u", pkt_dev->lflow); pkt_dev 1504 net/core/pktgen.c pkt_dev->queue_map_min = value; pkt_dev 1505 net/core/pktgen.c sprintf(pg_result, "OK: queue_map_min=%u", pkt_dev->queue_map_min); pkt_dev 1515 net/core/pktgen.c pkt_dev->queue_map_max = value; pkt_dev 1516 net/core/pktgen.c sprintf(pg_result, "OK: queue_map_max=%u", pkt_dev->queue_map_max); pkt_dev 1523 net/core/pktgen.c len = get_labels(&user_buffer[i], pkt_dev); pkt_dev 1528 net/core/pktgen.c for (n = 0; n < pkt_dev->nr_labels; n++) pkt_dev 1530 net/core/pktgen.c "%08x%s", ntohl(pkt_dev->labels[n]), pkt_dev 1531 net/core/pktgen.c n == pkt_dev->nr_labels-1 ? "" : ","); pkt_dev 1533 net/core/pktgen.c if (pkt_dev->nr_labels && pkt_dev->vlan_id != 0xffff) { pkt_dev 1534 net/core/pktgen.c pkt_dev->vlan_id = 0xffff; /* turn off VLAN/SVLAN */ pkt_dev 1535 net/core/pktgen.c pkt_dev->svlan_id = 0xffff; pkt_dev 1550 net/core/pktgen.c pkt_dev->vlan_id = value; /* turn on VLAN */ pkt_dev 1555 net/core/pktgen.c if (debug && pkt_dev->nr_labels) pkt_dev 1558 net/core/pktgen.c pkt_dev->nr_labels = 0; /* turn off MPLS */ pkt_dev 1559 net/core/pktgen.c sprintf(pg_result, "OK: vlan_id=%u", pkt_dev->vlan_id); pkt_dev 1561 net/core/pktgen.c pkt_dev->vlan_id = 0xffff; /* turn off VLAN/SVLAN */ pkt_dev 1562 net/core/pktgen.c pkt_dev->svlan_id = 0xffff; pkt_dev 1576 net/core/pktgen.c if ((value <= 7) && (pkt_dev->vlan_id != 0xffff)) { pkt_dev 1577 net/core/pktgen.c pkt_dev->vlan_p = value; pkt_dev 1578 net/core/pktgen.c sprintf(pg_result, "OK: vlan_p=%u", pkt_dev->vlan_p); pkt_dev 1591 net/core/pktgen.c if ((value <= 1) && (pkt_dev->vlan_id != 0xffff)) { pkt_dev 1592 net/core/pktgen.c pkt_dev->vlan_cfi = value; pkt_dev 1593 net/core/pktgen.c sprintf(pg_result, "OK: vlan_cfi=%u", pkt_dev->vlan_cfi); pkt_dev 1606 net/core/pktgen.c if ((value <= 4095) && ((pkt_dev->vlan_id != 0xffff))) { pkt_dev 1607 net/core/pktgen.c pkt_dev->svlan_id = value; /* turn on SVLAN */ pkt_dev 1612 net/core/pktgen.c if (debug && pkt_dev->nr_labels) pkt_dev 1615 net/core/pktgen.c pkt_dev->nr_labels = 0; /* turn off MPLS */ pkt_dev 1616 net/core/pktgen.c sprintf(pg_result, "OK: svlan_id=%u", pkt_dev->svlan_id); pkt_dev 1618 net/core/pktgen.c pkt_dev->vlan_id = 0xffff; /* turn off VLAN/SVLAN */ pkt_dev 1619 net/core/pktgen.c pkt_dev->svlan_id = 0xffff; pkt_dev 1633 net/core/pktgen.c if ((value <= 7) && (pkt_dev->svlan_id != 0xffff)) { pkt_dev 1634 net/core/pktgen.c pkt_dev->svlan_p = value; pkt_dev 1635 net/core/pktgen.c sprintf(pg_result, "OK: svlan_p=%u", pkt_dev->svlan_p); pkt_dev 1648 net/core/pktgen.c if ((value <= 1) && (pkt_dev->svlan_id != 0xffff)) { pkt_dev 1649 net/core/pktgen.c pkt_dev->svlan_cfi = value; pkt_dev 1650 net/core/pktgen.c sprintf(pg_result, "OK: svlan_cfi=%u", pkt_dev->svlan_cfi); pkt_dev 1665 net/core/pktgen.c pkt_dev->tos = tmp_value; pkt_dev 1666 net/core/pktgen.c sprintf(pg_result, "OK: tos=0x%02x", pkt_dev->tos); pkt_dev 1681 net/core/pktgen.c pkt_dev->traffic_class = tmp_value; pkt_dev 1682 net/core/pktgen.c sprintf(pg_result, "OK: traffic_class=0x%02x", pkt_dev->traffic_class); pkt_dev 1695 net/core/pktgen.c pkt_dev->skb_priority = value; pkt_dev 1697 net/core/pktgen.c pkt_dev->skb_priority); pkt_dev 1701 net/core/pktgen.c sprintf(pkt_dev->result, "No such parameter \"%s\"", name); pkt_dev 1721 net/core/pktgen.c const struct pktgen_dev *pkt_dev; pkt_dev 1728 net/core/pktgen.c list_for_each_entry_rcu(pkt_dev, &t->if_list, list) pkt_dev 1729 net/core/pktgen.c if (pkt_dev->running) pkt_dev 1730 net/core/pktgen.c seq_printf(seq, "%s ", pkt_dev->odevname); pkt_dev 1734 net/core/pktgen.c list_for_each_entry_rcu(pkt_dev, &t->if_list, list) pkt_dev 1735 net/core/pktgen.c if (!pkt_dev->running) pkt_dev 1736 net/core/pktgen.c seq_printf(seq, "%s ", pkt_dev->odevname); pkt_dev 1860 net/core/pktgen.c struct pktgen_dev *pkt_dev = NULL; pkt_dev 1864 net/core/pktgen.c pkt_dev = pktgen_find_dev(t, ifname, exact); pkt_dev 1865 net/core/pktgen.c if (pkt_dev) { pkt_dev 1867 net/core/pktgen.c pkt_dev->removal_mark = 1; pkt_dev 1873 net/core/pktgen.c return pkt_dev; pkt_dev 1881 net/core/pktgen.c struct pktgen_dev *pkt_dev = NULL; pkt_dev 1890 net/core/pktgen.c pkt_dev = __pktgen_NN_threads(pn, ifname, REMOVE); pkt_dev 1891 net/core/pktgen.c if (pkt_dev == NULL) pkt_dev 1918 net/core/pktgen.c struct pktgen_dev *pkt_dev; pkt_dev 1921 net/core/pktgen.c list_for_each_entry(pkt_dev, &t->if_list, list) { pkt_dev 1922 net/core/pktgen.c if (pkt_dev->odev != dev) pkt_dev 1925 net/core/pktgen.c proc_remove(pkt_dev->entry); pkt_dev 1927 net/core/pktgen.c pkt_dev->entry = proc_create_data(dev->name, 0600, pkt_dev 1930 net/core/pktgen.c pkt_dev); pkt_dev 1931 net/core/pktgen.c if (!pkt_dev->entry) pkt_dev 1968 net/core/pktgen.c struct pktgen_dev *pkt_dev, pkt_dev 1989 net/core/pktgen.c struct pktgen_dev *pkt_dev, const char *ifname) pkt_dev 1995 net/core/pktgen.c if (pkt_dev->odev) { pkt_dev 1996 net/core/pktgen.c dev_put(pkt_dev->odev); pkt_dev 1997 net/core/pktgen.c pkt_dev->odev = NULL; pkt_dev 2000 net/core/pktgen.c odev = pktgen_dev_get_by_name(pn, pkt_dev, ifname); pkt_dev 2013 net/core/pktgen.c pkt_dev->odev = odev; pkt_dev 2024 net/core/pktgen.c static void pktgen_setup_inject(struct pktgen_dev *pkt_dev) pkt_dev 2028 net/core/pktgen.c if (!pkt_dev->odev) { pkt_dev 2030 net/core/pktgen.c sprintf(pkt_dev->result, pkt_dev 2036 net/core/pktgen.c ntxq = pkt_dev->odev->real_num_tx_queues; pkt_dev 2038 net/core/pktgen.c if (ntxq <= pkt_dev->queue_map_min) { pkt_dev 2040 net/core/pktgen.c pkt_dev->queue_map_min, (ntxq ?: 1) - 1, ntxq, pkt_dev 2041 net/core/pktgen.c pkt_dev->odevname); pkt_dev 2042 net/core/pktgen.c pkt_dev->queue_map_min = (ntxq ?: 1) - 1; pkt_dev 2044 net/core/pktgen.c if (pkt_dev->queue_map_max >= ntxq) { pkt_dev 2046 net/core/pktgen.c pkt_dev->queue_map_max, (ntxq ?: 1) - 1, ntxq, pkt_dev 2047 net/core/pktgen.c pkt_dev->odevname); pkt_dev 2048 net/core/pktgen.c pkt_dev->queue_map_max = (ntxq ?: 1) - 1; pkt_dev 2053 net/core/pktgen.c if (is_zero_ether_addr(pkt_dev->src_mac)) pkt_dev 2054 net/core/pktgen.c ether_addr_copy(&(pkt_dev->hh[6]), pkt_dev->odev->dev_addr); pkt_dev 2057 net/core/pktgen.c ether_addr_copy(&(pkt_dev->hh[0]), pkt_dev->dst_mac); pkt_dev 2059 net/core/pktgen.c if (pkt_dev->flags & F_IPV6) { pkt_dev 2063 net/core/pktgen.c if (pkt_dev->min_pkt_size == 0) { pkt_dev 2064 net/core/pktgen.c pkt_dev->min_pkt_size = 14 + sizeof(struct ipv6hdr) pkt_dev 2067 net/core/pktgen.c + pkt_dev->pkt_overhead; pkt_dev 2071 net/core/pktgen.c if (pkt_dev->cur_in6_saddr.s6_addr[i]) { pkt_dev 2085 net/core/pktgen.c idev = __in6_dev_get(pkt_dev->odev); pkt_dev 2093 net/core/pktgen.c pkt_dev->cur_in6_saddr = ifp->addr; pkt_dev 2105 net/core/pktgen.c if (pkt_dev->min_pkt_size == 0) { pkt_dev 2106 net/core/pktgen.c pkt_dev->min_pkt_size = 14 + sizeof(struct iphdr) pkt_dev 2109 net/core/pktgen.c + pkt_dev->pkt_overhead; pkt_dev 2112 net/core/pktgen.c pkt_dev->saddr_min = 0; pkt_dev 2113 net/core/pktgen.c pkt_dev->saddr_max = 0; pkt_dev 2114 net/core/pktgen.c if (strlen(pkt_dev->src_min) == 0) { pkt_dev 2119 net/core/pktgen.c in_dev = __in_dev_get_rcu(pkt_dev->odev); pkt_dev 2125 net/core/pktgen.c pkt_dev->saddr_min = ifa->ifa_address; pkt_dev 2126 net/core/pktgen.c pkt_dev->saddr_max = pkt_dev->saddr_min; pkt_dev 2131 net/core/pktgen.c pkt_dev->saddr_min = in_aton(pkt_dev->src_min); pkt_dev 2132 net/core/pktgen.c pkt_dev->saddr_max = in_aton(pkt_dev->src_max); pkt_dev 2135 net/core/pktgen.c pkt_dev->daddr_min = in_aton(pkt_dev->dst_min); pkt_dev 2136 net/core/pktgen.c pkt_dev->daddr_max = in_aton(pkt_dev->dst_max); pkt_dev 2139 net/core/pktgen.c pkt_dev->cur_pkt_size = pkt_dev->min_pkt_size; pkt_dev 2140 net/core/pktgen.c if (pkt_dev->min_pkt_size > pkt_dev->max_pkt_size) pkt_dev 2141 net/core/pktgen.c pkt_dev->max_pkt_size = pkt_dev->min_pkt_size; pkt_dev 2143 net/core/pktgen.c pkt_dev->cur_dst_mac_offset = 0; pkt_dev 2144 net/core/pktgen.c pkt_dev->cur_src_mac_offset = 0; pkt_dev 2145 net/core/pktgen.c pkt_dev->cur_saddr = pkt_dev->saddr_min; pkt_dev 2146 net/core/pktgen.c pkt_dev->cur_daddr = pkt_dev->daddr_min; pkt_dev 2147 net/core/pktgen.c pkt_dev->cur_udp_dst = pkt_dev->udp_dst_min; pkt_dev 2148 net/core/pktgen.c pkt_dev->cur_udp_src = pkt_dev->udp_src_min; pkt_dev 2149 net/core/pktgen.c pkt_dev->nflows = 0; pkt_dev 2153 net/core/pktgen.c static void spin(struct pktgen_dev *pkt_dev, ktime_t spin_until) pkt_dev 2181 net/core/pktgen.c } while (t.task && pkt_dev->running && !signal_pending(current)); pkt_dev 2186 net/core/pktgen.c pkt_dev->idle_acc += ktime_to_ns(ktime_sub(end_time, start_time)); pkt_dev 2188 net/core/pktgen.c pkt_dev->next_tx = ktime_add_ns(spin_until, pkt_dev->delay); pkt_dev 2192 net/core/pktgen.c static inline void set_pkt_overhead(struct pktgen_dev *pkt_dev) pkt_dev 2194 net/core/pktgen.c pkt_dev->pkt_overhead = 0; pkt_dev 2195 net/core/pktgen.c pkt_dev->pkt_overhead += pkt_dev->nr_labels*sizeof(u32); pkt_dev 2196 net/core/pktgen.c pkt_dev->pkt_overhead += VLAN_TAG_SIZE(pkt_dev); pkt_dev 2197 net/core/pktgen.c pkt_dev->pkt_overhead += SVLAN_TAG_SIZE(pkt_dev); pkt_dev 2200 net/core/pktgen.c static inline int f_seen(const struct pktgen_dev *pkt_dev, int flow) pkt_dev 2202 net/core/pktgen.c return !!(pkt_dev->flows[flow].flags & F_INIT); pkt_dev 2205 net/core/pktgen.c static inline int f_pick(struct pktgen_dev *pkt_dev) pkt_dev 2207 net/core/pktgen.c int flow = pkt_dev->curfl; pkt_dev 2209 net/core/pktgen.c if (pkt_dev->flags & F_FLOW_SEQ) { pkt_dev 2210 net/core/pktgen.c if (pkt_dev->flows[flow].count >= pkt_dev->lflow) { pkt_dev 2212 net/core/pktgen.c pkt_dev->flows[flow].count = 0; pkt_dev 2213 net/core/pktgen.c pkt_dev->flows[flow].flags = 0; pkt_dev 2214 net/core/pktgen.c pkt_dev->curfl += 1; pkt_dev 2215 net/core/pktgen.c if (pkt_dev->curfl >= pkt_dev->cflows) pkt_dev 2216 net/core/pktgen.c pkt_dev->curfl = 0; /*reset */ pkt_dev 2219 net/core/pktgen.c flow = prandom_u32() % pkt_dev->cflows; pkt_dev 2220 net/core/pktgen.c pkt_dev->curfl = flow; pkt_dev 2222 net/core/pktgen.c if (pkt_dev->flows[flow].count > pkt_dev->lflow) { pkt_dev 2223 net/core/pktgen.c pkt_dev->flows[flow].count = 0; pkt_dev 2224 net/core/pktgen.c pkt_dev->flows[flow].flags = 0; pkt_dev 2228 net/core/pktgen.c return pkt_dev->curfl; pkt_dev 2237 net/core/pktgen.c static void get_ipsec_sa(struct pktgen_dev *pkt_dev, int flow) pkt_dev 2239 net/core/pktgen.c struct xfrm_state *x = pkt_dev->flows[flow].x; pkt_dev 2240 net/core/pktgen.c struct pktgen_net *pn = net_generic(dev_net(pkt_dev->odev), pg_net_id); pkt_dev 2243 net/core/pktgen.c if (pkt_dev->spi) { pkt_dev 2247 net/core/pktgen.c x = xfrm_state_lookup_byspi(pn->net, htonl(pkt_dev->spi), AF_INET); pkt_dev 2251 net/core/pktgen.c (xfrm_address_t *)&pkt_dev->cur_daddr, pkt_dev 2252 net/core/pktgen.c (xfrm_address_t *)&pkt_dev->cur_saddr, pkt_dev 2254 net/core/pktgen.c pkt_dev->ipsmode, pkt_dev 2255 net/core/pktgen.c pkt_dev->ipsproto, 0); pkt_dev 2258 net/core/pktgen.c pkt_dev->flows[flow].x = x; pkt_dev 2259 net/core/pktgen.c set_pkt_overhead(pkt_dev); pkt_dev 2260 net/core/pktgen.c pkt_dev->pkt_overhead += x->props.header_len; pkt_dev 2266 net/core/pktgen.c static void set_cur_queue_map(struct pktgen_dev *pkt_dev) pkt_dev 2269 net/core/pktgen.c if (pkt_dev->flags & F_QUEUE_MAP_CPU) pkt_dev 2270 net/core/pktgen.c pkt_dev->cur_queue_map = smp_processor_id(); pkt_dev 2272 net/core/pktgen.c else if (pkt_dev->queue_map_min <= pkt_dev->queue_map_max) { pkt_dev 2274 net/core/pktgen.c if (pkt_dev->flags & F_QUEUE_MAP_RND) { pkt_dev 2276 net/core/pktgen.c (pkt_dev->queue_map_max - pkt_dev 2277 net/core/pktgen.c pkt_dev->queue_map_min + 1) pkt_dev 2278 net/core/pktgen.c + pkt_dev->queue_map_min; pkt_dev 2280 net/core/pktgen.c t = pkt_dev->cur_queue_map + 1; pkt_dev 2281 net/core/pktgen.c if (t > pkt_dev->queue_map_max) pkt_dev 2282 net/core/pktgen.c t = pkt_dev->queue_map_min; pkt_dev 2284 net/core/pktgen.c pkt_dev->cur_queue_map = t; pkt_dev 2286 net/core/pktgen.c pkt_dev->cur_queue_map = pkt_dev->cur_queue_map % pkt_dev->odev->real_num_tx_queues; pkt_dev 2292 net/core/pktgen.c static void mod_cur_headers(struct pktgen_dev *pkt_dev) pkt_dev 2298 net/core/pktgen.c if (pkt_dev->cflows) pkt_dev 2299 net/core/pktgen.c flow = f_pick(pkt_dev); pkt_dev 2302 net/core/pktgen.c if (pkt_dev->src_mac_count > 1) { pkt_dev 2306 net/core/pktgen.c if (pkt_dev->flags & F_MACSRC_RND) pkt_dev 2307 net/core/pktgen.c mc = prandom_u32() % pkt_dev->src_mac_count; pkt_dev 2309 net/core/pktgen.c mc = pkt_dev->cur_src_mac_offset++; pkt_dev 2310 net/core/pktgen.c if (pkt_dev->cur_src_mac_offset >= pkt_dev 2311 net/core/pktgen.c pkt_dev->src_mac_count) pkt_dev 2312 net/core/pktgen.c pkt_dev->cur_src_mac_offset = 0; pkt_dev 2315 net/core/pktgen.c tmp = pkt_dev->src_mac[5] + (mc & 0xFF); pkt_dev 2316 net/core/pktgen.c pkt_dev->hh[11] = tmp; pkt_dev 2317 net/core/pktgen.c tmp = (pkt_dev->src_mac[4] + ((mc >> 8) & 0xFF) + (tmp >> 8)); pkt_dev 2318 net/core/pktgen.c pkt_dev->hh[10] = tmp; pkt_dev 2319 net/core/pktgen.c tmp = (pkt_dev->src_mac[3] + ((mc >> 16) & 0xFF) + (tmp >> 8)); pkt_dev 2320 net/core/pktgen.c pkt_dev->hh[9] = tmp; pkt_dev 2321 net/core/pktgen.c tmp = (pkt_dev->src_mac[2] + ((mc >> 24) & 0xFF) + (tmp >> 8)); pkt_dev 2322 net/core/pktgen.c pkt_dev->hh[8] = tmp; pkt_dev 2323 net/core/pktgen.c tmp = (pkt_dev->src_mac[1] + (tmp >> 8)); pkt_dev 2324 net/core/pktgen.c pkt_dev->hh[7] = tmp; pkt_dev 2328 net/core/pktgen.c if (pkt_dev->dst_mac_count > 1) { pkt_dev 2332 net/core/pktgen.c if (pkt_dev->flags & F_MACDST_RND) pkt_dev 2333 net/core/pktgen.c mc = prandom_u32() % pkt_dev->dst_mac_count; pkt_dev 2336 net/core/pktgen.c mc = pkt_dev->cur_dst_mac_offset++; pkt_dev 2337 net/core/pktgen.c if (pkt_dev->cur_dst_mac_offset >= pkt_dev 2338 net/core/pktgen.c pkt_dev->dst_mac_count) { pkt_dev 2339 net/core/pktgen.c pkt_dev->cur_dst_mac_offset = 0; pkt_dev 2343 net/core/pktgen.c tmp = pkt_dev->dst_mac[5] + (mc & 0xFF); pkt_dev 2344 net/core/pktgen.c pkt_dev->hh[5] = tmp; pkt_dev 2345 net/core/pktgen.c tmp = (pkt_dev->dst_mac[4] + ((mc >> 8) & 0xFF) + (tmp >> 8)); pkt_dev 2346 net/core/pktgen.c pkt_dev->hh[4] = tmp; pkt_dev 2347 net/core/pktgen.c tmp = (pkt_dev->dst_mac[3] + ((mc >> 16) & 0xFF) + (tmp >> 8)); pkt_dev 2348 net/core/pktgen.c pkt_dev->hh[3] = tmp; pkt_dev 2349 net/core/pktgen.c tmp = (pkt_dev->dst_mac[2] + ((mc >> 24) & 0xFF) + (tmp >> 8)); pkt_dev 2350 net/core/pktgen.c pkt_dev->hh[2] = tmp; pkt_dev 2351 net/core/pktgen.c tmp = (pkt_dev->dst_mac[1] + (tmp >> 8)); pkt_dev 2352 net/core/pktgen.c pkt_dev->hh[1] = tmp; pkt_dev 2355 net/core/pktgen.c if (pkt_dev->flags & F_MPLS_RND) { pkt_dev 2357 net/core/pktgen.c for (i = 0; i < pkt_dev->nr_labels; i++) pkt_dev 2358 net/core/pktgen.c if (pkt_dev->labels[i] & MPLS_STACK_BOTTOM) pkt_dev 2359 net/core/pktgen.c pkt_dev->labels[i] = MPLS_STACK_BOTTOM | pkt_dev 2364 net/core/pktgen.c if ((pkt_dev->flags & F_VID_RND) && (pkt_dev->vlan_id != 0xffff)) { pkt_dev 2365 net/core/pktgen.c pkt_dev->vlan_id = prandom_u32() & (4096 - 1); pkt_dev 2368 net/core/pktgen.c if ((pkt_dev->flags & F_SVID_RND) && (pkt_dev->svlan_id != 0xffff)) { pkt_dev 2369 net/core/pktgen.c pkt_dev->svlan_id = prandom_u32() & (4096 - 1); pkt_dev 2372 net/core/pktgen.c if (pkt_dev->udp_src_min < pkt_dev->udp_src_max) { pkt_dev 2373 net/core/pktgen.c if (pkt_dev->flags & F_UDPSRC_RND) pkt_dev 2374 net/core/pktgen.c pkt_dev->cur_udp_src = prandom_u32() % pkt_dev 2375 net/core/pktgen.c (pkt_dev->udp_src_max - pkt_dev->udp_src_min) pkt_dev 2376 net/core/pktgen.c + pkt_dev->udp_src_min; pkt_dev 2379 net/core/pktgen.c pkt_dev->cur_udp_src++; pkt_dev 2380 net/core/pktgen.c if (pkt_dev->cur_udp_src >= pkt_dev->udp_src_max) pkt_dev 2381 net/core/pktgen.c pkt_dev->cur_udp_src = pkt_dev->udp_src_min; pkt_dev 2385 net/core/pktgen.c if (pkt_dev->udp_dst_min < pkt_dev->udp_dst_max) { pkt_dev 2386 net/core/pktgen.c if (pkt_dev->flags & F_UDPDST_RND) { pkt_dev 2387 net/core/pktgen.c pkt_dev->cur_udp_dst = prandom_u32() % pkt_dev 2388 net/core/pktgen.c (pkt_dev->udp_dst_max - pkt_dev->udp_dst_min) pkt_dev 2389 net/core/pktgen.c + pkt_dev->udp_dst_min; pkt_dev 2391 net/core/pktgen.c pkt_dev->cur_udp_dst++; pkt_dev 2392 net/core/pktgen.c if (pkt_dev->cur_udp_dst >= pkt_dev->udp_dst_max) pkt_dev 2393 net/core/pktgen.c pkt_dev->cur_udp_dst = pkt_dev->udp_dst_min; pkt_dev 2397 net/core/pktgen.c if (!(pkt_dev->flags & F_IPV6)) { pkt_dev 2399 net/core/pktgen.c imn = ntohl(pkt_dev->saddr_min); pkt_dev 2400 net/core/pktgen.c imx = ntohl(pkt_dev->saddr_max); pkt_dev 2403 net/core/pktgen.c if (pkt_dev->flags & F_IPSRC_RND) pkt_dev 2406 net/core/pktgen.c t = ntohl(pkt_dev->cur_saddr); pkt_dev 2412 net/core/pktgen.c pkt_dev->cur_saddr = htonl(t); pkt_dev 2415 net/core/pktgen.c if (pkt_dev->cflows && f_seen(pkt_dev, flow)) { pkt_dev 2416 net/core/pktgen.c pkt_dev->cur_daddr = pkt_dev->flows[flow].cur_daddr; pkt_dev 2418 net/core/pktgen.c imn = ntohl(pkt_dev->daddr_min); pkt_dev 2419 net/core/pktgen.c imx = ntohl(pkt_dev->daddr_max); pkt_dev 2423 net/core/pktgen.c if (pkt_dev->flags & F_IPDST_RND) { pkt_dev 2434 net/core/pktgen.c pkt_dev->cur_daddr = s; pkt_dev 2436 net/core/pktgen.c t = ntohl(pkt_dev->cur_daddr); pkt_dev 2441 net/core/pktgen.c pkt_dev->cur_daddr = htonl(t); pkt_dev 2444 net/core/pktgen.c if (pkt_dev->cflows) { pkt_dev 2445 net/core/pktgen.c pkt_dev->flows[flow].flags |= F_INIT; pkt_dev 2446 net/core/pktgen.c pkt_dev->flows[flow].cur_daddr = pkt_dev 2447 net/core/pktgen.c pkt_dev->cur_daddr; pkt_dev 2449 net/core/pktgen.c if (pkt_dev->flags & F_IPSEC) pkt_dev 2450 net/core/pktgen.c get_ipsec_sa(pkt_dev, flow); pkt_dev 2452 net/core/pktgen.c pkt_dev->nflows++; pkt_dev 2457 net/core/pktgen.c if (!ipv6_addr_any(&pkt_dev->min_in6_daddr)) { pkt_dev 2463 net/core/pktgen.c pkt_dev->cur_in6_daddr.s6_addr32[i] = pkt_dev 2465 net/core/pktgen.c pkt_dev->min_in6_daddr.s6_addr32[i]) & pkt_dev 2466 net/core/pktgen.c pkt_dev->max_in6_daddr.s6_addr32[i]); pkt_dev 2471 net/core/pktgen.c if (pkt_dev->min_pkt_size < pkt_dev->max_pkt_size) { pkt_dev 2473 net/core/pktgen.c if (pkt_dev->flags & F_TXSIZE_RND) { pkt_dev 2475 net/core/pktgen.c (pkt_dev->max_pkt_size - pkt_dev->min_pkt_size) pkt_dev 2476 net/core/pktgen.c + pkt_dev->min_pkt_size; pkt_dev 2478 net/core/pktgen.c t = pkt_dev->cur_pkt_size + 1; pkt_dev 2479 net/core/pktgen.c if (t > pkt_dev->max_pkt_size) pkt_dev 2480 net/core/pktgen.c t = pkt_dev->min_pkt_size; pkt_dev 2482 net/core/pktgen.c pkt_dev->cur_pkt_size = t; pkt_dev 2485 net/core/pktgen.c set_cur_queue_map(pkt_dev); pkt_dev 2487 net/core/pktgen.c pkt_dev->flows[flow].count++; pkt_dev 2497 net/core/pktgen.c static int pktgen_output_ipsec(struct sk_buff *skb, struct pktgen_dev *pkt_dev) pkt_dev 2499 net/core/pktgen.c struct xfrm_state *x = pkt_dev->flows[pkt_dev->curfl].x; pkt_dev 2501 net/core/pktgen.c struct net *net = dev_net(pkt_dev->odev); pkt_dev 2507 net/core/pktgen.c if ((x->props.mode != XFRM_MODE_TRANSPORT) && (pkt_dev->spi == 0)) pkt_dev 2513 net/core/pktgen.c if ((x->props.mode == XFRM_MODE_TUNNEL) && (pkt_dev->spi != 0)) pkt_dev 2514 net/core/pktgen.c skb->_skb_refdst = (unsigned long)&pkt_dev->xdst.u.dst | SKB_DST_NOREF; pkt_dev 2536 net/core/pktgen.c static void free_SAs(struct pktgen_dev *pkt_dev) pkt_dev 2538 net/core/pktgen.c if (pkt_dev->cflows) { pkt_dev 2541 net/core/pktgen.c for (i = 0; i < pkt_dev->cflows; i++) { pkt_dev 2542 net/core/pktgen.c struct xfrm_state *x = pkt_dev->flows[i].x; pkt_dev 2545 net/core/pktgen.c pkt_dev->flows[i].x = NULL; pkt_dev 2551 net/core/pktgen.c static int process_ipsec(struct pktgen_dev *pkt_dev, pkt_dev 2554 net/core/pktgen.c if (pkt_dev->flags & F_IPSEC) { pkt_dev 2555 net/core/pktgen.c struct xfrm_state *x = pkt_dev->flows[pkt_dev->curfl].x; pkt_dev 2574 net/core/pktgen.c ret = pktgen_output_ipsec(skb, pkt_dev); pkt_dev 2581 net/core/pktgen.c memcpy(eth, pkt_dev->hh, 2 * ETH_ALEN); pkt_dev 2597 net/core/pktgen.c static void mpls_push(__be32 *mpls, struct pktgen_dev *pkt_dev) pkt_dev 2600 net/core/pktgen.c for (i = 0; i < pkt_dev->nr_labels; i++) pkt_dev 2601 net/core/pktgen.c *mpls++ = pkt_dev->labels[i] & ~MPLS_STACK_BOTTOM; pkt_dev 2613 net/core/pktgen.c static void pktgen_finalize_skb(struct pktgen_dev *pkt_dev, struct sk_buff *skb, pkt_dev 2622 net/core/pktgen.c if (pkt_dev->nfrags <= 0) { pkt_dev 2625 net/core/pktgen.c int frags = pkt_dev->nfrags; pkt_dev 2642 net/core/pktgen.c if (unlikely(!pkt_dev->page)) { pkt_dev 2645 net/core/pktgen.c if (pkt_dev->node >= 0 && (pkt_dev->flags & F_NODE)) pkt_dev 2646 net/core/pktgen.c node = pkt_dev->node; pkt_dev 2647 net/core/pktgen.c pkt_dev->page = alloc_pages_node(node, GFP_KERNEL | __GFP_ZERO, 0); pkt_dev 2648 net/core/pktgen.c if (!pkt_dev->page) pkt_dev 2651 net/core/pktgen.c get_page(pkt_dev->page); pkt_dev 2652 net/core/pktgen.c skb_frag_set_page(skb, i, pkt_dev->page); pkt_dev 2672 net/core/pktgen.c pgh->seq_num = htonl(pkt_dev->seq_num); pkt_dev 2674 net/core/pktgen.c if (pkt_dev->flags & F_NO_TIMESTAMP) { pkt_dev 2693 net/core/pktgen.c struct pktgen_dev *pkt_dev) pkt_dev 2699 net/core/pktgen.c size = pkt_dev->cur_pkt_size + 64 + extralen + pkt_dev->pkt_overhead; pkt_dev 2700 net/core/pktgen.c if (pkt_dev->flags & F_NODE) { pkt_dev 2701 net/core/pktgen.c int node = pkt_dev->node >= 0 ? pkt_dev->node : numa_node_id(); pkt_dev 2720 net/core/pktgen.c struct pktgen_dev *pkt_dev) pkt_dev 2735 net/core/pktgen.c if (pkt_dev->nr_labels) pkt_dev 2738 net/core/pktgen.c if (pkt_dev->vlan_id != 0xffff) pkt_dev 2744 net/core/pktgen.c mod_cur_headers(pkt_dev); pkt_dev 2745 net/core/pktgen.c queue_map = pkt_dev->cur_queue_map; pkt_dev 2747 net/core/pktgen.c skb = pktgen_alloc_skb(odev, pkt_dev); pkt_dev 2749 net/core/pktgen.c sprintf(pkt_dev->result, "No memory"); pkt_dev 2758 net/core/pktgen.c mpls = skb_put(skb, pkt_dev->nr_labels * sizeof(__u32)); pkt_dev 2759 net/core/pktgen.c if (pkt_dev->nr_labels) pkt_dev 2760 net/core/pktgen.c mpls_push(mpls, pkt_dev); pkt_dev 2762 net/core/pktgen.c if (pkt_dev->vlan_id != 0xffff) { pkt_dev 2763 net/core/pktgen.c if (pkt_dev->svlan_id != 0xffff) { pkt_dev 2765 net/core/pktgen.c *svlan_tci = build_tci(pkt_dev->svlan_id, pkt_dev 2766 net/core/pktgen.c pkt_dev->svlan_cfi, pkt_dev 2767 net/core/pktgen.c pkt_dev->svlan_p); pkt_dev 2773 net/core/pktgen.c *vlan_tci = build_tci(pkt_dev->vlan_id, pkt_dev 2774 net/core/pktgen.c pkt_dev->vlan_cfi, pkt_dev 2775 net/core/pktgen.c pkt_dev->vlan_p); pkt_dev 2787 net/core/pktgen.c skb->priority = pkt_dev->skb_priority; pkt_dev 2789 net/core/pktgen.c memcpy(eth, pkt_dev->hh, 12); pkt_dev 2793 net/core/pktgen.c datalen = pkt_dev->cur_pkt_size - 14 - 20 - 8 - pkt_dev 2794 net/core/pktgen.c pkt_dev->pkt_overhead; pkt_dev 2798 net/core/pktgen.c udph->source = htons(pkt_dev->cur_udp_src); pkt_dev 2799 net/core/pktgen.c udph->dest = htons(pkt_dev->cur_udp_dst); pkt_dev 2806 net/core/pktgen.c iph->tos = pkt_dev->tos; pkt_dev 2808 net/core/pktgen.c iph->saddr = pkt_dev->cur_saddr; pkt_dev 2809 net/core/pktgen.c iph->daddr = pkt_dev->cur_daddr; pkt_dev 2810 net/core/pktgen.c iph->id = htons(pkt_dev->ip_id); pkt_dev 2811 net/core/pktgen.c pkt_dev->ip_id++; pkt_dev 2820 net/core/pktgen.c pktgen_finalize_skb(pkt_dev, skb, datalen); pkt_dev 2822 net/core/pktgen.c if (!(pkt_dev->flags & F_UDPCSUM)) { pkt_dev 2840 net/core/pktgen.c if (!process_ipsec(pkt_dev, skb, protocol)) pkt_dev 2848 net/core/pktgen.c struct pktgen_dev *pkt_dev) pkt_dev 2863 net/core/pktgen.c if (pkt_dev->nr_labels) pkt_dev 2866 net/core/pktgen.c if (pkt_dev->vlan_id != 0xffff) pkt_dev 2872 net/core/pktgen.c mod_cur_headers(pkt_dev); pkt_dev 2873 net/core/pktgen.c queue_map = pkt_dev->cur_queue_map; pkt_dev 2875 net/core/pktgen.c skb = pktgen_alloc_skb(odev, pkt_dev); pkt_dev 2877 net/core/pktgen.c sprintf(pkt_dev->result, "No memory"); pkt_dev 2886 net/core/pktgen.c mpls = skb_put(skb, pkt_dev->nr_labels * sizeof(__u32)); pkt_dev 2887 net/core/pktgen.c if (pkt_dev->nr_labels) pkt_dev 2888 net/core/pktgen.c mpls_push(mpls, pkt_dev); pkt_dev 2890 net/core/pktgen.c if (pkt_dev->vlan_id != 0xffff) { pkt_dev 2891 net/core/pktgen.c if (pkt_dev->svlan_id != 0xffff) { pkt_dev 2893 net/core/pktgen.c *svlan_tci = build_tci(pkt_dev->svlan_id, pkt_dev 2894 net/core/pktgen.c pkt_dev->svlan_cfi, pkt_dev 2895 net/core/pktgen.c pkt_dev->svlan_p); pkt_dev 2901 net/core/pktgen.c *vlan_tci = build_tci(pkt_dev->vlan_id, pkt_dev 2902 net/core/pktgen.c pkt_dev->vlan_cfi, pkt_dev 2903 net/core/pktgen.c pkt_dev->vlan_p); pkt_dev 2915 net/core/pktgen.c skb->priority = pkt_dev->skb_priority; pkt_dev 2917 net/core/pktgen.c memcpy(eth, pkt_dev->hh, 12); pkt_dev 2921 net/core/pktgen.c datalen = pkt_dev->cur_pkt_size - 14 - pkt_dev 2923 net/core/pktgen.c pkt_dev->pkt_overhead; pkt_dev 2931 net/core/pktgen.c udph->source = htons(pkt_dev->cur_udp_src); pkt_dev 2932 net/core/pktgen.c udph->dest = htons(pkt_dev->cur_udp_dst); pkt_dev 2938 net/core/pktgen.c if (pkt_dev->traffic_class) { pkt_dev 2940 net/core/pktgen.c *(__be32 *)iph |= htonl(0x60000000 | (pkt_dev->traffic_class << 20)); pkt_dev 2948 net/core/pktgen.c iph->daddr = pkt_dev->cur_in6_daddr; pkt_dev 2949 net/core/pktgen.c iph->saddr = pkt_dev->cur_in6_saddr; pkt_dev 2955 net/core/pktgen.c pktgen_finalize_skb(pkt_dev, skb, datalen); pkt_dev 2957 net/core/pktgen.c if (!(pkt_dev->flags & F_UDPCSUM)) { pkt_dev 2978 net/core/pktgen.c struct pktgen_dev *pkt_dev) pkt_dev 2980 net/core/pktgen.c if (pkt_dev->flags & F_IPV6) pkt_dev 2981 net/core/pktgen.c return fill_packet_ipv6(odev, pkt_dev); pkt_dev 2983 net/core/pktgen.c return fill_packet_ipv4(odev, pkt_dev); pkt_dev 2986 net/core/pktgen.c static void pktgen_clear_counters(struct pktgen_dev *pkt_dev) pkt_dev 2988 net/core/pktgen.c pkt_dev->seq_num = 1; pkt_dev 2989 net/core/pktgen.c pkt_dev->idle_acc = 0; pkt_dev 2990 net/core/pktgen.c pkt_dev->sofar = 0; pkt_dev 2991 net/core/pktgen.c pkt_dev->tx_bytes = 0; pkt_dev 2992 net/core/pktgen.c pkt_dev->errors = 0; pkt_dev 2999 net/core/pktgen.c struct pktgen_dev *pkt_dev; pkt_dev 3005 net/core/pktgen.c list_for_each_entry_rcu(pkt_dev, &t->if_list, list) { pkt_dev 3010 net/core/pktgen.c pktgen_setup_inject(pkt_dev); pkt_dev 3012 net/core/pktgen.c if (pkt_dev->odev) { pkt_dev 3013 net/core/pktgen.c pktgen_clear_counters(pkt_dev); pkt_dev 3014 net/core/pktgen.c pkt_dev->skb = NULL; pkt_dev 3015 net/core/pktgen.c pkt_dev->started_at = pkt_dev->next_tx = ktime_get(); pkt_dev 3017 net/core/pktgen.c set_pkt_overhead(pkt_dev); pkt_dev 3019 net/core/pktgen.c strcpy(pkt_dev->result, "Starting"); pkt_dev 3020 net/core/pktgen.c pkt_dev->running = 1; /* Cranke yeself! */ pkt_dev 3023 net/core/pktgen.c strcpy(pkt_dev->result, "Error starting"); pkt_dev 3046 net/core/pktgen.c const struct pktgen_dev *pkt_dev; pkt_dev 3049 net/core/pktgen.c list_for_each_entry_rcu(pkt_dev, &t->if_list, list) pkt_dev 3050 net/core/pktgen.c if (pkt_dev->running) { pkt_dev 3142 net/core/pktgen.c static void show_results(struct pktgen_dev *pkt_dev, int nr_frags) pkt_dev 3145 net/core/pktgen.c char *p = pkt_dev->result; pkt_dev 3146 net/core/pktgen.c ktime_t elapsed = ktime_sub(pkt_dev->stopped_at, pkt_dev 3147 net/core/pktgen.c pkt_dev->started_at); pkt_dev 3148 net/core/pktgen.c ktime_t idle = ns_to_ktime(pkt_dev->idle_acc); pkt_dev 3154 net/core/pktgen.c (unsigned long long)pkt_dev->sofar, pkt_dev 3155 net/core/pktgen.c pkt_dev->cur_pkt_size, nr_frags); pkt_dev 3157 net/core/pktgen.c pps = div64_u64(pkt_dev->sofar * NSEC_PER_SEC, pkt_dev 3160 net/core/pktgen.c bps = pps * 8 * pkt_dev->cur_pkt_size; pkt_dev 3168 net/core/pktgen.c (unsigned long long)pkt_dev->errors); pkt_dev 3172 net/core/pktgen.c static int pktgen_stop_device(struct pktgen_dev *pkt_dev) pkt_dev 3174 net/core/pktgen.c int nr_frags = pkt_dev->skb ? skb_shinfo(pkt_dev->skb)->nr_frags : -1; pkt_dev 3176 net/core/pktgen.c if (!pkt_dev->running) { pkt_dev 3178 net/core/pktgen.c pkt_dev->odevname); pkt_dev 3182 net/core/pktgen.c pkt_dev->running = 0; pkt_dev 3183 net/core/pktgen.c kfree_skb(pkt_dev->skb); pkt_dev 3184 net/core/pktgen.c pkt_dev->skb = NULL; pkt_dev 3185 net/core/pktgen.c pkt_dev->stopped_at = ktime_get(); pkt_dev 3187 net/core/pktgen.c show_results(pkt_dev, nr_frags); pkt_dev 3194 net/core/pktgen.c struct pktgen_dev *pkt_dev, *best = NULL; pkt_dev 3197 net/core/pktgen.c list_for_each_entry_rcu(pkt_dev, &t->if_list, list) { pkt_dev 3198 net/core/pktgen.c if (!pkt_dev->running) pkt_dev 3201 net/core/pktgen.c best = pkt_dev; pkt_dev 3202 net/core/pktgen.c else if (ktime_compare(pkt_dev->next_tx, best->next_tx) < 0) pkt_dev 3203 net/core/pktgen.c best = pkt_dev; pkt_dev 3212 net/core/pktgen.c struct pktgen_dev *pkt_dev; pkt_dev 3218 net/core/pktgen.c list_for_each_entry_rcu(pkt_dev, &t->if_list, list) { pkt_dev 3219 net/core/pktgen.c pktgen_stop_device(pkt_dev); pkt_dev 3276 net/core/pktgen.c static void pktgen_resched(struct pktgen_dev *pkt_dev) pkt_dev 3280 net/core/pktgen.c pkt_dev->idle_acc += ktime_to_ns(ktime_sub(ktime_get(), idle_start)); pkt_dev 3283 net/core/pktgen.c static void pktgen_wait_for_skb(struct pktgen_dev *pkt_dev) pkt_dev 3287 net/core/pktgen.c while (refcount_read(&(pkt_dev->skb->users)) != 1) { pkt_dev 3292 net/core/pktgen.c pktgen_resched(pkt_dev); pkt_dev 3296 net/core/pktgen.c pkt_dev->idle_acc += ktime_to_ns(ktime_sub(ktime_get(), idle_start)); pkt_dev 3299 net/core/pktgen.c static void pktgen_xmit(struct pktgen_dev *pkt_dev) pkt_dev 3301 net/core/pktgen.c unsigned int burst = READ_ONCE(pkt_dev->burst); pkt_dev 3302 net/core/pktgen.c struct net_device *odev = pkt_dev->odev; pkt_dev 3309 net/core/pktgen.c pktgen_stop_device(pkt_dev); pkt_dev 3316 net/core/pktgen.c if (unlikely(pkt_dev->delay == ULLONG_MAX)) { pkt_dev 3317 net/core/pktgen.c pkt_dev->next_tx = ktime_add_ns(ktime_get(), ULONG_MAX); pkt_dev 3322 net/core/pktgen.c if (!pkt_dev->skb || (pkt_dev->last_ok && pkt_dev 3323 net/core/pktgen.c ++pkt_dev->clone_count >= pkt_dev->clone_skb)) { pkt_dev 3325 net/core/pktgen.c kfree_skb(pkt_dev->skb); pkt_dev 3327 net/core/pktgen.c pkt_dev->skb = fill_packet(odev, pkt_dev); pkt_dev 3328 net/core/pktgen.c if (pkt_dev->skb == NULL) { pkt_dev 3331 net/core/pktgen.c pkt_dev->clone_count--; /* back out increment, OOM */ pkt_dev 3334 net/core/pktgen.c pkt_dev->last_pkt_size = pkt_dev->skb->len; pkt_dev 3335 net/core/pktgen.c pkt_dev->clone_count = 0; /* reset counter */ pkt_dev 3338 net/core/pktgen.c if (pkt_dev->delay && pkt_dev->last_ok) pkt_dev 3339 net/core/pktgen.c spin(pkt_dev, pkt_dev->next_tx); pkt_dev 3341 net/core/pktgen.c if (pkt_dev->xmit_mode == M_NETIF_RECEIVE) { pkt_dev 3342 net/core/pktgen.c skb = pkt_dev->skb; pkt_dev 3349 net/core/pktgen.c pkt_dev->errors++; pkt_dev 3350 net/core/pktgen.c pkt_dev->sofar++; pkt_dev 3351 net/core/pktgen.c pkt_dev->seq_num++; pkt_dev 3368 net/core/pktgen.c } else if (pkt_dev->xmit_mode == M_QUEUE_XMIT) { pkt_dev 3370 net/core/pktgen.c refcount_inc(&pkt_dev->skb->users); pkt_dev 3372 net/core/pktgen.c ret = dev_queue_xmit(pkt_dev->skb); pkt_dev 3375 net/core/pktgen.c pkt_dev->sofar++; pkt_dev 3376 net/core/pktgen.c pkt_dev->seq_num++; pkt_dev 3377 net/core/pktgen.c pkt_dev->tx_bytes += pkt_dev->last_pkt_size; pkt_dev 3392 net/core/pktgen.c pkt_dev->errors++; pkt_dev 3394 net/core/pktgen.c pkt_dev->odevname, ret); pkt_dev 3400 net/core/pktgen.c txq = skb_get_tx_queue(odev, pkt_dev->skb); pkt_dev 3408 net/core/pktgen.c pkt_dev->last_ok = 0; pkt_dev 3411 net/core/pktgen.c refcount_add(burst, &pkt_dev->skb->users); pkt_dev 3414 net/core/pktgen.c ret = netdev_start_xmit(pkt_dev->skb, odev, txq, --burst > 0); pkt_dev 3418 net/core/pktgen.c pkt_dev->last_ok = 1; pkt_dev 3419 net/core/pktgen.c pkt_dev->sofar++; pkt_dev 3420 net/core/pktgen.c pkt_dev->seq_num++; pkt_dev 3421 net/core/pktgen.c pkt_dev->tx_bytes += pkt_dev->last_pkt_size; pkt_dev 3428 net/core/pktgen.c pkt_dev->errors++; pkt_dev 3432 net/core/pktgen.c pkt_dev->odevname, ret); pkt_dev 3433 net/core/pktgen.c pkt_dev->errors++; pkt_dev 3437 net/core/pktgen.c refcount_dec(&(pkt_dev->skb->users)); pkt_dev 3438 net/core/pktgen.c pkt_dev->last_ok = 0; pkt_dev 3441 net/core/pktgen.c WARN_ON(refcount_sub_and_test(burst, &pkt_dev->skb->users)); pkt_dev 3449 net/core/pktgen.c if ((pkt_dev->count != 0) && (pkt_dev->sofar >= pkt_dev->count)) { pkt_dev 3450 net/core/pktgen.c pktgen_wait_for_skb(pkt_dev); pkt_dev 3453 net/core/pktgen.c pktgen_stop_device(pkt_dev); pkt_dev 3465 net/core/pktgen.c struct pktgen_dev *pkt_dev = NULL; pkt_dev 3478 net/core/pktgen.c pkt_dev = next_to_run(t); pkt_dev 3480 net/core/pktgen.c if (unlikely(!pkt_dev && t->control == 0)) { pkt_dev 3490 net/core/pktgen.c if (likely(pkt_dev)) { pkt_dev 3491 net/core/pktgen.c pktgen_xmit(pkt_dev); pkt_dev 3494 net/core/pktgen.c pktgen_resched(pkt_dev); pkt_dev 3537 net/core/pktgen.c struct pktgen_dev *p, *pkt_dev = NULL; pkt_dev 3547 net/core/pktgen.c pkt_dev = p; pkt_dev 3552 net/core/pktgen.c pr_debug("find_dev(%s) returning %p\n", ifname, pkt_dev); pkt_dev 3553 net/core/pktgen.c return pkt_dev; pkt_dev 3561 net/core/pktgen.c struct pktgen_dev *pkt_dev) pkt_dev 3573 net/core/pktgen.c if (pkt_dev->pg_thread) { pkt_dev 3579 net/core/pktgen.c pkt_dev->running = 0; pkt_dev 3580 net/core/pktgen.c pkt_dev->pg_thread = t; pkt_dev 3581 net/core/pktgen.c list_add_rcu(&pkt_dev->list, &t->if_list); pkt_dev 3592 net/core/pktgen.c struct pktgen_dev *pkt_dev; pkt_dev 3598 net/core/pktgen.c pkt_dev = __pktgen_NN_threads(t->net, ifname, FIND); pkt_dev 3599 net/core/pktgen.c if (pkt_dev) { pkt_dev 3604 net/core/pktgen.c pkt_dev = kzalloc_node(sizeof(struct pktgen_dev), GFP_KERNEL, node); pkt_dev 3605 net/core/pktgen.c if (!pkt_dev) pkt_dev 3608 net/core/pktgen.c strcpy(pkt_dev->odevname, ifname); pkt_dev 3609 net/core/pktgen.c pkt_dev->flows = vzalloc_node(array_size(MAX_CFLOWS, pkt_dev 3612 net/core/pktgen.c if (pkt_dev->flows == NULL) { pkt_dev 3613 net/core/pktgen.c kfree(pkt_dev); pkt_dev 3617 net/core/pktgen.c pkt_dev->removal_mark = 0; pkt_dev 3618 net/core/pktgen.c pkt_dev->nfrags = 0; pkt_dev 3619 net/core/pktgen.c pkt_dev->delay = pg_delay_d; pkt_dev 3620 net/core/pktgen.c pkt_dev->count = pg_count_d; pkt_dev 3621 net/core/pktgen.c pkt_dev->sofar = 0; pkt_dev 3622 net/core/pktgen.c pkt_dev->udp_src_min = 9; /* sink port */ pkt_dev 3623 net/core/pktgen.c pkt_dev->udp_src_max = 9; pkt_dev 3624 net/core/pktgen.c pkt_dev->udp_dst_min = 9; pkt_dev 3625 net/core/pktgen.c pkt_dev->udp_dst_max = 9; pkt_dev 3626 net/core/pktgen.c pkt_dev->vlan_p = 0; pkt_dev 3627 net/core/pktgen.c pkt_dev->vlan_cfi = 0; pkt_dev 3628 net/core/pktgen.c pkt_dev->vlan_id = 0xffff; pkt_dev 3629 net/core/pktgen.c pkt_dev->svlan_p = 0; pkt_dev 3630 net/core/pktgen.c pkt_dev->svlan_cfi = 0; pkt_dev 3631 net/core/pktgen.c pkt_dev->svlan_id = 0xffff; pkt_dev 3632 net/core/pktgen.c pkt_dev->burst = 1; pkt_dev 3633 net/core/pktgen.c pkt_dev->node = NUMA_NO_NODE; pkt_dev 3635 net/core/pktgen.c err = pktgen_setup_dev(t->net, pkt_dev, ifname); pkt_dev 3638 net/core/pktgen.c if (pkt_dev->odev->priv_flags & IFF_TX_SKB_SHARING) pkt_dev 3639 net/core/pktgen.c pkt_dev->clone_skb = pg_clone_skb_d; pkt_dev 3641 net/core/pktgen.c pkt_dev->entry = proc_create_data(ifname, 0600, t->net->proc_dir, pkt_dev 3642 net/core/pktgen.c &pktgen_if_fops, pkt_dev); pkt_dev 3643 net/core/pktgen.c if (!pkt_dev->entry) { pkt_dev 3650 net/core/pktgen.c pkt_dev->ipsmode = XFRM_MODE_TRANSPORT; pkt_dev 3651 net/core/pktgen.c pkt_dev->ipsproto = IPPROTO_ESP; pkt_dev 3658 net/core/pktgen.c pkt_dev->dstops.family = AF_INET; pkt_dev 3659 net/core/pktgen.c pkt_dev->xdst.u.dst.dev = pkt_dev->odev; pkt_dev 3660 net/core/pktgen.c dst_init_metrics(&pkt_dev->xdst.u.dst, pktgen_dst_metrics, false); pkt_dev 3661 net/core/pktgen.c pkt_dev->xdst.child = &pkt_dev->xdst.u.dst; pkt_dev 3662 net/core/pktgen.c pkt_dev->xdst.u.dst.ops = &pkt_dev->dstops; pkt_dev 3665 net/core/pktgen.c return add_dev_to_thread(t, pkt_dev); pkt_dev 3667 net/core/pktgen.c dev_put(pkt_dev->odev); pkt_dev 3670 net/core/pktgen.c free_SAs(pkt_dev); pkt_dev 3672 net/core/pktgen.c vfree(pkt_dev->flows); pkt_dev 3673 net/core/pktgen.c kfree(pkt_dev); pkt_dev 3734 net/core/pktgen.c struct pktgen_dev *pkt_dev) pkt_dev 3742 net/core/pktgen.c if (p == pkt_dev) pkt_dev 3749 net/core/pktgen.c struct pktgen_dev *pkt_dev) pkt_dev 3751 net/core/pktgen.c pr_debug("remove_device pkt_dev=%p\n", pkt_dev); pkt_dev 3753 net/core/pktgen.c if (pkt_dev->running) { pkt_dev 3755 net/core/pktgen.c pktgen_stop_device(pkt_dev); pkt_dev 3760 net/core/pktgen.c if (pkt_dev->odev) { pkt_dev 3761 net/core/pktgen.c dev_put(pkt_dev->odev); pkt_dev 3762 net/core/pktgen.c pkt_dev->odev = NULL; pkt_dev 3768 net/core/pktgen.c proc_remove(pkt_dev->entry); pkt_dev 3771 net/core/pktgen.c _rem_dev_from_if_list(t, pkt_dev); pkt_dev 3774 net/core/pktgen.c free_SAs(pkt_dev); pkt_dev 3776 net/core/pktgen.c vfree(pkt_dev->flows); pkt_dev 3777 net/core/pktgen.c if (pkt_dev->page) pkt_dev 3778 net/core/pktgen.c put_page(pkt_dev->page); pkt_dev 3779 net/core/pktgen.c kfree_rcu(pkt_dev, rcu);