Hi Guus,

You did a fantastic work on "ifenslave" (interface to bonding capabilities in 
kernel) -- thank you.
This new and experimental software has only potential to become an alternative 
to "ifenslave" one day.

> >             URL: https://libteam.org
> 
> That URL does not work, use either http://libteam.org/ or
> https://fedorahosted.org/libteam/.

Thanks for correction. (It's a bit strange as I was copy-pasting from my 
browser' address field...)


> Dramatically different? Many advantages? That tells me nothing. Instead
> please just give a list of *user visible* advantages that libteam has over
> bonding.

Why focus only on user visible changes? Upstream is trying to make 
bonding/teaming safer, easier and more maintainable by moving it to user 
space.

Perhaps the following links will answer your question better than me:

        http://www.pirko.cz/teamdev.pp.pdf
        https://fedorahosted.org/libteam/wiki/CompareToBonding

To provide summary here I quote from above documents:

 Following table compares Bonding vs. Team features:
    https://fedorahosted.org/libteam/wiki/CompareToBonding

[Feature]                                                                       
[Bonding]               [Team]
 broadcast TX policy                                             Yes            
         Yes
 round-robin TX policy                                           Yes            
         Yes
 active-backup TX policy                                         Yes            
 Yes
 LACP (802.3ad) support                                  Yes             Yes
 Hash-based TX policy                                            Yes            
 Yes
 User can set hash function                                      No             
         Yes
 TX load-balancing support (TLB)                         Yes             Yes
 RX load-balancing support (ALB)                         Yes             Yes 
(Wip)
 LACP hash port select                                           Yes            
 Yes
 load-balancing for LACP support                         No                     
 Yes
 Ethtool link monitoring                                         Yes            
 Yes
 ARP link monitoring                                             Yes            
 Yes
 NS/NA (IPV6) link monitoring                            No                     
 Yes
 ports up/down delays                                            Yes            
 Yes
 port priorities and stickiness ("primary" option enhancement)  No              
 Yes
 separate per-port link monitoring setup                 No                     
 Yes
 multiple link monitoring setup                          Limited                
 Yes
 lockless TX/RX path                                             No (rwlock)    
 Yes (RCU)
 VLAN support                                                            Yes    
                 Yes
 user-space runtime control                                      Limited        
         Full
 Logic in user-space                                             No             
         Yes
 Extensibility                                                   Hard           
 Easy
 Modular design                                                  No             
         Yes
 Performance overhead                                            Low            
         Very Low
 D-Bus interface                                                         No     
                 Yes

---

## Bonding driver

 *  Introduced in 2000
 *  Huge and messy, therefore buggy
 *  All logic is in kernel (monolith)
 *  Does what it should not do (ARP link validation, 802.3ad, ...)
 *  Too many config interfaces
 *  12200 lines
 *  Not fixable due to backward compatibility concerns

---

## Team device overview

 *  Team is coming with modular approach
 *  User-space based controlling
 *  Minimum of the code is in kernel
    * "Puppet"
 *  Control logic is implemented in user-space daemon
    * "Puppeteer"
 *  Enslaved network interfaces are called "ports"

 *  Only necessary fast-path code. (1400 lines)
 *  Netlink communication (generic Netlink). (600 lines)
 *  Team "modes"
    * One mode, one kernel module
    * Determine basic low-level behaviour
    * Well defined API between team core and mode code
    * round-robin, active-backup, ... easy to add more

### Advantages comparing to bonding

 *  Extensibility. Anyone can easily add features/change behaviour
 *  Better system stability (daemon crash is always better than
    kernel panic/memory corruption etc.)
 *  Better debugging posibilities.

The goal of team device is to supersede bonding functionality
and then kill it eventually.

-- 
Regards,
Dmitry.

P.S. I hope that answers your questions. Please let me know if you think 
teaming do not worth time spent on it.


-- 
To UNSUBSCRIBE, email to debian-wnpp-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201212140934.17408.only...@member.fsf.org

Reply via email to