From: David L Stevens Date: Mon, 6 May 2013 12:11:46 +0000 (-0700) Subject: iproute2: support NTF_ROUTER flag in VXLAN fdb entries X-Git-Tag: v3.10.0~36 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5b8a1d4a03df76b077649e58522fbb4054769273;p=thirdparty%2Fiproute2.git iproute2: support NTF_ROUTER flag in VXLAN fdb entries This patch allows setting the "NTF_ROUTER" flag in VXLAN forwarding table entries to enable L3 switching for router destinations while still allowing L2 redirection appliances for non-router MAC destinations. Signed-Off-By: David L Stevens --- diff --git a/bridge/fdb.c b/bridge/fdb.c index bad511d47..6aa5d0a37 100644 --- a/bridge/fdb.c +++ b/bridge/fdb.c @@ -30,7 +30,7 @@ int filter_index; static void usage(void) { - fprintf(stderr, "Usage: bridge fdb { add | del } ADDR dev DEV {self|master} [ temp ]\n" + fprintf(stderr, "Usage: bridge fdb { add | del } ADDR dev DEV {self|master} [ temp ] [router]\n" " [ dst IPADDR] [ vlan VID ]\n" " [ port PORT] [ vni VNI ] [via DEV]\n"); fprintf(stderr, " bridge fdb {show} [ dev DEV ]\n"); @@ -143,6 +143,8 @@ int print_fdb(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) fprintf(fp, "self "); if (r->ndm_flags & NTF_MASTER) fprintf(fp, "master "); + if (r->ndm_flags & NTF_ROUTER) + fprintf(fp, "router "); fprintf(fp, "%s\n", state_n2a(r->ndm_state)); return 0; @@ -248,6 +250,8 @@ static int fdb_modify(int cmd, int flags, int argc, char **argv) req.ndm.ndm_flags |= NTF_SELF; } else if (matches(*argv, "master") == 0) { req.ndm.ndm_flags |= NTF_MASTER; + } else if (matches(*argv, "router") == 0) { + req.ndm.ndm_flags |= NTF_ROUTER; } else if (matches(*argv, "local") == 0|| matches(*argv, "permanent") == 0) { req.ndm.ndm_state |= NUD_PERMANENT;