From patchwork Mon Dec 5 09:56:25 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Lindner X-Patchwork-Id: 1421 Return-Path: Received: from nm8.bullet.mail.ukl.yahoo.com (nm8.bullet.mail.ukl.yahoo.com [217.146.182.249]) by open-mesh.org (Postfix) with SMTP id 4ACEC6008AC for ; Mon, 5 Dec 2011 10:57:12 +0100 (CET) Authentication-Results: open-mesh.org; dkim=pass (1024-bit key) header.i=@yahoo.de; dkim-adsp=none Received: from [217.146.183.210] by nm8.bullet.mail.ukl.yahoo.com with NNFMP; 05 Dec 2011 09:57:12 -0000 Received: from [77.238.184.73] by tm3.bullet.mail.ukl.yahoo.com with NNFMP; 05 Dec 2011 09:57:12 -0000 Received: from [127.0.0.1] by smtp142.mail.ukl.yahoo.com with NNFMP; 05 Dec 2011 09:57:12 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s1024; t=1323079032; bh=Y9dT1YlDVETSG1rNl9lHGkhVPuEoU68iKGVdSEJzwLo=; h=X-Yahoo-Newman-Id:X-Yahoo-Newman-Property:X-YMail-OSG:X-Yahoo-SMTP:Received:From:To:Cc:Subject:Date:Message-Id:X-Mailer:In-Reply-To:References; b=rq0Q0hBFe2sZdoq/ph1wrxvXs+p0wmGJ4S4H53WQM9YncuO0rBPqq16Zsmhk6rl8kgVpe04jicDMW3hqIpkOu0g//Yu/yqDjjy1OUKEoCfBAeF0t8DU6Ukr1VqAPg9o8CnRt71WrLNPoH/2AS0sDdRnyRdult7V/qJikJQAplNY= X-Yahoo-Newman-Id: 148222.37619.bm@smtp142.mail.ukl.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: LGEGxuAVM1kGQLPXssNzS5Ups.uWGHdmUP.SrI_TrRgTL7u Lud1g.tBha8Pcp1sb5fnoVw4ndGR6ub.dp1lkVKPcuIfpjeZDBgPeCoXMgSt i9dS.QHbe3EpIMy1u50cWh69L2LaVDTaLLIDoWgAqlPC0MR5j2aLrofDnx6o .1zQyUtYIZdKCCtWIOJvoZadpihLO0sLycd32EPGBmgRjZHfc6t6LQU11mq0 5EPhHHzoQqRy3G33PZnLlKE9JaiFJgy.rsidtXkCiw2Q7cMRrHkT3Hgg24gj Bs87yQeqvMtdljmpD09RkYcs7cMUUuWRCrB5HrSQ.E4nbBR3QEI7bvGcixFE bFU_bkZbuU5Dew1Mp2NJw0IR.kEg4CSlzw5pzsJ6zMs_9RjYr X-Yahoo-SMTP: tW.h3tiswBBMXO2coYcbPigGD5Lt6zY_.Zc- Received: from localhost (lindner_marek@78.46.248.235 with plain) by smtp142.mail.ukl.yahoo.com with SMTP; 05 Dec 2011 09:57:10 +0000 GMT From: Marek Lindner To: b.a.t.m.a.n@lists.open-mesh.org Date: Mon, 5 Dec 2011 17:56:25 +0800 Message-Id: <1323078985-1116-4-git-send-email-lindner_marek@yahoo.de> X-Mailer: git-send-email 1.7.5.4 In-Reply-To: <1323078985-1116-1-git-send-email-lindner_marek@yahoo.de> References: <1323078985-1116-1-git-send-email-lindner_marek@yahoo.de> Cc: Marek Lindner Subject: [B.A.T.M.A.N.] [PATCH 3/3] batman-adv: allowing changing the routing algorithm via sysfs X-BeenThere: b.a.t.m.a.n@lists.open-mesh.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: The list for a Better Approach To Mobile Ad-hoc Networking List-Id: The list for a Better Approach To Mobile Ad-hoc Networking List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Dec 2011 09:57:12 -0000 Signed-off-by: Marek Lindner --- bat_sysfs.c | 35 +++++++++++++++++++++++++++++++++++ sysfs-class-net-mesh | 7 +++++++ 2 files changed, 42 insertions(+), 0 deletions(-) diff --git a/bat_sysfs.c b/bat_sysfs.c index c25492f..af8dd58 100644 --- a/bat_sysfs.c +++ b/bat_sysfs.c @@ -272,6 +272,39 @@ static ssize_t store_vis_mode(struct kobject *kobj, struct attribute *attr, return count; } +static ssize_t show_bat_algo(struct kobject *kobj, struct attribute *attr, + char *buff) +{ + struct bat_priv *bat_priv = kobj_to_batpriv(kobj); + return sprintf(buff, "%s\n", bat_priv->bat_algo_ops->name); +} + +static ssize_t store_bat_algo(struct kobject *kobj, struct attribute *attr, + char *buff, size_t count) +{ + struct net_device *net_dev = kobj_to_netdev(kobj); + struct bat_priv *bat_priv = netdev_priv(net_dev); + int ret; + + if (buff[count - 1] == '\n') + buff[count - 1] = '\0'; + else + buff[count] = '\0'; + + if (strcmp(bat_priv->bat_algo_ops->name, buff) == 0) + return count; + + ret = bat_algo_select(bat_priv, buff); + if (ret < 0) + bat_info(net_dev, + "Invalid parameter for 'routing algorithm' setting " + "received: %s\n", buff); + else + bat_info(net_dev, "Changing routing algorithm to: %s\n", buff); + + return count; +} + static void post_gw_deselect(struct net_device *net_dev) { struct bat_priv *bat_priv = netdev_priv(net_dev); @@ -382,6 +415,7 @@ BAT_ATTR_BOOL(bonding, S_IRUGO | S_IWUSR, NULL); BAT_ATTR_BOOL(fragmentation, S_IRUGO | S_IWUSR, update_min_mtu); BAT_ATTR_BOOL(ap_isolation, S_IRUGO | S_IWUSR, NULL); static BAT_ATTR(vis_mode, S_IRUGO | S_IWUSR, show_vis_mode, store_vis_mode); +static BAT_ATTR(routing_algo, S_IRUGO | S_IWUSR, show_bat_algo, store_bat_algo); static BAT_ATTR(gw_mode, S_IRUGO | S_IWUSR, show_gw_mode, store_gw_mode); BAT_ATTR_UINT(orig_interval, S_IRUGO | S_IWUSR, 2 * JITTER, INT_MAX, NULL); BAT_ATTR_UINT(hop_penalty, S_IRUGO | S_IWUSR, 0, TQ_MAX_VALUE, NULL); @@ -399,6 +433,7 @@ static struct bat_attribute *mesh_attrs[] = { &bat_attr_fragmentation, &bat_attr_ap_isolation, &bat_attr_vis_mode, + &bat_attr_routing_algo, &bat_attr_gw_mode, &bat_attr_orig_interval, &bat_attr_hop_penalty, diff --git a/sysfs-class-net-mesh b/sysfs-class-net-mesh index b020014..b218e0f 100644 --- a/sysfs-class-net-mesh +++ b/sysfs-class-net-mesh @@ -65,6 +65,13 @@ Description: Defines the penalty which will be applied to an originator message's tq-field on every hop. +What: /sys/class/net//mesh/routing_algo +Date: Dec 2011 +Contact: Marek Lindner +Description: + Defines the routing procotol this mesh instance + uses to find the optimal paths through the mesh. + What: /sys/class/net//mesh/vis_mode Date: May 2010 Contact: Marek Lindner