All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Greear <greearb@candelatech.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: Marcel Holtmann <marcel@holtmann.org>,
	"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>
Subject: Re: Anyone working on making iw able to specify MAC address at station creation time?
Date: Tue, 30 Sep 2014 10:16:33 -0700	[thread overview]
Message-ID: <542AE571.40007@candelatech.com> (raw)
In-Reply-To: <1409898836.1940.1.camel@jlt4.sipsolutions.net>

On 09/04/2014 11:33 PM, Johannes Berg wrote:
> On Thu, 2014-09-04 at 10:51 -0700, Ben Greear wrote:
>> I'm having issues with udev renaming newly created stations when I have
>> udev rules for wlanX, when wlanX is not already existing.
>>
>> I think specifying MAC on station creation time would solve my problems,
>> but haven't looked closely yet.
>>
>> My version of 'iw' doesn't support setting the MAC on creation, from
>> what I can tel.
>>
>> Curious if anyone else is working on this?
> 
> I think Marcel mentioned wanting this before. There's even an attribute
> in nl80211 already, but it can only be used for P2P_DEVICE I believe, so
> a feature flag or so would be needed to be able to know whether or not
> this would be expected to take any effect (kernels before those future
> changes would ignore the attribute for non-P2P-DEVICE I believe)
> 
> Haven't looked at the code right now, this is all I know.

In the iw code, it seems that the arguments: mesh_id, 4addr, flags
cannot be used at the same time?

I want to add an option pass an optional mac-address as
well.  It would be easier if I processed args in a loop
and removed the exclusivity on those 3 above, but if they
do need to remain exclusive, then I can do that too:


static int handle_interface_add(struct nl80211_state *state,
				struct nl_cb *cb,
				struct nl_msg *msg,
				int argc, char **argv,
				enum id_input id)
{
	char *name;
	char *mesh_id = NULL;
	enum nl80211_iftype type;
	int tpset;

	if (argc < 1)
		return 1;

	name = argv[0];
	argc--;
	argv++;

	tpset = get_if_type(&argc, &argv, &type, true);
	if (tpset)
		return tpset;

	if (argc) {
		if (strcmp(argv[0], "mesh_id") == 0) {
			argc--;
			argv++;

			if (!argc)
				return 1;
			mesh_id = argv[0];
			argc--;
			argv++;
		} else if (strcmp(argv[0], "4addr") == 0) {
			argc--;
			argv++;
			if (parse_4addr_flag(argv[0], msg)) {
				fprintf(stderr, "4addr error\n");
				return 2;
			}
			argc--;
			argv++;
		} else if (strcmp(argv[0], "flags") == 0) {
			argc--;
			argv++;
			if (parse_mntr_flags(&argc, &argv, msg)) {
				fprintf(stderr, "flags error\n");
				return 2;
			}
		} else {
			return 1;
		}
	}

	if (argc)
		return 1;


Thanks,
Ben


-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com


  reply	other threads:[~2014-09-30 17:16 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-04 17:51 Anyone working on making iw able to specify MAC address at station creation time? Ben Greear
2014-09-05  6:33 ` Johannes Berg
2014-09-30 17:16   ` Ben Greear [this message]
2014-09-30 17:44   ` Ben Greear
2014-10-01  8:25     ` Arend van Spriel

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=542AE571.40007@candelatech.com \
    --to=greearb@candelatech.com \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=marcel@holtmann.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: link
Be 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.