]>
git.ipfire.org Git - thirdparty/iw.git/blob - ibss.c
3 #include <netlink/genl/genl.h>
4 #include <netlink/genl/family.h>
5 #include <netlink/genl/ctrl.h>
6 #include <netlink/msg.h>
7 #include <netlink/attr.h>
12 static int join_ibss(struct nl80211_state
*state
,
15 int argc
, char **argv
)
18 unsigned char abssid
[6];
25 NLA_PUT(msg
, NL80211_ATTR_SSID
, strlen(argv
[0]), argv
[0]);
30 NLA_PUT_U32(msg
, NL80211_ATTR_WIPHY_FREQ
,
31 strtoul(argv
[0], &end
, 10));
37 if (argc
&& strcmp(argv
[0], "fixed-freq") == 0) {
38 NLA_PUT_FLAG(msg
, NL80211_ATTR_FREQ_FIXED
);
44 if (mac_addr_a2n(abssid
, argv
[0]) == 0) {
45 NLA_PUT(msg
, NL80211_ATTR_MAC
, 6, abssid
);
52 if (strcmp(*argv
, "key") != 0 && strcmp(*argv
, "keys") != 0)
58 err
= parse_keys(msg
, argv
, argc
);
63 return set_interface_up(state
->ifname
);
69 static int leave_ibss(struct nl80211_state
*state
,
72 int argc
, char **argv
)
76 COMMAND(ibss
, leave
, NULL
,
77 NL80211_CMD_LEAVE_IBSS
, 0, CIB_NETDEV
, leave_ibss
,
78 "Leave the current IBSS cell.");
79 COMMAND(ibss
, join
, "<SSID> <freq in MHz> [fixed-freq] [<fixed bssid>] [key d:0:abcde]",
80 NL80211_CMD_JOIN_IBSS
, 0, CIB_NETDEV
, join_ibss
,
81 "Join the IBSS cell with the given SSID, if it doesn't exist create\n"
82 "it on the given frequency. When fixed frequency is requested, don't\n"
83 "join/create a cell on a different frequency. When a fixed BSSID is\n"
84 "requested use that BSSID and do not adopt another cell's BSSID even\n"
85 "if it has higher TSF and the same SSID.");