summaryrefslogtreecommitdiffstats
path: root/package/iw/patches/100-4addr.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/iw/patches/100-4addr.patch')
-rw-r--r--package/iw/patches/100-4addr.patch76
1 files changed, 0 insertions, 76 deletions
diff --git a/package/iw/patches/100-4addr.patch b/package/iw/patches/100-4addr.patch
deleted file mode 100644
index db6b88010..000000000
--- a/package/iw/patches/100-4addr.patch
+++ /dev/null
@@ -1,76 +0,0 @@
---- a/interface.c
-+++ b/interface.c
-@@ -137,6 +137,20 @@ static int get_if_type(int *argc, char *
- return 2;
- }
-
-+static int parse_wds_flag(const char *value, struct nl_msg *msg)
-+{
-+ if (strcmp(value, "on") == 0)
-+ NLA_PUT_U8(msg, NL80211_ATTR_4ADDR, 1);
-+ else if (strcmp(value, "off") == 0)
-+ NLA_PUT_U8(msg, NL80211_ATTR_4ADDR, 0);
-+ else
-+ return 1;
-+ return 0;
-+
-+nla_put_failure:
-+ return 1;
-+}
-+
- static int handle_interface_add(struct nl80211_state *state,
- struct nl_cb *cb,
- struct nl_msg *msg,
-@@ -168,6 +182,15 @@ static int handle_interface_add(struct n
- mesh_id = argv[0];
- argc--;
- argv++;
-+ } else if (strcmp(argv[0], "wds") == 0) {
-+ argc--;
-+ argv++;
-+ if (parse_wds_flag(argv[0], msg)) {
-+ fprintf(stderr, "wds error\n");
-+ return 2;
-+ }
-+ argc--;
-+ argv++;
- } else if (strcmp(argv[0], "flags") == 0) {
- argc--;
- argv++;
-@@ -192,14 +215,14 @@ static int handle_interface_add(struct n
- nla_put_failure:
- return -ENOBUFS;
- }
--COMMAND(interface, add, "<name> type <type> [mesh_id <meshid>] [flags <flag>*]",
-+COMMAND(interface, add, "<name> type <type> [mesh_id <meshid>] [wds on|off] [flags <flag>*]",
- NL80211_CMD_NEW_INTERFACE, 0, CIB_PHY, handle_interface_add,
- "Add a new virtual interface with the given configuration.\n"
- IFACE_TYPES "\n\n"
- "The flags are only used for monitor interfaces, valid flags are:\n"
- VALID_FLAGS "\n\n"
- "The mesh_id is used only for mesh mode.");
--COMMAND(interface, add, "<name> type <type> [mesh_id <meshid>] [flags <flag>*]",
-+COMMAND(interface, add, "<name> type <type> [mesh_id <meshid>] [wds on|off] [flags <flag>*]",
- NL80211_CMD_NEW_INTERFACE, 0, CIB_NETDEV, handle_interface_add, NULL);
-
- static int handle_interface_del(struct nl80211_state *state,
---- a/nl80211.h
-+++ b/nl80211.h
-@@ -584,6 +584,8 @@ enum nl80211_commands {
- * changed then the list changed and the dump should be repeated
- * completely from scratch.
- *
-+ * @NL80211_ATTR_4ADDR: Use 4-address frames on a virtual interface
-+ *
- * @NL80211_ATTR_MAX: highest attribute number currently defined
- * @__NL80211_ATTR_AFTER_LAST: internal use
- */
-@@ -714,6 +716,8 @@ enum nl80211_attrs {
-
- NL80211_ATTR_PID,
-
-+ NL80211_ATTR_4ADDR,
-+
- /* add attributes here, update the policy in nl80211.c */
-
- __NL80211_ATTR_AFTER_LAST,