aboutsummaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2006-10-15 16:56:09 +0000
committerFelix Fietkau <nbd@openwrt.org>2006-10-15 16:56:09 +0000
commit1c41869d83951b93bb3c657a3b08a2f346021cc7 (patch)
treee98bdfcb602dbaaa4d4d24fdfd3076d3f81545e1 /package
parent1ef87ad52b2082a937484c048bdbff4a779a2e8b (diff)
downloadupstream-1c41869d83951b93bb3c657a3b08a2f346021cc7.tar.gz
upstream-1c41869d83951b93bb3c657a3b08a2f346021cc7.tar.bz2
upstream-1c41869d83951b93bb3c657a3b08a2f346021cc7.zip
implement wlc call to read wds endpoint mac
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@5121 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-rw-r--r--package/broadcom-wl/src/wlc/wlc.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/package/broadcom-wl/src/wlc/wlc.c b/package/broadcom-wl/src/wlc/wlc.c
index 09cbb84538..2d6b846a09 100644
--- a/package/broadcom-wl/src/wlc/wlc.c
+++ b/package/broadcom-wl/src/wlc/wlc.c
@@ -644,6 +644,36 @@ static int wlc_wme_ac(wlc_param param, void *data, void *value)
return ret;
}
+static int wlc_ifname(wlc_param param, void *data, void *value)
+{
+ char *val = (char *) value;
+ int ret = 0;
+
+ if (param & SET) {
+ if (strlen(val) < 16)
+ strcpy(interface, val);
+ else ret = -1;
+ }
+ if (param & GET) {
+ strcpy(val, interface);
+ }
+
+ return ret;
+}
+
+static int wlc_wdsmac(wlc_param param, void *data, void *value)
+{
+ static struct ether_addr mac;
+ int ret = 0;
+
+ ret = wl_ioctl(interface, WLC_WDS_GET_REMOTE_HWADDR, &mac, 6);
+ if (ret == 0) {
+ strcpy((char *) value, ether_ntoa(&mac));
+ }
+
+ return ret;
+}
+
static const struct wlc_call wlc_calls[] = {
{
.name = "version",
@@ -667,6 +697,12 @@ static const struct wlc_call wlc_calls[] = {
.desc = "Accept input from stdin"
},
{
+ .name = "ifname",
+ .param = STRING,
+ .handler = wlc_ifname,
+ .desc = "interface to send commands to"
+ },
+ {
.name = "up",
.param = NOARG,
.handler = wlc_ioctl,
@@ -957,6 +993,12 @@ static const struct wlc_call wlc_calls[] = {
.desc = "WDS link detection timeout"
},
{
+ .name = "wdsmac",
+ .param = STRING|NOARG,
+ .handler = wlc_wdsmac,
+ .desc = "MAC of the remote WDS endpoint (only with wds0.* interfaces)"
+ },
+ {
.name = "afterburner",
.param = INT,
.handler = wlc_afterburner,