diff options
| -rw-r--r-- | vswitchd/bridge.c | 20 | ||||
| -rw-r--r-- | vswitchd/ovs-vswitchd.8.in | 2 |
2 files changed, 22 insertions, 0 deletions
diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c index 48d02b383..6b7502bfe 100644 --- a/vswitchd/bridge.c +++ b/vswitchd/bridge.c @@ -2751,6 +2751,25 @@ bond_unixctl_disable_slave(struct unixctl_conn *conn, const char *args) } static void +bond_unixctl_hash(struct unixctl_conn *conn, const char *args) +{ + uint8_t mac[ETH_ADDR_LEN]; + uint8_t hash; + char *hash_cstr; + + if (sscanf(args, ETH_ADDR_SCAN_FMT, ETH_ADDR_SCAN_ARGS(mac)) + == ETH_ADDR_SCAN_COUNT) { + hash = bond_hash(mac); + + hash_cstr = xasprintf("%u", hash); + unixctl_command_reply(conn, 200, hash_cstr); + free(hash_cstr); + } else { + unixctl_command_reply(conn, 501, "invalid mac"); + } +} + +static void bond_init(void) { unixctl_command_register("bond/list", bond_unixctl_list); @@ -2760,6 +2779,7 @@ bond_init(void) bond_unixctl_set_active_slave); unixctl_command_register("bond/enable-slave", bond_unixctl_enable_slave); unixctl_command_register("bond/disable-slave", bond_unixctl_disable_slave); + unixctl_command_register("bond/hash", bond_unixctl_hash); } /* Port functions. */ diff --git a/vswitchd/ovs-vswitchd.8.in b/vswitchd/ovs-vswitchd.8.in index 788e22372..5c9a8c2ce 100644 --- a/vswitchd/ovs-vswitchd.8.in +++ b/vswitchd/ovs-vswitchd.8.in @@ -136,6 +136,8 @@ updelay (or downdelay). .IP This setting is not permanent: it persists only until the carrier status of \fIslave\fR changes. +.IP "\fBbond/hash\fR \fImac\fR" +Returns the hash value which would be used for \fImac\fR. . .so lib/vlog-unixctl.man .SH "SEE ALSO" |
