| 1469 | } |
| 1470 | |
| 1471 | static uint64_t |
| 1472 | virtio_to_ethdev_rss_offloads(uint64_t virtio_hash_types) |
| 1473 | { |
| 1474 | uint64_t rss_offloads = 0; |
| 1475 | |
| 1476 | if (virtio_hash_types & VIRTIO_NET_HASH_TYPE_IPV4) |
| 1477 | rss_offloads |= RTE_ETH_RSS_IPV4 | RTE_ETH_RSS_FRAG_IPV4 | |
| 1478 | RTE_ETH_RSS_NONFRAG_IPV4_OTHER; |
| 1479 | |
| 1480 | if (virtio_hash_types & VIRTIO_NET_HASH_TYPE_TCPV4) |
| 1481 | rss_offloads |= RTE_ETH_RSS_NONFRAG_IPV4_TCP; |
| 1482 | |
| 1483 | if (virtio_hash_types & VIRTIO_NET_HASH_TYPE_UDPV4) |
| 1484 | rss_offloads |= RTE_ETH_RSS_NONFRAG_IPV4_UDP; |
| 1485 | |
| 1486 | if (virtio_hash_types & VIRTIO_NET_HASH_TYPE_IPV6) |
| 1487 | rss_offloads |= RTE_ETH_RSS_IPV6 | RTE_ETH_RSS_FRAG_IPV6 | |
| 1488 | RTE_ETH_RSS_NONFRAG_IPV6_OTHER; |
| 1489 | |
| 1490 | if (virtio_hash_types & VIRTIO_NET_HASH_TYPE_TCPV6) |
| 1491 | rss_offloads |= RTE_ETH_RSS_NONFRAG_IPV6_TCP; |
| 1492 | |
| 1493 | if (virtio_hash_types & VIRTIO_NET_HASH_TYPE_UDPV6) |
| 1494 | rss_offloads |= RTE_ETH_RSS_NONFRAG_IPV6_UDP; |
| 1495 | |
| 1496 | if (virtio_hash_types & VIRTIO_NET_HASH_TYPE_IP_EX) |
| 1497 | rss_offloads |= RTE_ETH_RSS_IPV6_EX; |
| 1498 | |
| 1499 | if (virtio_hash_types & VIRTIO_NET_HASH_TYPE_TCP_EX) |
| 1500 | rss_offloads |= RTE_ETH_RSS_IPV6_TCP_EX; |
| 1501 | |
| 1502 | if (virtio_hash_types & VIRTIO_NET_HASH_TYPE_UDP_EX) |
| 1503 | rss_offloads |= RTE_ETH_RSS_IPV6_UDP_EX; |
| 1504 | |
| 1505 | return rss_offloads; |
| 1506 | } |
| 1507 | |
| 1508 | static int |
| 1509 | virtio_dev_get_rss_config(struct virtio_hw *hw, uint32_t *rss_hash_types) |
no outgoing calls
no test coverage detected