aboutsummaryrefslogtreecommitdiffstats
path: root/executor
diff options
context:
space:
mode:
Diffstat (limited to 'executor')
-rw-r--r--executor/common_linux.h67
-rw-r--r--executor/defs.h12
2 files changed, 70 insertions, 9 deletions
diff --git a/executor/common_linux.h b/executor/common_linux.h
index 21560886b..30abfd6c7 100644
--- a/executor/common_linux.h
+++ b/executor/common_linux.h
@@ -284,6 +284,54 @@ static void netlink_add_virt_wifi(struct nlmsg* nlmsg, int sock, const char* nam
name, link, strerror(err));
(void)err;
}
+
+static void netlink_add_vlan(struct nlmsg* nlmsg, int sock, const char* name, const char* link, uint16 id, uint16 proto)
+{
+ netlink_add_device_impl(nlmsg, "vlan", name);
+ netlink_nest(nlmsg, IFLA_INFO_DATA);
+ netlink_attr(nlmsg, IFLA_VLAN_ID, &id, sizeof(id));
+ netlink_attr(nlmsg, IFLA_VLAN_PROTOCOL, &proto, sizeof(proto));
+ netlink_done(nlmsg);
+ netlink_done(nlmsg);
+ int ifindex = if_nametoindex(link);
+ netlink_attr(nlmsg, IFLA_LINK, &ifindex, sizeof(ifindex));
+ int err = netlink_send(nlmsg, sock);
+ debug("netlink: add %s type vlan link %s id %d: %s\n",
+ name, link, id, strerror(err));
+ (void)err;
+}
+
+static void netlink_add_macvlan(struct nlmsg* nlmsg, int sock, const char* name, const char* link)
+{
+ netlink_add_device_impl(nlmsg, "macvlan", name);
+ netlink_nest(nlmsg, IFLA_INFO_DATA);
+ uint32 mode = MACVLAN_MODE_BRIDGE;
+ netlink_attr(nlmsg, IFLA_MACVLAN_MODE, &mode, sizeof(mode));
+ netlink_done(nlmsg);
+ netlink_done(nlmsg);
+ int ifindex = if_nametoindex(link);
+ netlink_attr(nlmsg, IFLA_LINK, &ifindex, sizeof(ifindex));
+ int err = netlink_send(nlmsg, sock);
+ debug("netlink: add %s type macvlan link %s mode %d: %s\n",
+ name, link, mode, strerror(err));
+ (void)err;
+}
+
+static void netlink_add_ipvlan(struct nlmsg* nlmsg, int sock, const char* name, const char* link, uint16 mode, uint16 flags)
+{
+ netlink_add_device_impl(nlmsg, "ipvlan", name);
+ netlink_nest(nlmsg, IFLA_INFO_DATA);
+ netlink_attr(nlmsg, IFLA_IPVLAN_MODE, &mode, sizeof(mode));
+ netlink_attr(nlmsg, IFLA_IPVLAN_FLAGS, &flags, sizeof(flags));
+ netlink_done(nlmsg);
+ netlink_done(nlmsg);
+ int ifindex = if_nametoindex(link);
+ netlink_attr(nlmsg, IFLA_LINK, &ifindex, sizeof(ifindex));
+ int err = netlink_send(nlmsg, sock);
+ debug("netlink: add %s type ipvlan link %s mode %d: %s\n",
+ name, link, mode, strerror(err));
+ (void)err;
+}
#endif
#if SYZ_EXECUTOR || SYZ_NET_DEVICES || SYZ_NET_INJECTION || SYZ_DEVLINK_PCI
@@ -684,10 +732,7 @@ static void initialize_netdevices(void)
return;
#endif
// TODO: add the following devices:
- // - vlan
// - vxlan
- // - macvlan
- // - ipvlan
// - macsec
// - ipip
// - lowpan
@@ -772,6 +817,14 @@ static void initialize_netdevices(void)
{"veth0_virt_wifi", ETH_ALEN},
{"veth1_virt_wifi", ETH_ALEN},
{"virt_wifi0", ETH_ALEN},
+ {"veth0_vlan", ETH_ALEN},
+ {"veth1_vlan", ETH_ALEN},
+ {"vlan0", ETH_ALEN},
+ {"vlan1", ETH_ALEN},
+ {"macvlan0", ETH_ALEN},
+ {"macvlan1", ETH_ALEN},
+ {"ipvlan0", ETH_ALEN},
+ {"ipvlan1", ETH_ALEN},
};
int sock = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
if (sock == -1)
@@ -810,6 +863,14 @@ static void initialize_netdevices(void)
netlink_add_veth(&nlmsg, sock, "veth0_virt_wifi", "veth1_virt_wifi");
netlink_add_virt_wifi(&nlmsg, sock, "virt_wifi0", "veth1_virt_wifi");
+ netlink_add_veth(&nlmsg, sock, "veth0_vlan", "veth1_vlan");
+ netlink_add_vlan(&nlmsg, sock, "vlan0", "veth0_vlan", 0, htons(ETH_P_8021Q));
+ netlink_add_vlan(&nlmsg, sock, "vlan1", "veth0_vlan", 1, htons(ETH_P_8021AD));
+ netlink_add_macvlan(&nlmsg, sock, "macvlan0", "veth1_vlan");
+ netlink_add_macvlan(&nlmsg, sock, "macvlan1", "veth1_vlan");
+ netlink_add_ipvlan(&nlmsg, sock, "ipvlan0", "veth0_vlan", IPVLAN_MODE_L2, 0);
+ netlink_add_ipvlan(&nlmsg, sock, "ipvlan1", "veth0_vlan", IPVLAN_MODE_L3S, IPVLAN_F_VEPA);
+
netdevsim_add((int)procid, 4); // Number of port is in sync with value in sys/linux/socket_netlink_generic_devlink.txt
for (i = 0; i < sizeof(devices) / (sizeof(devices[0])); i++) {
diff --git a/executor/defs.h b/executor/defs.h
index 60a045d9c..ba87cc772 100644
--- a/executor/defs.h
+++ b/executor/defs.h
@@ -70,7 +70,7 @@
#if GOARCH_386
#define GOARCH "386"
-#define SYZ_REVISION "4d2b73eb002f4c5491c727a7834d3e7a9096b9ed"
+#define SYZ_REVISION "4f9363ce72dcd1fe8bd5bff0030b4386c3541e9d"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -80,7 +80,7 @@
#if GOARCH_amd64
#define GOARCH "amd64"
-#define SYZ_REVISION "9993c6dd9acaaf05bbb41489db422dfcf1fad8b7"
+#define SYZ_REVISION "56640492f2e97e28ebf07ad3f747411f1109be70"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -90,7 +90,7 @@
#if GOARCH_arm
#define GOARCH "arm"
-#define SYZ_REVISION "06e1e4cac6e4b973223134604a09b24ef9062121"
+#define SYZ_REVISION "50c3858c23a97dbfe21bfa269e7f216961278c25"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -100,7 +100,7 @@
#if GOARCH_arm64
#define GOARCH "arm64"
-#define SYZ_REVISION "e42de32d95a2229db2cee28ba0143582e9897739"
+#define SYZ_REVISION "efd758e940b4ce23b67f5b53f315a4e9dbea4572"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -110,7 +110,7 @@
#if GOARCH_mips64le
#define GOARCH "mips64le"
-#define SYZ_REVISION "8c368e4bfc551bfbd80ead3309904221dbb80267"
+#define SYZ_REVISION "63ee941aae29de3d1444f8da5683f094387e9775"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -120,7 +120,7 @@
#if GOARCH_ppc64le
#define GOARCH "ppc64le"
-#define SYZ_REVISION "f694eade2e0b4fdc6cbcb93ce49fd2da09bd9b75"
+#define SYZ_REVISION "845fe68e33ae9fd611655bffcc6d732a0acf1eb0"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096