aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/csource/generated.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/csource/generated.go')
-rw-r--r--pkg/csource/generated.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/pkg/csource/generated.go b/pkg/csource/generated.go
index c3b8bf027..944e1ae3d 100644
--- a/pkg/csource/generated.go
+++ b/pkg/csource/generated.go
@@ -1353,6 +1353,23 @@ static void netlink_add_macvlan(struct nlmsg* nlmsg, int sock, const char* name,
(void)err;
}
+static void netlink_add_geneve(struct nlmsg* nlmsg, int sock, const char* name, uint32 vni, struct in_addr* addr4, struct in6_addr* addr6)
+{
+ netlink_add_device_impl(nlmsg, "geneve", name);
+ netlink_nest(nlmsg, IFLA_INFO_DATA);
+ netlink_attr(nlmsg, IFLA_GENEVE_ID, &vni, sizeof(vni));
+ if (addr4)
+ netlink_attr(nlmsg, IFLA_GENEVE_REMOTE, addr4, sizeof(*addr4));
+ if (addr6)
+ netlink_attr(nlmsg, IFLA_GENEVE_REMOTE6, addr6, sizeof(*addr6));
+ netlink_done(nlmsg);
+ netlink_done(nlmsg);
+ int err = netlink_send(nlmsg, sock);
+ debug("netlink: add %s type geneve vni %u: %s\n",
+ name, vni, strerror(err));
+ (void)err;
+}
+
#define IFLA_IPVLAN_FLAGS 2
#define IPVLAN_MODE_L3S 2
#undef IPVLAN_F_VEPA
@@ -1836,6 +1853,8 @@ static void initialize_netdevices(void)
{"veth1_to_batadv", ETH_ALEN},
{"batadv_slave_0", ETH_ALEN},
{"batadv_slave_1", ETH_ALEN},
+ {"geneve0", ETH_ALEN},
+ {"geneve1", ETH_ALEN},
};
int sock = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
if (sock == -1)
@@ -1878,6 +1897,17 @@ static void initialize_netdevices(void)
netlink_add_linked(&nlmsg, sock, "macvtap", "macvtap0", "veth0_macvtap");
netlink_add_linked(&nlmsg, sock, "macsec", "macsec0", "veth1_macvtap");
+ char addr[32];
+ sprintf(addr, DEV_IPV4, 14 + 10);
+ struct in_addr geneve_addr4;
+ if (inet_pton(AF_INET, addr, &geneve_addr4) <= 0)
+ fail("geneve0 inet_pton failed");
+ struct in6_addr geneve_addr6;
+ if (inet_pton(AF_INET6, "fc00::01", &geneve_addr6) <= 0)
+ fail("geneve1 inet_pton failed");
+ netlink_add_geneve(&nlmsg, sock, "geneve0", 0, &geneve_addr4, 0);
+ netlink_add_geneve(&nlmsg, sock, "geneve1", 1, 0, &geneve_addr6);
+
netdevsim_add((int)procid, 4);
for (i = 0; i < sizeof(devices) / (sizeof(devices[0])); i++) {