1c72cfdc96e63bf975cab514c4ca4d8a661ba0e6 |
|
11-Sep-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: clean curr_slave_lock use Mostly all users of curr_slave_lock already have RTNL as we've discussed previously so there's no point in using it, the one case where the lock must stay is the 3ad code, in fact it's the only one. It's okay to remove it from bond_do_fail_over_mac() as it's called with RTNL and drops the curr_slave_lock anyway. bond_change_active_slave() is one of the main places where curr_slave_lock was used, it's okay to remove it as all callers use RTNL these days before calling it, that's why we move the ASSERT_RTNL() in the beginning to catch any potential offenders to this rule. The RTNL argument actually applies to all of the places where curr_slave_lock has been removed from in this patch. Also remove the unnecessary bond_deref_active_protected() macro and use rtnl_dereference() instead. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
246df7b423aa61a8bd0b58404759a9abb4c15081 |
|
09-Sep-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: options: remove bond->lock usage We're safe to remove the bond->lock use from the arp targets because arp_rcv_probe no longer acquires bond->lock, only rcu_read_lock. Also setting the primary slave is safe because noone uses the bond->lock as a syncing mechanism for that anymore. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
059b47e8aaf997245bc531e980581de492315fe6 |
|
09-Sep-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert primary_slave to use RCU This is necessary mainly for two bonding call sites: procfs and sysfs as it was dereferenced without any real protection. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
d4261e5650004d6d51137553ea5433d5828562dc |
|
19-Aug-2014 |
Jiri Pirko <jiri@resnulli.us> |
bonding: create netlink event when bonding option is changed Userspace needs to be notified if one changes some option. Signed-off-by: Jiri Pirko <jiri@resnulli.us> Acked-by: Veaceslav Falico <vfalico@gmail.com> Acked-by: Andy Gospodarek <gospo@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
cb25235860c8b6552a8f9cca3291e9d46efb7925 |
|
15-Jul-2014 |
Veaceslav Falico <vfalico@gmail.com> |
bonding: remove pr_fmt from bond_options.c To maintain the same message structure as netdev_* functions print. CC: Jay Vosburgh <j.vosburgh@gmail.com> CC: Andy Gospodarek <andy@greyhouse.net> Signed-off-by: Veaceslav Falico <vfalico@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
2de390bace7c533c88359404911ff6e080de4004 |
|
15-Jul-2014 |
Veaceslav Falico <vfalico@gmail.com> |
bonding: convert bond_options.c to use netdev_printk instead of pr_ CC: Jay Vosburgh <j.vosburgh@gmail.com> CC: Andy Gospodarek <andy@greyhouse.net> Signed-off-by: Veaceslav Falico <vfalico@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
ff11d8b27dcd85e7b96ac2570116d5061130bd5e |
|
15-Jul-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: fix bond_option_mode_set warning During the conversion to "static" functions this one got left out, only its prototype was converted, thus resulting in: drivers/net/bonding//bond_options.c:674:5: warning: symbol 'bond_option_mode_set' was not declared. Should it be static? Fix it by making it static and also break the line in two as it was too long. CC: Stephen Hemminger <stephen@networkplumber.org> CC: Jay Vosburgh <j.vosburgh@gmail.com> CC: Veaceslav Falico <vfalico@gmail.com> CC: Andy Gospodarek <andy@greyhouse.net> CC: David S. Miller <davem@davemloft.net> Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
4740d6382790077f22c606d03804f5d9f15b90d7 |
|
15-Jul-2014 |
Eric Dumazet <edumazet@google.com> |
bonding: add proper __rcu annotation for curr_active_slave RCU was added to bonding in linux-3.12 but lacked proper sparse annotations. Using __rcu annotation actually helps to spot all accesses to bond->curr_active_slave are correctly protected, with LOCKDEP support. Signed-off-by: Eric Dumazet <edumazet@google.com> Acked-by: Veaceslav Falico <vfalico@gmail.com> Reviewed-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
e965f8049460569bab12fe7bb5381bb2279712e2 |
|
15-Jul-2014 |
Eric Dumazet <edumazet@google.com> |
bonding: get rid of bond_option_active_slave_get() Only keep bond_option_active_slave_get_rcu() helper. bond_fill_info() uses a new bond_option_active_slave_get_ifindex() helper. Signed-off-by: Eric Dumazet <edumazet@google.com> Acked-by: Veaceslav Falico <vfalico@gmail.com> Reviewed-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
b6adc610f183061bd607d965857870e618d229a6 |
|
15-May-2014 |
Veaceslav Falico <vfalico@gmail.com> |
bonding: convert IS_UP(slave->dev) to inline function Also, remove the IFF_UP verification cause we can't be netif_running() with being also IFF_UP. CC: Jay Vosburgh <j.vosburgh@gmail.com> CC: Andy Gospodarek <andy@greyhouse.net> Signed-off-by: Veaceslav Falico <vfalico@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
2807a9feb2393648f4db114fdf3fa99860ff6a36 |
|
15-May-2014 |
Veaceslav Falico <vfalico@gmail.com> |
bonding: make IS_IP_TARGET_UNUSABLE_ADDRESS an inline function Also, use standard IP primitives to check the address. CC: Jay Vosburgh <j.vosburgh@gmail.com> CC: Andy Gospodarek <andy@greyhouse.net> Signed-off-by: Veaceslav Falico <vfalico@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
ec0865a94991d1819d4f99866a2492af8df5c882 |
|
15-May-2014 |
Veaceslav Falico <vfalico@gmail.com> |
bonding: make USES_PRIMARY inline functions Change the name a bit to better reflect its scope, and update some comments. Two functions added - one which takes bond as a param and the other which takes the mode. CC: Jay Vosburgh <j.vosburgh@gmail.com> CC: Andy Gospodarek <andy@greyhouse.net> Signed-off-by: Veaceslav Falico <vfalico@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
267bed777a5f8a8f5acd50a9134c7341fc46d822 |
|
15-May-2014 |
Veaceslav Falico <vfalico@gmail.com> |
bonding: make BOND_NO_USES_ARP an inline function Also, change its name to better reflect its scope, and skip the "no" part. CC: Jay Vosburgh <j.vosburgh@gmail.com> CC: Andy Gospodarek <andy@greyhouse.net> Signed-off-by: Veaceslav Falico <vfalico@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
81c708068dfedece038e07d818ba68333d8d885d |
|
15-May-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: fix out of range parameters for bond_intmax_tbl I've missed to add a NULL entry to the bond_intmax_tbl when I introduced it with the conversion of arp_interval so add it now. CC: Jay Vosburgh <j.vosburgh@gmail.com> CC: Veaceslav Falico <vfalico@gmail.com> CC: Andy Gospodarek <andy@greyhouse.net> Fixes: 7bdb04ed0dbf ("bonding: convert arp_interval to use the new option API") Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Acked-by: Veaceslav Falico <vfalico@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
dc3e5d18f2a21f4523f75800f4062348a7e94d14 |
|
08-May-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: make a generic sysfs option store and fix comments Introduce a generic option store function for sysfs and remove the specific ones. The attribute name is used to match against the option which is to be set. Also adjust the "name" of tlb_dynamic_lb option to match the sysfs entry and fix the comments and comment style in bond_sysfs.c The comments which showed obvious behaviour (i.e. behaviour that's seen in the option's entry) are removed, the ones that explained important points about the setting function have been moved above the respective set function in bond_options.c There's only 1 exception: num_unsol_na/num_grat_arp since it has 2 names CC: Jay Vosburgh <j.vosburgh@gmail.com> CC: Veaceslav Falico <vfalico@gmail.com> CC: Andy Gospodarek <andy@greyhouse.net> CC: David S. Miller <davem@davemloft.net> Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
e9f0fb88493570200b8dc1cc02d3e676412d25bc |
|
23-Apr-2014 |
Mahesh Bandewar <maheshb@google.com> |
bonding: Add tlb_dynamic_lb parameter for tlb mode The aggresive load balancing causes packet re-ordering as active flows are moved from a slave to another within the group. Sometime this aggresive lb is not necessary if the preference is for less re-ordering. This parameter if used with value "0" disables this dynamic flow shuffling minimizing packet re-ordering. Of course the side effect is that it has to live with the static load balancing that the hashing distribution provides. This impact is less severe if the correct xmit-hashing-policy is used for the tlb setup. The default value of the parameter is set to "1" mimicing the earlier behavior. Ran the netperf test with 200 stream for 1 min between two hosts with 4x1G trunk (xmit-lb mode with xmit-policy L3+4) before and after these changes. Following was the command used for those 200 instances - netperf -t TCP_RR -l 60 -s 5 -H <host> -- -r81920,81920 Transactions per second: Before change: 1,367.11 After change: 1,470.65 Change-Id: Ie3f75c77282cf602e83a6e833c6eb164e72a0990 Signed-off-by: Mahesh Bandewar <maheshb@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
f05b42eaa22cd7c6736d31316e6046c5127f8721 |
|
23-Apr-2014 |
Mahesh Bandewar <maheshb@google.com> |
bonding: Added bond_tlb_xmit() for tlb mode. Re-organized the xmit function for the lb mode separating tlb xmit from the alb mode. This will enable use of the hashing policies like 802.3ad mode. Also extended use of xmit-hash-policy to tlb mode. Now the tlb-mode defaults to BOND_XMIT_POLICY_LAYER2 if the xmit policy module parameter is not set (just like 802.3ad, or Xor mode). Change-Id: I140257403d272df75f477b380207338d0f04963e Signed-off-by: Mahesh Bandewar <maheshb@google.com> Acked-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
8800a244fa1ab75192cf65ecf8e3ca3ec1420b1b |
|
23-Mar-2014 |
Monam Agarwal <monamagarwal123@gmail.com> |
drivers/net: Use RCU_INIT_POINTER(x, NULL) in bonding/bond_options.c This patch replaces rcu_assign_pointer(x, NULL) with RCU_INIT_POINTER(x, NULL) The rcu_assign_pointer() ensures that the initialization of a structure is carried out before storing a pointer to that structure. And in the case of the NULL pointer, there is no structure to initialize. So, rcu_assign_pointer(p, NULL) can be safely converted to RCU_INIT_POINTER(p, NULL) Signed-off-by: Monam Agarwal <monamagarwal123@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
28f084cca35a73698568d8c060bbb98193021db5 |
|
06-Mar-2014 |
stephen hemminger <stephen@networkplumber.org> |
bonding: fix const in options processing This is a fixup patch to resolve issues with const from my earlier patch. Make all the setter functions use const on input parameter. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: David S. Miller <davem@davemloft.net>
|
5bd4e4c158ceb4e76ce9ed005c876d59caad8af2 |
|
06-Mar-2014 |
Sasha Levin <sasha.levin@oracle.com> |
bonding: correctly handle out of range parameters for lp_interval We didn't correctly check cases where the value for lp_interval is not within the legal range due to a missing table terminator. This would let userspace trigger a kernel panic by specifying a value out of range: echo -1 > /sys/devices/virtual/net/bond0/bonding/lp_interval Introduced by commit 4325b374f84 ("bonding: convert lp_interval to use the new option API"). Acked-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: Sasha Levin <sasha.levin@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
f3253339a47ff3690ce52e2acd95ec295f8521b3 |
|
05-Mar-2014 |
stephen hemminger <stephen@networkplumber.org> |
bonding: options handling cleanup Make local functions static (ie. only used in bond_options.c) Make bond options parsing tables constant. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: David S. Miller <davem@davemloft.net>
|
896149ff1b2c48962b7e8eee797552c61f8d5b93 |
|
18-Feb-2014 |
Veaceslav Falico <vfalico@redhat.com> |
bonding: extend arp_validate to be able to receive unvalidated arp-only traffic Currently we can either receive any traffic as a proff of slave being up, or only *validated* arp traffic (i.e. with src/dst ip checked). Add an option to be able to specify if we want to receive non-validated arp traffic only. CC: Jay Vosburgh <fubar@us.ibm.com> CC: Andy Gospodarek <andy@greyhouse.net> Signed-off-by: Veaceslav Falico <vfalico@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
3fe68df97c7f132495664358e0bfbfcd4ca7809c |
|
18-Feb-2014 |
Veaceslav Falico <vfalico@redhat.com> |
bonding: always set recv_probe to bond_arp_rcv in arp monitor Currently we only set bond_arp_rcv() if we're using arp_validate, however this makes us skip updating last_arp_rx if we're not validating incoming ARPs - thus, if arp_validate is off, last_arp_rx will never be updated. Fix this by always setting up recv_probe = bond_arp_rcv, even if we're not using arp_validate. CC: Jay Vosburgh <fubar@us.ibm.com> CC: Andy Gospodarek <andy@greyhouse.net> Signed-off-by: Veaceslav Falico <vfalico@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
13ac34a8866e31b31db6237c73aa558aff84d765 |
|
18-Feb-2014 |
Veaceslav Falico <vfalico@redhat.com> |
bonding: permit using arp_validate with non-ab modes Currently it's disabled because it's sometimes hard, in typical configs, to make it work - because of the nature how the loadbalance modes work - as it's hard to deliver valid arp replies to correct slaves by the switch. However we still can use arp_validation in loadbalance with several other configs, per example with arp_validate == 2 for backup with one broadcast domain, without the switch(es) doing any balancing - this way we'd be (a bit more) sure that the slave is up. So, enable it to let users decide which one works/suits them best. Also correct the mode limitation from BOND_OPT_ARP_VALIDATE. CC: Nikolay Aleksandrov <nikolay@redhat.com> CC: Jay Vosburgh <fubar@us.ibm.com> CC: Andy Gospodarek <andy@greyhouse.net> Signed-off-by: Veaceslav Falico <vfalico@redhat.com> Acked-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
90194264ceffdff809e625f54767f6f8c292a28e |
|
16-Feb-2014 |
Joe Perches <joe@perches.com> |
bonding: Neaten pr_<level> Add missing terminating newlines. Convert uses of pr_info to pr_cont in bond_check_params. Standardize upper/lower case styles. Typo fixes, remove unnecessary parentheses and periods. Alignment neatening. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
eb2d4c64879c99fc78e739b0147db28731ff474e |
|
14-Feb-2014 |
Mike Galbraith <bitbucket@online.de> |
net,bonding: fix bond_options.c direct rwlock.h include drivers/net/bonding/bond_options.c includes rwlock.h directly, which is a nono, and which also breaks RT kernel build. Signed-off-by: Mike Galbraith <bitbucket@online.de> Signed-off-by: David S. Miller <davem@davemloft.net>
|
c313c89edb93eeac0646dcc6d6cb7fb404d4056d |
|
12-Feb-2014 |
dingtianhong <dingtianhong@huawei.com> |
bonding: remove the redundant judgements for bond_option_queue_id_set() The dev_valid_name() will check the buffer length for input name, no need to check it twice. Cc: Jay Vosburgh <fubar@us.ibm.com> Cc: Veaceslav Falico <vfalico@redhat.com> Cc: Andy Gospodarek <andy@greyhouse.net> Signed-off-by: Ding Tianhong <dingtianhong@huawei.com> Reviewed-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
|
0681a28264dcf948e0236adb7bf505a638c4dec1 |
|
23-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: fix u64 division After the option conversion downdelay and updelay divide a u64 and on a 32 bit this causes the following errors: ERROR: "__udivdi3" [drivers/net/bonding/bonding.ko] undefined! ERROR: "__umoddi3" [drivers/net/bonding/bonding.ko] undefined! Fix it by using a normal int instead because newval->value is capped at INT_MAX by the way the option is defined. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
c59ab673699b6dcf457caea46799679e2526917c |
|
18-Jan-2014 |
dingtianhong <dingtianhong@huawei.com> |
bonding: clean the primary slave if there is no slave matching new primary If the new primay is not matching any slave in the bond, the bond should record it to params, clean the primary slave and select a new active slave. Signed-off-by: Ding Tianhong <dingtianhong@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
0e2e5b66e9de377d69f50a456fdd60462889c64f |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert slaves to use the new option API This patch adds the necessary changes so slaves would use the new bonding option API. Also move the option to its own set function in bond_options.c and fix some style errors. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
4325b374f84e59226851636df946f2500d0bfeba |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert lp_interval to use the new option API This patch adds the necessary changes so lp_interval would use the new bonding option API. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
105c8fb6c55e9c5055798184cbb5ef61343139b4 |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert resend_igmp to use the new option API This patch adds the necessary changes so resend_igmp would use the new bonding option API. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
3df011625135fa1c670cb8e24618fc7ca38e00b0 |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert all_slaves_active to use the new option API This patch adds the necessary changes so all_slaves_active would use the new bonding option API. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
24089ba1026a684d64bc0eeb6af634e26c9501c4 |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert queue_id to use the new option API This patch adds the necessary changes so queue_id would use the new bonding option API. Also move it to its own set function in bond_options.c and fix some style errors. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
d1fbd3ed9366904b58b1c0c30b22d51dc793de99 |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert active_slave to use the new option API This patch adds the necessary changes so active_slave would use the new bonding option API. Also some trivial/style fixes. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
0fff060877426f3faf6754c201e28cd5b34756c0 |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert use_carrier to use the new option API This patch adds the necessary changes so use_carrier would use the new bonding option API. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
388d3a6d4aa356b885bcd023c185060df9ea2484 |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert primary_reselect to use the new option API This patch adds the necessary changes so primary_reselect would use the new bonding option API. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
180222f08861d8206b3ff1c6392101e29d4ae161 |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert primary to use the new option API This patch adds the necessary changes so primary would use the new bonding option API. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
b98d9c66e1c3823c50a3cd5e8e59f12b97d7ba5d |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert miimon to use the new option API This patch adds the necessary changes so miimon would use the new bonding option API. The "default" definition has been removed as it was 0. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
ef56becbb37251f0371ad94210f50dc90e18830a |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert num_peer_notif to use the new option API This patch adds the necessary changes so num_peer_notif would use the new bonding option API. When the auto-sysfs generation is done an alias should be added for this option as there're currently 2 entries in sysfs for it. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
9e5f5eebe765b340af0318dba261e5de0f2aaf32 |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert ad_select to use the new option API This patch adds the necessary changes so ad_select would use the new bonding option API. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
633ddc9e9bafd168861dee1000b2c6ff725e85c5 |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert min_links to use the new option API This patch adds the necessary changes so min_links would use the new bonding option API. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
d3131de76b1b1a4d95f145846bd61f96e72f0411 |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert lacp_rate to use the new option API This patch adds the necessary changes so lacp_rate would use the new bonding option API. Also some trivial/style error fixes. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
e499461275023e20c4aecb6a546e7e213631b99f |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert updelay to use the new option API This patch adds the necessary changes so updelay would use the new bonding option API. Also some trivial style fixes. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
25a9b54a4b4a996e5a996c1e841c265d40db1d40 |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert downdelay to use the new option API This patch adds the necessary changes so downdelay would use the new bonding option API. Also some trivial style fixes. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
4fb0ef585eb2825ef4e542c2b1d302dc53f36860 |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert arp_ip_target to use the new option API This patch adds the necessary changes so arp_ip_target would use the new bonding option API. This option is an exception because of the way it's currently implemented that's why its netlink code is a bit different from the other options to keep the functionality as before and at the same time to have a single set function. This patch also fixes a few stylistic errors. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
7bdb04ed0dbf9f0e94110be43db4f8bb7df58de2 |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert arp_interval to use the new option API This patch adds the necessary changes so arp_interval would use the new bonding option API. The "default" definition has been removed as it was 0. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
1df6b6aa334c99b39f9366f4199b7f5e479a8899 |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert fail_over_mac to use the new option API This patch adds the necessary changes so fail_over_mac would use the new bonding option API. Also fixes a trivial copy/paste error in bond_check_params where the wrong variable was used for the error msg. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
edf36b24c58dbbd5f2e708096537bf0a88ffa477 |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert arp_all_targets to use the new option API This patch adds the necessary changes so arp_all_targets would use the new bonding option API. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
162288810c9ebd2efb79ee6dc364e266044cac9e |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert arp_validate to use the new option API This patch adds the necessary changes so arp_validate would use the new bonding option API. Also fix some trivial/style errors. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
a4b32ce7f891d507aa663bc78118ef267f0d6d4c |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert xmit_hash_policy to use the new option API This patch adds the necessary changes so xmit_hash_policy would use the new bonding option API. Also fix some trivial/style errors. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
aa59d8517d1017e571b803ba6302c4b693b324ab |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert packets_per_slave to use the new option API This patch adds the necessary changes so packets_per_slave would use the new bonding option API. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
2b3798d5e1377ce6c67993bb271754c9c5ab4833 |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: convert mode setting to use the new option API This patch makes the bond's mode setting use the new option API and adds support for dependency printing which relies on having an entry for the mode option in the bond_opts[] array. Also add the ability to print the mode name when mode dependency fails and fix some trivial/style errors. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
0911736245df19b423a3b156f6709e7bba48b18a |
|
22-Jan-2014 |
Nikolay Aleksandrov <nikolay@redhat.com> |
bonding: add infrastructure for an option API This patch adds the necessary basic infrastructure to support centralized and unified option manipulation API for the bonding. The new structure bond_option will be used to describe each option with its dependencies on modes which will be checked automatically thus removing a lot of duplicated code. Also automatic range checking is added for some options. Currently the option setting function requires RTNL to be acquired prior to calling it, since many options already rely on RTNL it seemed like the best choice to protect all against common race conditions. In order to add an option the following steps need to be done: 1. Add an entry BOND_OPT_<option> to bond_options.h so it gets a unique id and a bit corresponding to the id 2. Add a bond_option entry to the bond_opts[] array in bond_options.c which describes the option, its dependencies and its manipulation function 3. Add code to export the option through sysfs and/or as a module parameter (the sysfs export will be made automatically in the future) The options can have different flags set, currently the following are supported: BOND_OPTFLAG_NOSLAVES - require that the bond device has no slaves prior to setting the option BOND_OPTFLAG_IFDOWN - require that the bond device is down prior to setting the option BOND_OPTFLAG_RAWVAL - don't parse the value but return it raw for the option to parse There's a new value structure to describe different types of values which can have the following flags: BOND_VALFLAG_DEFAULT - marks the default option (permanent string alias to this option is "default") BOND_VALFLAG_MIN - the minimum value that this option can have BOND_VALFLAG_MAX - the maximum value that this option can have An example would be nice here, so if we have an option which can have the values "off"(2), "special"(4, default) and supports a range, say 16 - 32, it should be defined as follows: "off", 2, "special", 4, BOND_VALFLAG_DEFAULT, "rangemin", 16, BOND_VALFLAG_MIN, "rangemax", 32, BOND_VALFLAG_MAX So we have the valid intervals: [2, 2], [4, 4], [16, 32] Also the valid strings: "off" = 2, "special" and "default" = 4 "rangemin" = 16, "rangemax" = 32 BOND_VALFLAG_(MIN|MAX) can be used to specify a valid range for an option, if MIN is omitted then 0 is considered as a minimum. If an exact match is found in the values[] table it will be returned, otherwise the range is tried (if available). The option parameter passing is done by using a special structure called bond_opt_value which can take either a string or a value to parse. One of the bond_opt_init(val|str) macros should be used depending on which one does the user want to parse (string or value). Then a call to __bond_opt_set should be done under RTNL. Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
809fa972fd90ff27225294b17a027e908b2d7b7a |
|
22-Jan-2014 |
Hannes Frederic Sowa <hannes@stressinduktion.org> |
reciprocal_divide: update/correction of the algorithm Jakub Zawadzki noticed that some divisions by reciprocal_divide() were not correct [1][2], which he could also show with BPF code after divisions are transformed into reciprocal_value() for runtime invariance which can be passed to reciprocal_divide() later on; reverse in BPF dump ended up with a different, off-by-one K in some situations. This has been fixed by Eric Dumazet in commit aee636c4809fa5 ("bpf: do not use reciprocal divide"). This follow-up patch improves reciprocal_value() and reciprocal_divide() to work in all cases by using Granlund and Montgomery method, so that also future use is safe and without any non-obvious side-effects. Known problems with the old implementation were that division by 1 always returned 0 and some off-by-ones when the dividend and divisor where very large. This seemed to not be problematic with its current users, as far as we can tell. Eric Dumazet checked for the slab usage, we cannot surely say so in the case of flex_array. Still, in order to fix that, we propose an extension from the original implementation from commit 6a2d7a955d8d resp. [3][4], by using the algorithm proposed in "Division by Invariant Integers Using Multiplication" [5], Torbjörn Granlund and Peter L. Montgomery, that is, pseudocode for q = n/d where q, n, d is in u32 universe: 1) Initialization: int l = ceil(log_2 d) uword m' = floor((1<<32)*((1<<l)-d)/d)+1 int sh_1 = min(l,1) int sh_2 = max(l-1,0) 2) For q = n/d, all uword: uword t = (n*m')>>32 q = (t+((n-t)>>sh_1))>>sh_2 The assembler implementation from Agner Fog [6] also helped a lot while implementing. We have tested the implementation on x86_64, ppc64, i686, s390x; on x86_64/haswell we're still half the latency compared to normal divide. Joint work with Daniel Borkmann. [1] http://www.wireshark.org/~darkjames/reciprocal-buggy.c [2] http://www.wireshark.org/~darkjames/set-and-dump-filter-k-bug.c [3] https://gmplib.org/~tege/division-paper.pdf [4] http://homepage.cs.uiowa.edu/~jones/bcd/divide.html [5] http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.1.2556 [6] http://www.agner.org/optimize/asmlib.zip Reported-by: Jakub Zawadzki <darkjames-ws@darkjames.pl> Cc: Eric Dumazet <eric.dumazet@gmail.com> Cc: Austin S Hemmelgarn <ahferroin7@gmail.com> Cc: linux-kernel@vger.kernel.org Cc: Jesse Gross <jesse@nicira.com> Cc: Jamal Hadi Salim <jhs@mojatatu.com> Cc: Stephen Hemminger <stephen@networkplumber.org> Cc: Matt Mackall <mpm@selenic.com> Cc: Pekka Enberg <penberg@kernel.org> Cc: Christoph Lameter <cl@linux-foundation.org> Cc: Andy Gospodarek <andy@greyhouse.net> Cc: Veaceslav Falico <vfalico@redhat.com> Cc: Jay Vosburgh <fubar@us.ibm.com> Cc: Jakub Zawadzki <darkjames-ws@darkjames.pl> Signed-off-by: Daniel Borkmann <dborkman@redhat.com> Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Signed-off-by: David S. Miller <davem@davemloft.net>
|
3243c47b1abaa2653c62364f78212400556164c6 |
|
03-Jan-2014 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add bounds checking for tbl params Add bounds checking for params defined with parm tbl. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
ec029fac3e96980fa8f6f81b8327787a9600dfaa |
|
03-Jan-2014 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add ad_select attribute netlink support Add IFLA_BOND_AD_SELECT to allow get/set of bonding parameter ad_select via netlink. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
998e40bbf8f0e10b5d84107afc61e29dbc8d2de4 |
|
03-Jan-2014 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add lacp_rate attribute netlink support Add IFLA_BOND_AD_LACP_RATE to allow get/set of bonding parameter lacp_rate via netlink. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
c13ab3ff176eab78b6ee93817484584af5807cf2 |
|
18-Dec-2013 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add packets_per_slave attribute netlink support Add IFLA_BOND_PACKETS_PER_SLAVE to allow get/set of bonding parameter packets_per_slave via netlink. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
|
8d836d092ed7b77d13ac1108399165ee7de7463f |
|
18-Dec-2013 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add lp_interval attribute netlink support Add IFLA_BOND_LP_INTERVAL to allow get/set of bonding parameter lp_interval via netlink. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
|
7d1010082785b2020b1e2e1211b76209976a33df |
|
18-Dec-2013 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add min_links attribute netlink support Add IFLA_BOND_MIN_LINKS to allow get/set of bonding parameter min_links via netlink. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
|
1cc0b1e30c662d84a89690f42826cf49e2278b97 |
|
18-Dec-2013 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add all_slaves_active attribute netlink support Add IFLA_BOND_ALL_SLAVES_ACTIVE to allow get/set of bonding parameter all_slaves_active via netlink. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
|
2c9839c143bbc8c6612f56351dae8d57111aee37 |
|
18-Dec-2013 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add num_grat_arp attribute netlink support Add IFLA_BOND_NUM_PEER_NOTIF to allow get/set of bonding parameter num_grat_arp via netlink. Bonding parameter num_unsol_na is synonymous with num_grat_arp, so add only one netlink attribute to represent both bonding parameters. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
|
d8838de70adc64e20db531333e035aacd5910fca |
|
16-Dec-2013 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add resend_igmp attribute netlink support Add IFLA_BOND_RESEND_IGMP to allow get/set of bonding parameter resend_igmp via netlink. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
f70161c67231f54f784529d7447ce4386d258b7a |
|
16-Dec-2013 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add xmit_hash_policy attribute netlink support Add IFLA_BOND_XMIT_HASH_POLICY to allow get/set of bonding parameter xmit_hash_policy via netlink. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
89901972de4c00e74e56529804493734d77ee3d3 |
|
16-Dec-2013 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add fail_over_mac attribute netlink support Add IFLA_BOND_FAIL_OVER_MAC to allow get/set of bonding parameter fail_over_mac via netlink. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
8a41ae4496e534a8b68d9bc3c79113e16d1fcd4c |
|
16-Dec-2013 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add primary_select attribute netlink support Add IFLA_BOND_PRIMARY_SELECT to allow get/set of bonding parameter primary_select via netlink. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
0a98a0d12c40f9354b942325045cae123d594341 |
|
16-Dec-2013 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add primary attribute netlink support Add IFLA_BOND_PRIMARY to allow get/set of bonding parameter primary via netlink. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
4e789fc1a62d4c25726ee053044399d71471fe2f |
|
13-Dec-2013 |
dingtianhong <dingtianhong@huawei.com> |
bonding: remove unwanted lock for bond_option_active_slave_set() The bond_option_active_slave_set() is always called in RTNL, the RTNL could protect bond slave list, so remove the unwanted bond lock. Suggested-by: Jay Vosburgh <fubar@us.ibm.com> Suggested-by: Veaceslav Falico <vfalico@redhat.com> Signed-off-by: Ding Tianhong <dingtianhong@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
d5c842544342fc3f13774ffc5581d4dd3975059b |
|
12-Dec-2013 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add arp_all_targets netlink support Add IFLA_BOND_ARP_ALL_TARGETS to allow get/set of bonding parameter arp_all_targets via netlink. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
|
29c4948293bfc426e52a921f4259eb3676961e81 |
|
12-Dec-2013 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add arp_validate netlink support Add IFLA_BOND_ARP_VALIDATE to allow get/set of bonding parameter arp_validate via netlink. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
|
7f28fa10e21376a10d3b9faad5836869465cc376 |
|
12-Dec-2013 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add arp_ip_target netlink support Add IFLA_BOND_ARP_IP_TARGET to allow get/set of bonding parameter arp_ip_target via netlink. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
|
06151dbcf3f76edbe900138cde9e862f429918c9 |
|
12-Dec-2013 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add arp_interval netlink support Add IFLA_BOND_ARP_INTERVAL to allow get/set of bonding parameter arp_interval via netlink. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
|
9f53e14e86c46a2300f17309f6308ad0dfbb53ff |
|
12-Dec-2013 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add use_carrier netlink support Add IFLA_BOND_USE_CARRIER to allow get/set of bonding parameter use_carrier via netlink. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
|
c7461f9bf5a11bf88fdbd05b26c6d55b77dcd46d |
|
12-Dec-2013 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add downdelay netlink support Add IFLA_BOND_DOWNDELAY to allow get/set of bonding parameter downdelay via netlink. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
|
25852e29dfc58d249ad0db235996b36c33db6d61 |
|
12-Dec-2013 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add updelay netlink support Add IFLA_BOND_UPDELAY to allow get/set of bonding parameter updelay via netlink. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
|
eecdaa6e20284efbe9e76eebd44eac2b22f7b5d7 |
|
12-Dec-2013 |
sfeldma@cumulusnetworks.com <sfeldma@cumulusnetworks.com> |
bonding: add miimon netlink support Add IFLA_BOND_MIIMON to allow get/set of bonding parameter miimon via netlink. Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
|
fe9d04afe9bee0ec37a9724937443b2c0e39ce4b |
|
22-Nov-2013 |
dingtianhong <dingtianhong@huawei.com> |
bonding: disable arp and enable mii monitoring when bond change to no uses arp mode Because the ARP monitoring is not support for 802.3ad, but I still could change the mode to 802.3ad from ab mode while ARP monitoring is running, it is incorrect. So add a check for 802.3ad in bonding_store_mode to fix the problem, and make a new macro BOND_NO_USES_ARP() to simplify the code. v2: according to the Dan Williams's suggestion, bond mode is the most important bond option, it should override any of the other sub-options. So when the mode is changed, the conficting values should be cleared or reset, otherwise the user has to duplicate more operations to modify the logic. I disable the arp and enable mii monitoring when the bond mode is changed to AB, TB and 8023AD if the arp interval is true. v3: according to the Nik's suggestion, the default value of miimon should need a name, there is several place to use it, and the bond_store_arp_interval() could use micro BOND_NO_USES_ARP to make the code more simpify. Suggested-by: Dan Williams <dcbw@redhat.com> Suggested-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: Ding Tianhong <dingtianhong@huawei.com> Reviewed-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
752d48b52ec929c6fd6ccd7ea9728571830fdd49 |
|
18-Oct-2013 |
Jiri Pirko <jiri@resnulli.us> |
bonding: move active_slave getting into separate function Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
|
d9e32b21cb394c0816f206539b8c7e9c023db332 |
|
18-Oct-2013 |
Jiri Pirko <jiri@resnulli.us> |
bonding: move active_slave setting into separate function Do a bit of refactoring on the way. Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
|
72be35fee6eda2fad7122f7f0c959effa3b2b791 |
|
18-Oct-2013 |
Jiri Pirko <jiri@resnulli.us> |
bonding: move mode setting into separate function Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
|