Introduce to configure bearer to indicate it does support
broadcast whether or not.

Usage:
- Enable broadcast for bearer:
$tipc bearer set broadcast 1 media eth dev <device>

- Disable broadcast for bearer:
$tipc bearer set broadcast 0 media eth dev <device>

Signed-off-by: Hoang Le <[email protected]>
---
 include/uapi/linux/tipc_netlink.h |  1 +
 tipc/bearer.c                     | 11 +++++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/include/uapi/linux/tipc_netlink.h 
b/include/uapi/linux/tipc_netlink.h
index 0ebe02ef1a86..92ecf3cd4013 100644
--- a/include/uapi/linux/tipc_netlink.h
+++ b/include/uapi/linux/tipc_netlink.h
@@ -281,6 +281,7 @@ enum {
        TIPC_NLA_PROP_TOL,              /* u32 */
        TIPC_NLA_PROP_WIN,              /* u32 */
        TIPC_NLA_PROP_MTU,              /* u32 */
+       TIPC_NLA_PROP_BCAST,            /* u32 */
 
        __TIPC_NLA_PROP_MAX,
        TIPC_NLA_PROP_MAX = __TIPC_NLA_PROP_MAX - 1
diff --git a/tipc/bearer.c b/tipc/bearer.c
index 05dc84aa8ded..8433e3dfb9cb 100644
--- a/tipc/bearer.c
+++ b/tipc/bearer.c
@@ -43,7 +43,8 @@ static void _print_bearer_opts(void)
                " priority              - Bearer link priority\n"
                " tolerance             - Bearer link tolerance\n"
                " window                - Bearer link window\n"
-               " mtu                   - Bearer link mtu\n");
+               " mtu                   - Bearer link mtu\n"
+               " broadcast             - Bearer link broadcast\n");
 }
 
 void print_bearer_media(void)
@@ -570,6 +571,8 @@ static int cmd_bearer_set_prop(struct nlmsghdr *nlh, const 
struct cmd *cmd,
                prop = TIPC_NLA_PROP_WIN;
        else if ((strcmp(cmd->cmd, "mtu") == 0))
                prop = TIPC_NLA_PROP_MTU;
+       else if ((strcmp(cmd->cmd, "broadcast") == 0))
+               prop = TIPC_NLA_PROP_BCAST;
        else
                return -EINVAL;
 
@@ -620,6 +623,7 @@ static int cmd_bearer_set(struct nlmsghdr *nlh, const 
struct cmd *cmd,
                { "tolerance",  cmd_bearer_set_prop,    cmd_bearer_set_help },
                { "window",     cmd_bearer_set_prop,    cmd_bearer_set_help },
                { "mtu",        cmd_bearer_set_prop,    cmd_bearer_set_help },
+               { "broadcast",  cmd_bearer_set_prop,    cmd_bearer_set_help },
                { NULL }
        };
 
@@ -902,6 +906,8 @@ static int cmd_bearer_get_prop(struct nlmsghdr *nlh, const 
struct cmd *cmd,
                prop = TIPC_NLA_PROP_WIN;
        else if ((strcmp(cmd->cmd, "mtu") == 0))
                prop = TIPC_NLA_PROP_MTU;
+       else if ((strcmp(cmd->cmd, "broadcast") == 0))
+               prop = TIPC_NLA_PROP_BCAST;
        else
                return -EINVAL;
 
@@ -942,6 +948,7 @@ static int cmd_bearer_get(struct nlmsghdr *nlh, const 
struct cmd *cmd,
                { "window",     cmd_bearer_get_prop,    cmd_bearer_get_help },
                { "mtu",        cmd_bearer_get_prop,    cmd_bearer_get_help },
                { "media",      cmd_bearer_get_media,   cmd_bearer_get_help },
+               { "broadcast",  cmd_bearer_get_prop,    cmd_bearer_get_help },
                { NULL }
        };
 
@@ -995,7 +1002,7 @@ void cmd_bearer_help(struct cmdl *cmdl)
                "Usage: %s bearer COMMAND [ARGS] ...\n"
                "\n"
                "COMMANDS\n"
-               " add                   - Add data to existing bearer\n"
+               " add                   - Add data to existing bearer\n"
                " enable                - Enable a bearer\n"
                " disable               - Disable a bearer\n"
                " set                   - Set various bearer properties\n"
-- 
2.17.1



_______________________________________________
tipc-discussion mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tipc-discussion

Reply via email to