Loading Documentation/networking/bonding.txt +67 −29 Original line number Original line Diff line number Diff line Loading @@ -289,35 +289,73 @@ downdelay fail_over_mac fail_over_mac Specifies whether active-backup mode should set all slaves to Specifies whether active-backup mode should set all slaves to the same MAC address (the traditional behavior), or, when the same MAC address at enslavement (the traditional enabled, change the bond's MAC address when changing the behavior), or, when enabled, perform special handling of the active interface (i.e., fail over the MAC address itself). bond's MAC address in accordance with the selected policy. Fail over MAC is useful for devices that cannot ever alter Possible values are: their MAC address, or for devices that refuse incoming broadcasts with their own source MAC (which interferes with none or 0 the ARP monitor). This setting disables fail_over_mac, and causes The down side of fail over MAC is that every device on the bonding to set all slaves of an active-backup bond to network must be updated via gratuitous ARP, vs. just updating the same MAC address at enslavement time. This is the a switch or set of switches (which often takes place for any default. traffic, not just ARP traffic, if the switch snoops incoming traffic to update its tables) for the traditional method. If active or 1 the gratuitous ARP is lost, communication may be disrupted. The "active" fail_over_mac policy indicates that the When fail over MAC is used in conjuction with the mii monitor, MAC address of the bond should always be the MAC devices which assert link up prior to being able to actually address of the currently active slave. The MAC transmit and receive are particularly susecptible to loss of address of the slaves is not changed; instead, the MAC the gratuitous ARP, and an appropriate updelay setting may be address of the bond changes during a failover. required. This policy is useful for devices that cannot ever A value of 0 disables fail over MAC, and is the default. A alter their MAC address, or for devices that refuse value of 1 enables fail over MAC. This option is enabled incoming broadcasts with their own source MAC (which automatically if the first slave added cannot change its MAC interferes with the ARP monitor). address. This option may be modified via sysfs only when no slaves are present in the bond. The down side of this policy is that every device on the network must be updated via gratuitous ARP, This option was added in bonding version 3.2.0. vs. just updating a switch or set of switches (which often takes place for any traffic, not just ARP traffic, if the switch snoops incoming traffic to update its tables) for the traditional method. If the gratuitous ARP is lost, communication may be disrupted. When this policy is used in conjuction with the mii monitor, devices which assert link up prior to being able to actually transmit and receive are particularly susecptible to loss of the gratuitous ARP, and an appropriate updelay setting may be required. follow or 2 The "follow" fail_over_mac policy causes the MAC address of the bond to be selected normally (normally the MAC address of the first slave added to the bond). However, the second and subsequent slaves are not set to this MAC address while they are in a backup role; a slave is programmed with the bond's MAC address at failover time (and the formerly active slave receives the newly active slave's MAC address). This policy is useful for multiport devices that either become confused or incur a performance penalty when multiple ports are programmed with the same MAC address. The default policy is none, unless the first slave cannot change its MAC address, in which case the active policy is selected by default. This option may be modified via sysfs only when no slaves are present in the bond. This option was added in bonding version 3.2.0. The "follow" policy was added in bonding version 3.3.0. lacp_rate lacp_rate Loading drivers/net/3c509.c +7 −8 Original line number Original line Diff line number Diff line Loading @@ -413,7 +413,7 @@ static int __devinit el3_pnp_probe(struct pnp_dev *pdev, { { short i; short i; int ioaddr, irq, if_port; int ioaddr, irq, if_port; u16 phys_addr[3]; __be16 phys_addr[3]; struct net_device *dev = NULL; struct net_device *dev = NULL; int err; int err; Loading Loading @@ -605,7 +605,7 @@ static int __init el3_mca_probe(struct device *device) short i; short i; int ioaddr, irq, if_port; int ioaddr, irq, if_port; u16 phys_addr[3]; __be16 phys_addr[3]; struct net_device *dev = NULL; struct net_device *dev = NULL; u_char pos4, pos5; u_char pos4, pos5; struct mca_device *mdev = to_mca_device(device); struct mca_device *mdev = to_mca_device(device); Loading Loading @@ -635,9 +635,8 @@ static int __init el3_mca_probe(struct device *device) printk(KERN_DEBUG "3c529: irq %d ioaddr 0x%x ifport %d\n", irq, ioaddr, if_port); printk(KERN_DEBUG "3c529: irq %d ioaddr 0x%x ifport %d\n", irq, ioaddr, if_port); } } EL3WINDOW(0); EL3WINDOW(0); for (i = 0; i < 3; i++) { for (i = 0; i < 3; i++) phys_addr[i] = htons(read_eeprom(ioaddr, i)); phys_addr[i] = htons(read_eeprom(ioaddr, i)); } dev = alloc_etherdev(sizeof (struct el3_private)); dev = alloc_etherdev(sizeof (struct el3_private)); if (dev == NULL) { if (dev == NULL) { Loading Loading @@ -668,7 +667,7 @@ static int __init el3_eisa_probe (struct device *device) { { short i; short i; int ioaddr, irq, if_port; int ioaddr, irq, if_port; u16 phys_addr[3]; __be16 phys_addr[3]; struct net_device *dev = NULL; struct net_device *dev = NULL; struct eisa_device *edev; struct eisa_device *edev; int err; int err; Loading drivers/net/3c515.c +4 −0 Original line number Original line Diff line number Diff line Loading @@ -572,12 +572,16 @@ static int corkscrew_setup(struct net_device *dev, int ioaddr, int irq; int irq; DECLARE_MAC_BUF(mac); DECLARE_MAC_BUF(mac); #ifdef __ISAPNP__ if (idev) { if (idev) { irq = pnp_irq(idev, 0); irq = pnp_irq(idev, 0); vp->dev = &idev->dev; vp->dev = &idev->dev; } else { } else { irq = inw(ioaddr + 0x2002) & 15; irq = inw(ioaddr + 0x2002) & 15; } } #else irq = inw(ioaddr + 0x2002) & 15; #endif dev->base_addr = ioaddr; dev->base_addr = ioaddr; dev->irq = irq; dev->irq = irq; Loading drivers/net/Kconfig +1 −0 Original line number Original line Diff line number Diff line Loading @@ -2410,6 +2410,7 @@ config CHELSIO_T3 tristate "Chelsio Communications T3 10Gb Ethernet support" tristate "Chelsio Communications T3 10Gb Ethernet support" depends on PCI depends on PCI select FW_LOADER select FW_LOADER select INET_LRO help help This driver supports Chelsio T3-based gigabit and 10Gb Ethernet This driver supports Chelsio T3-based gigabit and 10Gb Ethernet adapters. adapters. Loading drivers/net/atlx/atl1.c +3 −2 Original line number Original line Diff line number Diff line Loading @@ -1876,7 +1876,8 @@ static u16 atl1_alloc_rx_buffers(struct atl1_adapter *adapter) rfd_desc = ATL1_RFD_DESC(rfd_ring, rfd_next_to_use); rfd_desc = ATL1_RFD_DESC(rfd_ring, rfd_next_to_use); skb = dev_alloc_skb(adapter->rx_buffer_len + NET_IP_ALIGN); skb = netdev_alloc_skb(adapter->netdev, adapter->rx_buffer_len + NET_IP_ALIGN); if (unlikely(!skb)) { if (unlikely(!skb)) { /* Better luck next round */ /* Better luck next round */ adapter->net_stats.rx_dropped++; adapter->net_stats.rx_dropped++; Loading Loading @@ -2135,7 +2136,7 @@ static int atl1_tso(struct atl1_adapter *adapter, struct sk_buff *skb, return -1; return -1; } } if (skb->protocol == ntohs(ETH_P_IP)) { if (skb->protocol == htons(ETH_P_IP)) { struct iphdr *iph = ip_hdr(skb); struct iphdr *iph = ip_hdr(skb); real_len = (((unsigned char *)iph - skb->data) + real_len = (((unsigned char *)iph - skb->data) + Loading Loading
Documentation/networking/bonding.txt +67 −29 Original line number Original line Diff line number Diff line Loading @@ -289,35 +289,73 @@ downdelay fail_over_mac fail_over_mac Specifies whether active-backup mode should set all slaves to Specifies whether active-backup mode should set all slaves to the same MAC address (the traditional behavior), or, when the same MAC address at enslavement (the traditional enabled, change the bond's MAC address when changing the behavior), or, when enabled, perform special handling of the active interface (i.e., fail over the MAC address itself). bond's MAC address in accordance with the selected policy. Fail over MAC is useful for devices that cannot ever alter Possible values are: their MAC address, or for devices that refuse incoming broadcasts with their own source MAC (which interferes with none or 0 the ARP monitor). This setting disables fail_over_mac, and causes The down side of fail over MAC is that every device on the bonding to set all slaves of an active-backup bond to network must be updated via gratuitous ARP, vs. just updating the same MAC address at enslavement time. This is the a switch or set of switches (which often takes place for any default. traffic, not just ARP traffic, if the switch snoops incoming traffic to update its tables) for the traditional method. If active or 1 the gratuitous ARP is lost, communication may be disrupted. The "active" fail_over_mac policy indicates that the When fail over MAC is used in conjuction with the mii monitor, MAC address of the bond should always be the MAC devices which assert link up prior to being able to actually address of the currently active slave. The MAC transmit and receive are particularly susecptible to loss of address of the slaves is not changed; instead, the MAC the gratuitous ARP, and an appropriate updelay setting may be address of the bond changes during a failover. required. This policy is useful for devices that cannot ever A value of 0 disables fail over MAC, and is the default. A alter their MAC address, or for devices that refuse value of 1 enables fail over MAC. This option is enabled incoming broadcasts with their own source MAC (which automatically if the first slave added cannot change its MAC interferes with the ARP monitor). address. This option may be modified via sysfs only when no slaves are present in the bond. The down side of this policy is that every device on the network must be updated via gratuitous ARP, This option was added in bonding version 3.2.0. vs. just updating a switch or set of switches (which often takes place for any traffic, not just ARP traffic, if the switch snoops incoming traffic to update its tables) for the traditional method. If the gratuitous ARP is lost, communication may be disrupted. When this policy is used in conjuction with the mii monitor, devices which assert link up prior to being able to actually transmit and receive are particularly susecptible to loss of the gratuitous ARP, and an appropriate updelay setting may be required. follow or 2 The "follow" fail_over_mac policy causes the MAC address of the bond to be selected normally (normally the MAC address of the first slave added to the bond). However, the second and subsequent slaves are not set to this MAC address while they are in a backup role; a slave is programmed with the bond's MAC address at failover time (and the formerly active slave receives the newly active slave's MAC address). This policy is useful for multiport devices that either become confused or incur a performance penalty when multiple ports are programmed with the same MAC address. The default policy is none, unless the first slave cannot change its MAC address, in which case the active policy is selected by default. This option may be modified via sysfs only when no slaves are present in the bond. This option was added in bonding version 3.2.0. The "follow" policy was added in bonding version 3.3.0. lacp_rate lacp_rate Loading
drivers/net/3c509.c +7 −8 Original line number Original line Diff line number Diff line Loading @@ -413,7 +413,7 @@ static int __devinit el3_pnp_probe(struct pnp_dev *pdev, { { short i; short i; int ioaddr, irq, if_port; int ioaddr, irq, if_port; u16 phys_addr[3]; __be16 phys_addr[3]; struct net_device *dev = NULL; struct net_device *dev = NULL; int err; int err; Loading Loading @@ -605,7 +605,7 @@ static int __init el3_mca_probe(struct device *device) short i; short i; int ioaddr, irq, if_port; int ioaddr, irq, if_port; u16 phys_addr[3]; __be16 phys_addr[3]; struct net_device *dev = NULL; struct net_device *dev = NULL; u_char pos4, pos5; u_char pos4, pos5; struct mca_device *mdev = to_mca_device(device); struct mca_device *mdev = to_mca_device(device); Loading Loading @@ -635,9 +635,8 @@ static int __init el3_mca_probe(struct device *device) printk(KERN_DEBUG "3c529: irq %d ioaddr 0x%x ifport %d\n", irq, ioaddr, if_port); printk(KERN_DEBUG "3c529: irq %d ioaddr 0x%x ifport %d\n", irq, ioaddr, if_port); } } EL3WINDOW(0); EL3WINDOW(0); for (i = 0; i < 3; i++) { for (i = 0; i < 3; i++) phys_addr[i] = htons(read_eeprom(ioaddr, i)); phys_addr[i] = htons(read_eeprom(ioaddr, i)); } dev = alloc_etherdev(sizeof (struct el3_private)); dev = alloc_etherdev(sizeof (struct el3_private)); if (dev == NULL) { if (dev == NULL) { Loading Loading @@ -668,7 +667,7 @@ static int __init el3_eisa_probe (struct device *device) { { short i; short i; int ioaddr, irq, if_port; int ioaddr, irq, if_port; u16 phys_addr[3]; __be16 phys_addr[3]; struct net_device *dev = NULL; struct net_device *dev = NULL; struct eisa_device *edev; struct eisa_device *edev; int err; int err; Loading
drivers/net/3c515.c +4 −0 Original line number Original line Diff line number Diff line Loading @@ -572,12 +572,16 @@ static int corkscrew_setup(struct net_device *dev, int ioaddr, int irq; int irq; DECLARE_MAC_BUF(mac); DECLARE_MAC_BUF(mac); #ifdef __ISAPNP__ if (idev) { if (idev) { irq = pnp_irq(idev, 0); irq = pnp_irq(idev, 0); vp->dev = &idev->dev; vp->dev = &idev->dev; } else { } else { irq = inw(ioaddr + 0x2002) & 15; irq = inw(ioaddr + 0x2002) & 15; } } #else irq = inw(ioaddr + 0x2002) & 15; #endif dev->base_addr = ioaddr; dev->base_addr = ioaddr; dev->irq = irq; dev->irq = irq; Loading
drivers/net/Kconfig +1 −0 Original line number Original line Diff line number Diff line Loading @@ -2410,6 +2410,7 @@ config CHELSIO_T3 tristate "Chelsio Communications T3 10Gb Ethernet support" tristate "Chelsio Communications T3 10Gb Ethernet support" depends on PCI depends on PCI select FW_LOADER select FW_LOADER select INET_LRO help help This driver supports Chelsio T3-based gigabit and 10Gb Ethernet This driver supports Chelsio T3-based gigabit and 10Gb Ethernet adapters. adapters. Loading
drivers/net/atlx/atl1.c +3 −2 Original line number Original line Diff line number Diff line Loading @@ -1876,7 +1876,8 @@ static u16 atl1_alloc_rx_buffers(struct atl1_adapter *adapter) rfd_desc = ATL1_RFD_DESC(rfd_ring, rfd_next_to_use); rfd_desc = ATL1_RFD_DESC(rfd_ring, rfd_next_to_use); skb = dev_alloc_skb(adapter->rx_buffer_len + NET_IP_ALIGN); skb = netdev_alloc_skb(adapter->netdev, adapter->rx_buffer_len + NET_IP_ALIGN); if (unlikely(!skb)) { if (unlikely(!skb)) { /* Better luck next round */ /* Better luck next round */ adapter->net_stats.rx_dropped++; adapter->net_stats.rx_dropped++; Loading Loading @@ -2135,7 +2136,7 @@ static int atl1_tso(struct atl1_adapter *adapter, struct sk_buff *skb, return -1; return -1; } } if (skb->protocol == ntohs(ETH_P_IP)) { if (skb->protocol == htons(ETH_P_IP)) { struct iphdr *iph = ip_hdr(skb); struct iphdr *iph = ip_hdr(skb); real_len = (((unsigned char *)iph - skb->data) + real_len = (((unsigned char *)iph - skb->data) + Loading