From: Sven Eckelmann <sven-KaDOiPu9UxWEi8DpZVb4nw@public.gmane.org> To: b.a.t.m.a.n-ZwoEplunGu2X36UT3dwllkB+6BGkLq7r@public.gmane.org Cc: netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Jiri Pirko <jiri-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> Subject: [RFC v2 12/19] batman-adv: Add hop_penalty mesh genl configuration Date: Fri, 23 Nov 2018 17:13:52 +0100 [thread overview] Message-ID: <20181123161359.13342-13-sven@narfation.org> (raw) In-Reply-To: <20181123161359.13342-1-sven-KaDOiPu9UxWEi8DpZVb4nw@public.gmane.org> The TQ (B.A.T.M.A.N. IV) and throughput values (B.A.T.M.A.N. V) are reduced when they are forwarded. One of the reductions is the penalty for traversing an additional hop. This hop_penalty (0-255) defines the percentage of reduction (0-100%). The BATADV_CMD_SET_MESH/BATADV_CMD_GET_MESH commands allow to set/get the configuration of this feature using the u8 BATADV_ATTR_HOP_PENALTY attribute. Cc: Jiri Pirko <jiri-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> Signed-off-by: Sven Eckelmann <sven-KaDOiPu9UxWEi8DpZVb4nw@public.gmane.org> --- include/uapi/linux/batman_adv.h | 6 ++++++ net/batman-adv/netlink.c | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/include/uapi/linux/batman_adv.h b/include/uapi/linux/batman_adv.h index e9c48dbd..b6d0eaf6 100644 --- a/include/uapi/linux/batman_adv.h +++ b/include/uapi/linux/batman_adv.h @@ -442,6 +442,12 @@ enum batadv_nl_attrs { */ BATADV_ATTR_GW_SEL_CLASS, + /** + * @BATADV_ATTR_HOP_PENALTY: defines the penalty which will be applied + * to an originator message's tq-field on every hop. + */ + BATADV_ATTR_HOP_PENALTY, + /* add attributes above here, update the policy in netlink.c */ /** diff --git a/net/batman-adv/netlink.c b/net/batman-adv/netlink.c index 4e806e48..4d3a23df 100644 --- a/net/batman-adv/netlink.c +++ b/net/batman-adv/netlink.c @@ -152,6 +152,7 @@ static const struct nla_policy batadv_netlink_policy[NUM_BATADV_ATTR] = { [BATADV_ATTR_GW_BANDWIDTH_UP] = { .type = NLA_U32 }, [BATADV_ATTR_GW_MODE] = { .type = NLA_U8 }, [BATADV_ATTR_GW_SEL_CLASS] = { .type = NLA_U32 }, + [BATADV_ATTR_HOP_PENALTY] = { .type = NLA_U8 }, }; /** @@ -329,6 +330,10 @@ static int batadv_netlink_mesh_put(struct sk_buff *msg, goto nla_put_failure; } + if (nla_put_u8(msg, BATADV_ATTR_HOP_PENALTY, + atomic_read(&bat_priv->hop_penalty))) + goto nla_put_failure; + batadv_hardif_put(primary_if); genlmsg_end(msg, hdr); @@ -534,6 +539,12 @@ static int batadv_netlink_set_mesh(struct sk_buff *skb, struct genl_info *info) } } + if (info->attrs[BATADV_ATTR_HOP_PENALTY]) { + attr = info->attrs[BATADV_ATTR_HOP_PENALTY]; + + atomic_set(&bat_priv->hop_penalty, nla_get_u8(attr)); + } + batadv_netlink_notify_mesh(bat_priv); return 0; -- 2.19.1
WARNING: multiple messages have this Message-ID (diff)
From: Sven Eckelmann <sven@narfation.org> To: b.a.t.m.a.n@lists.open-mesh.org Cc: Jiri Pirko <jiri@mellanox.com>, netdev@vger.kernel.org, Sven Eckelmann <sven@narfation.org> Subject: [B.A.T.M.A.N.] [RFC v2 12/19] batman-adv: Add hop_penalty mesh genl configuration Date: Fri, 23 Nov 2018 17:13:52 +0100 [thread overview] Message-ID: <20181123161359.13342-13-sven@narfation.org> (raw) In-Reply-To: <20181123161359.13342-1-sven@narfation.org> The TQ (B.A.T.M.A.N. IV) and throughput values (B.A.T.M.A.N. V) are reduced when they are forwarded. One of the reductions is the penalty for traversing an additional hop. This hop_penalty (0-255) defines the percentage of reduction (0-100%). The BATADV_CMD_SET_MESH/BATADV_CMD_GET_MESH commands allow to set/get the configuration of this feature using the u8 BATADV_ATTR_HOP_PENALTY attribute. Cc: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Sven Eckelmann <sven@narfation.org> --- include/uapi/linux/batman_adv.h | 6 ++++++ net/batman-adv/netlink.c | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/include/uapi/linux/batman_adv.h b/include/uapi/linux/batman_adv.h index e9c48dbd..b6d0eaf6 100644 --- a/include/uapi/linux/batman_adv.h +++ b/include/uapi/linux/batman_adv.h @@ -442,6 +442,12 @@ enum batadv_nl_attrs { */ BATADV_ATTR_GW_SEL_CLASS, + /** + * @BATADV_ATTR_HOP_PENALTY: defines the penalty which will be applied + * to an originator message's tq-field on every hop. + */ + BATADV_ATTR_HOP_PENALTY, + /* add attributes above here, update the policy in netlink.c */ /** diff --git a/net/batman-adv/netlink.c b/net/batman-adv/netlink.c index 4e806e48..4d3a23df 100644 --- a/net/batman-adv/netlink.c +++ b/net/batman-adv/netlink.c @@ -152,6 +152,7 @@ static const struct nla_policy batadv_netlink_policy[NUM_BATADV_ATTR] = { [BATADV_ATTR_GW_BANDWIDTH_UP] = { .type = NLA_U32 }, [BATADV_ATTR_GW_MODE] = { .type = NLA_U8 }, [BATADV_ATTR_GW_SEL_CLASS] = { .type = NLA_U32 }, + [BATADV_ATTR_HOP_PENALTY] = { .type = NLA_U8 }, }; /** @@ -329,6 +330,10 @@ static int batadv_netlink_mesh_put(struct sk_buff *msg, goto nla_put_failure; } + if (nla_put_u8(msg, BATADV_ATTR_HOP_PENALTY, + atomic_read(&bat_priv->hop_penalty))) + goto nla_put_failure; + batadv_hardif_put(primary_if); genlmsg_end(msg, hdr); @@ -534,6 +539,12 @@ static int batadv_netlink_set_mesh(struct sk_buff *skb, struct genl_info *info) } } + if (info->attrs[BATADV_ATTR_HOP_PENALTY]) { + attr = info->attrs[BATADV_ATTR_HOP_PENALTY]; + + atomic_set(&bat_priv->hop_penalty, nla_get_u8(attr)); + } + batadv_netlink_notify_mesh(bat_priv); return 0; -- 2.19.1
next prev parent reply other threads:[~2018-11-23 16:13 UTC|newest] Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-11-23 16:13 [RFC v2 00/19] batman-adv: netlink restructuring, part 2 Sven Eckelmann 2018-11-23 16:13 ` [B.A.T.M.A.N.] " Sven Eckelmann [not found] ` <20181123161359.13342-1-sven-KaDOiPu9UxWEi8DpZVb4nw@public.gmane.org> 2018-11-23 16:13 ` [RFC v2 01/19] batman-adv: Move common genl doit code pre/post hooks Sven Eckelmann 2018-11-23 16:13 ` [B.A.T.M.A.N.] " Sven Eckelmann 2018-11-23 16:13 ` [RFC v2 02/19] batman-adv: Prepare framework for mesh genl config Sven Eckelmann 2018-11-23 16:13 ` [B.A.T.M.A.N.] " Sven Eckelmann 2018-11-23 16:13 ` [RFC v2 03/19] batman-adv: Prepare framework for hardif " Sven Eckelmann 2018-11-23 16:13 ` [B.A.T.M.A.N.] " Sven Eckelmann 2018-11-23 16:13 ` [RFC v2 04/19] batman-adv: Prepare framework for vlan " Sven Eckelmann 2018-11-23 16:13 ` [B.A.T.M.A.N.] " Sven Eckelmann 2018-11-23 16:13 ` [RFC v2 05/19] batman-adv: Add aggregated_ogms mesh genl configuration Sven Eckelmann 2018-11-23 16:13 ` [B.A.T.M.A.N.] " Sven Eckelmann 2018-11-23 16:13 ` [RFC v2 06/19] batman-adv: Add ap_isolation mesh/vlan " Sven Eckelmann 2018-11-23 16:13 ` [B.A.T.M.A.N.] " Sven Eckelmann 2018-11-23 16:13 ` [RFC v2 07/19] batman-adv: Add bonding mesh " Sven Eckelmann 2018-11-23 16:13 ` [B.A.T.M.A.N.] " Sven Eckelmann 2018-11-23 16:13 ` [RFC v2 08/19] batman-adv: Add bridge_loop_avoidance " Sven Eckelmann 2018-11-23 16:13 ` [B.A.T.M.A.N.] " Sven Eckelmann 2018-11-23 16:13 ` [RFC v2 09/19] batman-adv: Add distributed_arp_table " Sven Eckelmann 2018-11-23 16:13 ` [B.A.T.M.A.N.] " Sven Eckelmann 2018-11-23 16:13 ` [RFC v2 10/19] batman-adv: Add fragmentation " Sven Eckelmann 2018-11-23 16:13 ` [B.A.T.M.A.N.] " Sven Eckelmann 2018-11-23 16:13 ` [RFC v2 11/19] batman-adv: Add gateway " Sven Eckelmann 2018-11-23 16:13 ` [B.A.T.M.A.N.] " Sven Eckelmann [not found] ` <20181123161359.13342-12-sven-KaDOiPu9UxWEi8DpZVb4nw@public.gmane.org> 2018-11-24 20:52 ` Sven Eckelmann 2018-11-24 20:52 ` [B.A.T.M.A.N.] " Sven Eckelmann 2018-11-23 16:13 ` Sven Eckelmann [this message] 2018-11-23 16:13 ` [B.A.T.M.A.N.] [RFC v2 12/19] batman-adv: Add hop_penalty " Sven Eckelmann 2018-11-23 16:13 ` [RFC v2 13/19] batman-adv: Add log_level " Sven Eckelmann 2018-11-23 16:13 ` [B.A.T.M.A.N.] " Sven Eckelmann 2018-11-23 16:13 ` [RFC v2 14/19] batman-adv: Add multicast_mode " Sven Eckelmann 2018-11-23 16:13 ` [B.A.T.M.A.N.] " Sven Eckelmann 2018-11-23 16:13 ` [RFC v2 15/19] batman-adv: Add network_coding " Sven Eckelmann 2018-11-23 16:13 ` [B.A.T.M.A.N.] " Sven Eckelmann 2018-11-23 16:13 ` [RFC v2 16/19] batman-adv: Add orig_interval " Sven Eckelmann 2018-11-23 16:13 ` [B.A.T.M.A.N.] " Sven Eckelmann [not found] ` <20181123161359.13342-17-sven-KaDOiPu9UxWEi8DpZVb4nw@public.gmane.org> 2018-11-24 17:52 ` Sven Eckelmann 2018-11-24 17:52 ` [B.A.T.M.A.N.] " Sven Eckelmann 2018-11-23 16:13 ` [RFC v2 17/19] batman-adv: Add elp_interval hardif " Sven Eckelmann 2018-11-23 16:13 ` [B.A.T.M.A.N.] " Sven Eckelmann 2018-11-23 16:13 ` [RFC v2 18/19] batman-adv: Add throughput_override " Sven Eckelmann 2018-11-23 16:13 ` [B.A.T.M.A.N.] " Sven Eckelmann 2018-11-23 16:13 ` [RFC v2 19/19] batman-adv: Trigger genl notification on sysfs config change Sven Eckelmann 2018-11-23 16:13 ` [B.A.T.M.A.N.] " Sven Eckelmann 2018-11-24 9:29 ` [RFC v2 00/19] batman-adv: netlink restructuring, part 2 Jiri Pirko 2018-11-24 9:29 ` [B.A.T.M.A.N.] " Jiri Pirko [not found] ` <20181124092955.GA2511-6KJVSR23iU488b5SBfVpbw@public.gmane.org> 2018-11-24 9:44 ` Sven Eckelmann 2018-11-24 9:44 ` [B.A.T.M.A.N.] " Sven Eckelmann 2018-11-24 10:23 ` Jiri Pirko 2018-11-24 10:23 ` [B.A.T.M.A.N.] " Jiri Pirko
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20181123161359.13342-13-sven@narfation.org \ --to=sven-kadoipu9uxwei8dpzvb4nw@public.gmane.org \ --cc=b.a.t.m.a.n-ZwoEplunGu2X36UT3dwllkB+6BGkLq7r@public.gmane.org \ --cc=jiri-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \ --cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.