networkd: tap add support for vnet_hdr

This patch adds support to configure IFF_VNET_HDR flag
for a tap device. It allows whether sending and receiving
large pass larger (GSO) packets. This greatly increases the
achievable throughput.
This commit is contained in:
Susant Sahani
2015-07-14 13:55:52 +05:30
committed by Susant Sahani
parent ff89f8b917
commit f5f07dbf06
3 changed files with 5 additions and 0 deletions

View File

@@ -59,6 +59,7 @@ Tun.Group, config_parse_string, 0,
Tap.OneQueue, config_parse_bool, 0, offsetof(TunTap, one_queue)
Tap.MultiQueue, config_parse_bool, 0, offsetof(TunTap, multi_queue)
Tap.PacketInfo, config_parse_bool, 0, offsetof(TunTap, packet_info)
Tap.VnetHeader, config_parse_bool, 0, offsetof(TunTap, vnet_hdr)
Tap.User, config_parse_string, 0, offsetof(TunTap, user_name)
Tap.Group, config_parse_string, 0, offsetof(TunTap, group_name)
Bond.Mode, config_parse_bond_mode, 0, offsetof(Bond, mode)

View File

@@ -51,6 +51,9 @@ static int netdev_fill_tuntap_message(NetDev *netdev, struct ifreq *ifr) {
if (t->multi_queue)
ifr->ifr_flags |= IFF_MULTI_QUEUE;
if (t->vnet_hdr)
ifr->ifr_flags |= IFF_VNET_HDR;
strncpy(ifr->ifr_name, netdev->ifname, IFNAMSIZ-1);
return 0;

View File

@@ -33,6 +33,7 @@ struct TunTap {
bool one_queue;
bool multi_queue;
bool packet_info;
bool vnet_hdr;
};
extern const NetDevVTable tun_vtable;