chiark / gitweb /
networkd: tap add support for vnet_hdr
authorSusant Sahani <ssahani@gmail.com>
Tue, 14 Jul 2015 08:25:52 +0000 (13:55 +0530)
committerSven Eden <yamakuzure@gmx.net>
Tue, 14 Mar 2017 09:06:19 +0000 (10:06 +0100)
 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.

src/shared/virt.h

index 7194ab2bf781ac1e946c3987b22e482afb74caa8..29f8bb0ea5013a4de549c3861ae6ac9c43c033dc 100644 (file)
@@ -1,11 +1,9 @@
 /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
 
 /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
 
-#pragma once
-
 /***
   This file is part of systemd.
 
 /***
   This file is part of systemd.
 
-  Copyright 2011 Lennart Poettering
+  Copyright 2014 Tom Gundersen <teg@jklm.no>
 
   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
 
   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
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
-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;