All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Lindner <mareklindner@neomailbox.ch>
To: The list for a Better Approach To Mobile Ad-hoc Networking
	<b.a.t.m.a.n@lists.open-mesh.org>
Subject: Re: [B.A.T.M.A.N.] [PATCHv2 1/6] batman-adv: add isolation_mark sysfs attribute
Date: Sat, 16 Nov 2013 13:35:53 +0800	[thread overview]
Message-ID: <3563164.50QBaKXCKk@diderot> (raw)
In-Reply-To: <1384360685-366-2-git-send-email-antonio@meshcoding.com>

[-- Attachment #1: Type: text/plain, Size: 2974 bytes --]

On Wednesday 13 November 2013 17:38:00 Antonio Quartulli wrote:
> @@ -692,6 +692,8 @@ static int batadv_softif_init_late(struct net_device
> *dev)> 
>  #endif
>  
>         bat_priv->tt.last_changeset = NULL;
>         bat_priv->tt.last_changeset_len = 0;
> 
> +       bat_priv->isolation_mark = 0;
> +       bat_priv->isolation_mark_mask = 0;
> 
>         /* randomize initial seqno to avoid collision */
>         get_random_bytes(&random_seqno, sizeof(random_seqno));

Wasn't the plan to initialize isolation_mark_mask with something useful like 
0xFFFFFFFF ?


> +/**
> + * batadv_store_isolation_mark - parse and store the isolation mark/mask
> entered by + *  the user
> + * @kobj: kobject representing the private mesh sysfs directory
> + * @attr: the batman-adv attribute the user is interacting with
> + * @buf: the buffer containing the user data
> + * @count: number of bytes in the buffer
> + *
> + * Returns 'count' on success or a negative error code in case of failure
> + */
> +static ssize_t batadv_store_isolation_mark(struct kobject *kobj,
> +					   struct attribute *attr, char *buff,
> +					   size_t count)
> +{
> +	struct net_device *net_dev = batadv_kobj_to_netdev(kobj);
> +	struct batadv_priv *bat_priv = netdev_priv(net_dev);
> +	uint32_t mark, mask = UINT_MAX;
> +	char *mask_ptr;
> +
> +	/* parse the mask if it has been specified */
> +	mask_ptr = strchr(buff, '/');
> +	if (mask_ptr) {
> +		*mask_ptr = '\0';
> +		mask_ptr++;
> +
> +		/* the mask must be entered in hex base as it is going to be a
> +		 * bitmask and not a prefix length
> +		 */
> +		if (kstrtou32(mask_ptr, 16, &mask) < 0)
> +			return -EINVAL;
> +	}
> +
> +	/* the mark can be entered in any base */
> +	if (kstrtou32(buff, 0, &mark) < 0)
> +		return -EINVAL;
> +
> +	bat_priv->isolation_mark_mask = mask;
> +	/* erase bits not covered by the mask */
> +	bat_priv->isolation_mark = mark & bat_priv->isolation_mark_mask;
> +
> +	batadv_info(net_dev,
> +		    "New skb mark for extended isolation: %#.8x/%#.8x\n",
> +		    bat_priv->isolation_mark, bat_priv->isolation_mark_mask);
> +
> +	return count;
> +}
> +
> +/**
> + * batadv_show_isolation_mark - print the current isolation mark/mask
> + * @kobj: kobject representing the private mesh sysfs directory
> + * @attr: the batman-adv attribute the user is interacting with
> + * @buf: the buffer that will contain the data to send back to the user
> + *
> + * Returns the number of bytes written into 'buf' on success or a negative
> error + * code in case of failure
> + */
> +static ssize_t batadv_show_isolation_mark(struct kobject *kobj,
> +					  struct attribute *attr, char *buff)
> +{
> +	struct batadv_priv *bat_priv = batadv_kobj_to_batpriv(kobj);
> +
> +	return sprintf(buff, "%#.8x/%#.8x\n", bat_priv->isolation_mark,
> +		       bat_priv->isolation_mark_mask);
> +}

We always have 'show' before 'store' in the sysfs.c file. Please keep the 
order.

Where is the sysfs documentation update ?

Cheers,
Marek

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

  reply	other threads:[~2013-11-16  5:35 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-13 16:37 [B.A.T.M.A.N.] [PATCHv2 0/5] Introducing the Extended-Isolation Antonio Quartulli
2013-11-13 16:38 ` [B.A.T.M.A.N.] [PATCHv2 1/6] batman-adv: add isolation_mark sysfs attribute Antonio Quartulli
2013-11-16  5:35   ` Marek Lindner [this message]
2013-11-16  9:10     ` Antonio Quartulli
2013-11-13 16:38 ` [B.A.T.M.A.N.] [PATCHv2 2/6] batman-adv: mark a local client as isolated when needed Antonio Quartulli
2013-11-16  5:31   ` Marek Lindner
2013-11-16  9:11     ` Antonio Quartulli
2013-11-16 10:04       ` Martin Hundebøll
2013-11-16 10:43         ` Antonio Quartulli
2013-11-13 16:38 ` [B.A.T.M.A.N.] [PATCHv2 3/6] batman-adv: print the new BATADV_TT_CLIENT_ISOLA flag Antonio Quartulli
2013-11-13 16:38 ` [B.A.T.M.A.N.] [PATCHv2 4/6] batman-adv: extend the ap_isolation mechanism Antonio Quartulli
2013-11-13 16:38 ` [B.A.T.M.A.N.] [PATCHv2 5/6] batman-adv: create helper function to get AP isolation status Antonio Quartulli
2013-11-13 16:38 ` [B.A.T.M.A.N.] [PATCHv2 6/6] batman-adv: set the isolation mark in the skb if needed Antonio Quartulli

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=3563164.50QBaKXCKk@diderot \
    --to=mareklindner@neomailbox.ch \
    --cc=b.a.t.m.a.n@lists.open-mesh.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.