From Fedora Project Wiki
m (Easy fix in feature name)
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Network Team driver =
= Network team softdevice Linux driver =


== Summary ==
== Summary ==
<!-- A sentence or two summarizing what this feature is and what it will do.  This information is used for the overall feature summary page for each release. -->
<!-- A sentence or two summarizing what this feature is and what it will do.  This information is used for the overall feature summary page for each release. -->
Network Team driver allows multiple network interfaces to be teamed together and act like a single one.
Network team softdevice Linux driver allows multiple network interfaces to be teamed together and act like a single one.


== Owner ==
== Owner ==
Line 12: Line 12:
== Current status ==
== Current status ==
* Targeted release: Fedora 18
* Targeted release: Fedora 18
* Last updated: 2012-07-18
* Last updated: 2012-10-04
* Percentage of completion: 90%
* Percentage of completion: 100%


<!-- CHANGE THE "FedoraVersion" TEMPLATES ABOVE TO PLAIN NUMBERS WHEN YOU COMPLETE YOUR PAGE. -->
<!-- CHANGE THE "FedoraVersion" TEMPLATES ABOVE TO PLAIN NUMBERS WHEN YOU COMPLETE YOUR PAGE. -->
Line 20: Line 20:
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->


The purpose of the Team driver is to provide a mechanism to team multiple NICs (ports) into one logical one (teamdev) at L2 layer. The process is called "channel bonding", "Ethernet bonding", "channel teaming", "link aggregation", etc. This is already implemented in the Linux kernel by the bonding driver.
The purpose of the team softdevice Linux driver is to provide a mechanism to team multiple NICs (ports) into one logical one (teamdev) at L2 layer. The process is called "channel bonding", "Ethernet bonding", "channel teaming", "link aggregation", etc. This is already implemented in the Linux kernel by the bonding driver.


One thing to note is that Team driver project does try to provide the similar functionality as the bonding driver, however architecturally it is quite different from bonding driver. Team driver is modular, userspace driven, very lean and efficient, and it does have some distinct advantages over bonding. The way Team is configured differs dramatically from the way bonding is.
One thing to note is that team softdevice Linux driver project does try to provide the similar functionality as the bonding driver, however architecturally it is quite different from bonding driver. Team softdevice Linux driver is modular, userspace driven, very lean and efficient, and it does have some distinct advantages over bonding. The way team is configured differs dramatically from the way bonding is.


This feature consists of two parts:
This feature consists of two parts:
* kernel module (modules). They are already part of Fedora 18 kernel package.
* kernel module (modules). They are already part of Fedora 18 kernel package.
* userspace library (libteam package) and daemon (teamd package).
* userspace library (libteam package) and daemon (teamd package).
Although there is support for team softdevice Linux driver in initscripts, the plan is to integrate team devices handling into Network Manager as well, probably for Fedora 19.


== Benefit to Fedora ==
== Benefit to Fedora ==
<!-- What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new feature, what capabilities does it bring? Why will Fedora become a better distribution or project because of this feature?-->
<!-- What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new feature, what capabilities does it bring? Why will Fedora become a better distribution or project because of this feature?-->


Team Driver provides userspace driven NIC Teaming. In addition to that there are some new features in Team Driver that are not available in bonding. For example:
Team softdevice Linux driver provides userspace driven NIC Teaming. In addition to that there are some new features in team softdevice Linux driver that are not available in bonding. For example:
* load balancing for LACP
* load balancing for LACP
* separate per-port link monitoring setup
* separate per-port link monitoring setup
Line 40: Line 42:
<!-- What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->


Team driver is quite isolated, and does not impact other areas. It does not touch any existing things.
Team softdevice Linux driver is quite isolated, and does not impact other areas. It does not touch any existing things.


== How To Test ==
== How To Test ==
Line 68: Line 70:
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
     link/ether 52:54:00:b7:cc:fb brd ff:ff:ff:ff:ff:ff
     link/ether 52:54:00:b7:cc:fb brd ff:ff:ff:ff:ff:ff
test2:~# cat /usr/share/doc/
Display all 194 possibilities? (y or n)
test2:~# cat /usr/share/doc/teamd-0.1/example_configs/activebackup_ethtool_1.conf  
test2:~# cat /usr/share/doc/teamd-0.1/example_configs/activebackup_ethtool_1.conf  
{
{
Line 145: Line 145:
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
Fedora 18 includes Team Driver which provides a possibility to team multiple network interfaces together so they act like a single network interface. This extends teaming possibilities provided by existing bonding driver. It also provides userspace driven, modular alternative to bonding driver.
Fedora 18 includes team softdevice Linux driver which provides a possibility to team multiple network interfaces together so they act like a single network interface. This extends teaming possibilities provided by existing bonding driver. It also provides userspace driven, modular alternative to bonding driver.


== Comments and Discussion ==
== Comments and Discussion ==
* See [[Talk:Features/TeamDriver]]  <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
* See [[Talk:Features/Team]]  <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->




[[Category:FeatureReadyForWrangler]]
[[Category:FeatureAcceptedF18]]
<!-- When your feature page is completed and ready for review -->
<!-- When your feature page is completed and ready for review -->
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->

Latest revision as of 08:38, 17 March 2017

Network team softdevice Linux driver

Summary

Network team softdevice Linux driver allows multiple network interfaces to be teamed together and act like a single one.

Owner

Current status

  • Targeted release: Fedora 18
  • Last updated: 2012-10-04
  • Percentage of completion: 100%


Detailed Description

The purpose of the team softdevice Linux driver is to provide a mechanism to team multiple NICs (ports) into one logical one (teamdev) at L2 layer. The process is called "channel bonding", "Ethernet bonding", "channel teaming", "link aggregation", etc. This is already implemented in the Linux kernel by the bonding driver.

One thing to note is that team softdevice Linux driver project does try to provide the similar functionality as the bonding driver, however architecturally it is quite different from bonding driver. Team softdevice Linux driver is modular, userspace driven, very lean and efficient, and it does have some distinct advantages over bonding. The way team is configured differs dramatically from the way bonding is.

This feature consists of two parts:

  • kernel module (modules). They are already part of Fedora 18 kernel package.
  • userspace library (libteam package) and daemon (teamd package).

Although there is support for team softdevice Linux driver in initscripts, the plan is to integrate team devices handling into Network Manager as well, probably for Fedora 19.

Benefit to Fedora

Team softdevice Linux driver provides userspace driven NIC Teaming. In addition to that there are some new features in team softdevice Linux driver that are not available in bonding. For example:

  • load balancing for LACP
  • separate per-port link monitoring setup
  • port priorities and stickiness
  • IPv6 Neighbor Solicitation/Neighbor Advertisement link monitoring

Scope

Team softdevice Linux driver is quite isolated, and does not impact other areas. It does not touch any existing things.

How To Test

Install "teamd" package first. You need two network interfaces for this basic test. In case their names are not "eth1" and "eth2", please adjust the config file.

test2:~# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:1a:db:bb brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
    link/ether 52:54:00:99:bb:27 brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
    link/ether 52:54:00:b7:cc:fb brd ff:ff:ff:ff:ff:ff
test2:~# cat /usr/share/doc/teamd-0.1/example_configs/activebackup_ethtool_1.conf 
{
        "device":       "team0",
        "runner":       {"name": "activebackup"},
        "link_watch":   {"name": "ethtool"},
        "ports":        {
                "eth1": {
                        "prio": -10,
                        "sticky": true
                },
                "eth2": {
                        "prio": 100
                }
        }
}
test2:~# teamd -f /usr/share/doc/teamd-0.1/example_configs/activebackup_ethtool_1.conf -d
test2:~# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:1a:db:bb brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team0 state UP mode DEFAULT qlen 1000
    link/ether ea:8e:85:d3:95:5d brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team0 state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:b7:cc:fb brd ff:ff:ff:ff:ff:ff
5: team0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT 
    link/ether ea:8e:85:d3:95:5d brd ff:ff:ff:ff:ff:ff
test2:~# ip addr add 192.168.23.2/24 dev team0
test2:~# ip link set team0 up
test2:~# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:1a:db:bb brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team0 state UP mode DEFAULT qlen 1000
    link/ether ea:8e:85:d3:95:5d brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team0 state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:b7:cc:fb brd ff:ff:ff:ff:ff:ff
5: team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT 
    link/ether ea:8e:85:d3:95:5d brd ff:ff:ff:ff:ff:ff
test2:~# teamd -f /usr/share/doc/teamd-0.1/example_configs/activebackup_ethtool_1.conf -k
test2:~# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:1a:db:bb brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
    link/ether 52:54:00:99:bb:27 brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
    link/ether 52:54:00:b7:cc:fb brd ff:ff:ff:ff:ff:ff

User Experience

User will not experience any difference comparing to existing state. Only there is new possibility to create Team devices.

Dependencies

No dependencies.

Contingency Plan

Currently, the feature is fully functional. Only some little things and tweaks are going to go in for Fedora 18.

Documentation

Release Notes

Fedora 18 includes team softdevice Linux driver which provides a possibility to team multiple network interfaces together so they act like a single network interface. This extends teaming possibilities provided by existing bonding driver. It also provides userspace driven, modular alternative to bonding driver.

Comments and Discussion