From: Susant Sahani Date: Tue, 14 Jul 2015 08:25:52 +0000 (+0530) Subject: networkd: tap add support for vnet_hdr X-Git-Tag: v226.4~1^2~210 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=ffd9a99e116775904762b688b2caabbc61e74c82 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. --- diff --git a/src/shared/virt.h b/src/shared/virt.h index 7194ab2bf..29f8bb0ea 100644 --- a/src/shared/virt.h +++ b/src/shared/virt.h @@ -1,11 +1,9 @@ /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ -#pragma once - /*** This file is part of systemd. - Copyright 2011 Lennart Poettering + Copyright 2014 Tom Gundersen systemd is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -21,15 +19,22 @@ along with systemd; If not, see . ***/ -int detect_vm(const char **id); -int detect_container(const char **id); +#pragma once + +typedef struct TunTap TunTap; + +#include "networkd-netdev.h" + +struct TunTap { + NetDev meta; -enum { - VIRTUALIZATION_NONE = 0, - VIRTUALIZATION_VM, - VIRTUALIZATION_CONTAINER, - _VIRTUALIZATION_MAX, - _VIRTUALIZATION_INVALID = -1 + char *user_name; + char *group_name; + bool one_queue; + bool multi_queue; + bool packet_info; + bool vnet_hdr; }; -int detect_virtualization(const char **id); +extern const NetDevVTable tun_vtable; +extern const NetDevVTable tap_vtable;