summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* drivers/net: delete old x86 variant of the seeq8005 driverPaul Gortmaker2013-01-225-921/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The last update to the Ethernet HowTo (over 10 years ago) listed this: ------------------------ SEEQ 8005 Status: Obsolete, Driver Name: seeq8005 There is little information about the card included in the driver, and hence little information to be put here. If you have a question, you are probably best trying to e-mail the driver author as listed in the source. It was marked obsolete as of the 2.4 series kernels. ------------------------ If it was obsolete over a decade ago, the situation can not have improved with the passage of time, so let us act on that. Even with today's improved search engines, I was unable to locate any real meaningful information on the ISA implementation of this rare chip. There are ARM and SGI variants of the driver in tree, but they do not depend on the original x86 driver source or header file. We leave those non-x86 drivers to be deleted by the arch maintainers when they decide to expire those legacy platforms as a whole. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
* drivers/net: delete Digital EtherWorks-3 support.Paul Gortmaker2013-01-227-2352/+0
| | | | | | | | | | | | | | This is another one that makes sense to target for obsolescence, since it (a)appeared pre-1995, and (b)was rather rare, and (c)did not really have any statistically significant active linux user base. Removing this ISA 10Mbit driver support is unlikely to be even noticed by the user base of 3.9+ linux kernels, especially when the documentation clearly indicates the vintage with this text: "...designed to work with all kernels > 1.1.33" Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
* drivers/net: delete old DEC depca ISA drivers support.Paul Gortmaker2013-01-226-2201/+0
| | | | | | | | | These are old ISA 10Mbit cards from the 1st 1/2 of the 1990s and required manual jumper settings in order to configure them. Here we remove them on the premise that they are no longer used in any modern 3.9+ kernels. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
* drivers/net: delete the really obsolete 8390 based 10Mbit ISA driversPaul Gortmaker2013-01-228-2369/+0
| | | | | | | | | | | | | | | | | | | This is an area I know all too well, after being author of several 8390 drivers, and maintainer of all 8390 drivers during a large part of their active lifecycle. To that end, I can say this with a reasonable degree of confidence. The drivers deleted here represent the earliest (as in early 1990) hardware and/or rare hardware. The remaining hardware not deleted here is the more modern/sane of the lot, with ISA-PnP and jumperless "soft configuration" like the wd and smc cards had. The original ne2000 driver (ne.c) gets a pass at this time since AT/LANTIC based cards that could be both ne2000 or wd-like (with shared memory) and with jumperless configuration were made in the mid to late 1990's, and performed reasonably well for their era. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
* drivers/net: delete old fujitsu based eth16i driverPaul Gortmaker2013-01-225-1504/+0
| | | | | | | | | This is another driver for relatively rare 10Mbit hardware that originated in the early 1990's. So we select it for removal at this point in time as well. Cc: Mika Kuoppala <miku@iki.fi> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
* drivers/net: delete at1700 ISA 10Mbit driverPaul Gortmaker2013-01-224-808/+0
| | | | | | | | | These Fujitsu MB86965 based ISA 10Mbit cards were another of the relatively rare cards dating from the early 1990s that for one reason or another didn't seem to get a lot of use in linux. So we retire it now with a reasonable degree of confidence that it won't impact anyone. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
* drivers/net: delete old 8 bit ISA Racal ni5010 support.Paul Gortmaker2013-01-228-966/+0
| | | | | | | | | | | | | | | | | | | | These cards were only available in 8bit format, and in addition they only had AUI and BNC(10-Base2) interfaces (i.e. no RJ-45). In fact, they are so rare, that an internet search on these old cards almost comes up empty, unless the "Micom interlan" name is used. This puts them in the equivalent domain as the 3c501, so there should be no strong opposition to the driver removal, as nobody is seriously using 3.9+ with 8 bit ISA hardware. In doing so, the whole "ethernet/racal" category becomes empty, so we clean up the Makefile/Kconfig and subdir appropriately. Cc: Andreas Mohr <andi@lisas.de> Cc: Jan-Pascal van Best <janpascal@vanbest.org> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
* drivers/net: delete Racal Interlan ISA ni52 (i825xx) driverPaul Gortmaker2013-01-225-1672/+0
| | | | | | | | | Like the other drivers that were in the ISA i825xx family, the ni52 was rather rare, not widely used, and hence perhaps not as reliable as the more mainstream ISA drivers that were heavily used. Given that, it is chosen for retirement at this time as well. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
* drivers/net: delete intel i825xx based znet notebook driverPaul Gortmaker2013-01-223-939/+0
| | | | | | | | | | | | | | | | | | | | | | | | | This driver supported early to mid 1990's Zenith laptops, of the 2" thick variety. The driver was already dead 10+ years ago, but we see this in the source: ---------------- /* 10/2002 [...] Tested on a vintage Zenith Z-Note 433Lnp+. Probably broken on anything else. Testers (and detailed bug reports) are welcome :-). ---------------- To clarify, a 433 translates into a 486 at 33MHz, and a system with a default of 4MB RAM. I can't fault the noble effort to keep things working a decade ago, but at this point in time, there is no valid justification to continue carrying this driver along. Note that there is no associated Space.c cleanup here since this driver was using module_init to hook itself in. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
* drivers/net: delete ISA intel eexpress and eepro i825xx driversPaul Gortmaker2013-01-226-3699/+0
| | | | | | | | | | | | | These old drivers should not be confused with the very common PCI cards that are supported by e100.c -- these older 10Mbit ISA only drivers were not as commonly used as some of the other ISA drivers, simply due to hardware availability and pricing. Given the rarity of the hardware, and the subsequent less extensive use of the drivers, it makes sense to obsolete them at this point in time, along with other rare/experimental ISA drivers. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
* drivers/net: delete the 3Com 3c505/3c507 intel i825xx supportPaul Gortmaker2013-01-226-2936/+0
| | | | | | | | | | | | | For those of us who were around in the early to mid 1990's, we will remember that the i825xx ethernet support was not something that was considered sufficiently vetted for 24/7 use. Folks might be inclined to use *functional* ISA hardware on some near expired P3 ISA machines for dedicated workhorse applications, but the odds of using (and relying on) one of these old/experimental drivers is essentially nil. So lets remove them. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
* drivers/net: delete old parallel port de600/de620 driversPaul Gortmaker2013-01-228-2049/+2
| | | | | | | | | | | | | | The parallel port is largely replaced by USB, and even in the day where these drivers were current, the documented speed was less than 100kB/s. Let us not pretend that anyone cares about these drivers anymore, or worse - pretend that anyone is using them on a modern kernel. As a side bonus, this is the end of legacy parallel port ethernet, so we get to drop the whole chunk relating to that in the legacy Space.c file containing the non-PCI unified probe dispatch. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
* drivers/net: delete old 8bit ISA 3c501 driver.Paul Gortmaker2013-01-225-1007/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | It was amusing that linux was able to make use of this 1980's technology on machines long past its intended lifespan, but it probably should go now. To set some context, the 3c501 was designed in the 1980's to be used on 8088 PC-XT 8bit ISA machines. It was built using a large number of discrete TTL components and truly looks like a relic of the ancient past before large scale integration was common. But from a functional point of view, the real issue, as stated in the (also obsolete) Ethernet-HowTo, is that "...the 3c501 can only do one thing at a time -- while you are removing one packet from the single-packet buffer it cannot receive another packet, nor can it receive a packet while loading a transmit packet." You know things are not good when the Kconfig help text suggests you make a cron job doing a ping every minute. Hardware that old and crippled is simply not going to be used by anyone in a time where 10 year old 100Mbit PCI cards (that are still functional) are largely give-away items. Cc: Alan Cox <alan@linux.intel.com> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
* drivers/net: delete intel 486 panther onboard ethernet supportPaul Gortmaker2013-01-223-1346/+0
| | | | | | | | | | | This driver was specific to a "professional workstation" line of products from around 1993 that used the i82596 ethernet chip as an on-board ethernet solution. With a 486 processor, and the premium top of the line model maxing out at a clock speed of 50MHz, we can safely retire this support. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
* drivers/net: delete 486 Apricot supportPaul Gortmaker2013-01-224-99/+9
| | | | | | | | | | | | | | | | | The Apricot was a 486 PC with 4MB RAM, and an on-board ethernet via an intel i82596 hard-wired to i/o 0x300. Those who were using linux in the 1990's will recall that the i82596 driver was not one of the more stable or widely used drivers of its day. Combine that with the extremely limited resources of the platform, and it is truly time to expire the support for this thing. There are some old m68k targets who were also using this chip, so rather than poll the m68k user base, we simply cut out the x86/Apricot support here in this commit. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
* isdn/gigaset: beautify ev-layer.cTilman Schmidt2013-01-212-64/+64
| | | | | | | | Cosmetic changes to drivers/isdn/gigaset/ev-layer.c and drivers/isdn/gigaset/gigaset.h to improve readability. Signed-off-by: Tilman Schmidt <tilman@imap.cc> Signed-off-by: David S. Miller <davem@davemloft.net>
* isdn/gigaset: beautify common.cTilman Schmidt2013-01-211-22/+9
| | | | | | | | Rearrange the gigaset_freecs() function to make it more readable, and adapt gigaset_initcs() accordingly. Signed-off-by: Tilman Schmidt <tilman@imap.cc> Signed-off-by: David S. Miller <davem@davemloft.net>
* isdn/gigaset: beautify interface.cTilman Schmidt2013-01-211-31/+15
| | | | | | | Avoid forward declarations and remove a needless initialization. Signed-off-by: Tilman Schmidt <tilman@imap.cc> Signed-off-by: David S. Miller <davem@davemloft.net>
* isdn/gigaset: leave DLE mode before hanging upTilman Schmidt2013-01-211-0/+5
| | | | | | | | Some firmware releases of Gigaset M105 do not accept AT+VLS=0 command in DLE mode, so always leave DLE mode before sending the command. Signed-off-by: Tilman Schmidt <tilman@imap.cc> Signed-off-by: David S. Miller <davem@davemloft.net>
* isdn/divert: fix readability damageTilman Schmidt2013-01-213-247/+237
| | | | | | | | | | Fix up some of the readibility deterioration caused by last year's ISDN whitespace coding style cleanup. Note that the checkpatch complaints all apply to the state of the source before this patch as well, and in many cases even more so. Signed-off-by: Tilman Schmidt <tilman@imap.cc> Signed-off-by: David S. Miller <davem@davemloft.net>
* drivers/net/ethernet/sfc/ptp.c: adjust duplicate testJulia Lawall2013-01-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Delete successive tests to the same location. rc was previously tested and not subsequently updated. efx_phc_adjtime can return an error code, so the call is updated so that is tested instead. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @s exists@ local idexpression y; expression x,e; @@ *if ( \(x == NULL\|IS_ERR(x)\|y != 0\) ) { ... when forall return ...; } ... when != \(y = e\|y += e\|y -= e\|y |= e\|y &= e\|y++\|y--\|&y\) when != \(XT_GETPAGE(...,y)\|WMI_CMD_BUF(...)\) *if ( \(x == NULL\|IS_ERR(x)\|y != 0\) ) { ... when forall return ...; } // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Acked-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* ndisc: Do not try to update "updated" time if neighbour has already gone.YOSHIFUJI Hideaki / 吉藤英明2013-01-211-3/+3
| | | | | | | | | | | | Commit 2152caea ("ipv6: Do not depend on rt->n in rt6_probe().") introduce a bug to try to update "updated" time in neighbour structure. Update the "updated" time only if neighbour is available. Bug was found by Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'dsa'David S. Miller2013-01-212-2/+8
|\ | | | | | | | | | | | | | | | | | | | | | | | | Florian Fainelli says: ==================== These two patches are non-critical bugfixes based on net-next which I stumbled upon while working on Device Tree bindings for DSA (will comme as a separate patch later). ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * dsa: make dsa_switch_setup check for valid port namesFlorian Fainelli2013-01-211-0/+6
| | | | | | | | | | | | | | | | | | This patch changes dsa_switch_setup() to ensure that at least one valid valid port name is specified and will bail out with an error in case we walked the maximum number of port with a valid port name found. Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * dsa: use an unique and non conflicting bus name for the slave MII busFlorian Fainelli2013-01-211-2/+2
|/ | | | | | | | | | | | | | | | | | | | | | | | | | The slave MII bus registered by the DSA code is using the parent MII bus as part of its name (ds->master_mii_bus_id), in case the parent MII bus name is already 16 characters long (such as d0072004.mdio-mi) we will get the following WARN_ON in dsa_switch_setup() when calling mdiobus_register(): [ 79.088782] ------------[ cut here ]------------ [ 79.093448] WARNING: at fs/sysfs/dir.c:536 sysfs_add_one+0x80/0xa0() [ 79.099831] sysfs: cannot create duplicate filename '/class/mdio_bus/d0072004.mdio-mi' This is a genuine warning, because the DSA slave MII bus will also be named d0072004.mdio-mi, and since MII_BUS_ID_SIZE is 17 characters long (with null-terminator) the following will truncate the slave MII bus id: snprintf(ds->slave_mii_bus->id, MII_BUS_ID_SIZE, "%s-%d:%.2x", ds->master_mii_bus->id, ds->pd->sw_addr); Fix this by using dsa-<switch index->:<sw_add> which is guaranteed to be unique. Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: move rx and tx hash functions to net/core/flow_dissector.cCong Wang2013-01-212-175/+173
| | | | | | | | | | | | | | __skb_tx_hash() and __skb_get_rxhash() are all for calculating hash value based by some fields in skb, mostly used for selecting queues by device drivers. Meanwhile, net/core/dev.c is bloating. Cc: "David S. Miller" <davem@davemloft.net> Cc: Eric Dumazet <edumazet@google.com> Cc: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'virtio_mac'David S. Miller2013-01-214-55/+106
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Amos Kong says: ==================== Currenly mac is programmed byte by byte. This means that we have an intermediate step where mac is wrong. Third patch introduced a new vq control command to set mac address, it's atomic. V2: check return of sending command, delay eth_mac_addr() V3: restore software address when fail to set hardware address V4: split eth_mac_addr, fix error handle V5: rebase patches to net-next tree ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * virtio-net: introduce a new control to set macaddrAmos Kong2013-01-212-4/+25
| | | | | | | | | | | | | | | | | | | | | | | | Currently we write MAC address to pci config space byte by byte, this means that we have an intermediate step where mac is wrong. This patch introduced a new control command to set MAC address, it's atomic. VIRTIO_NET_F_CTRL_MAC_ADDR is a new feature bit for compatibility. Signed-off-by: Amos Kong <akong@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * net: split eth_mac_addr for better error handlingStefan Hajnoczi2013-01-212-6/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When we set mac address, software mac address in system and hardware mac address all need to be updated. Current eth_mac_addr() doesn't allow callers to implement error handling nicely. This patch split eth_mac_addr() to prepare part and real commit part, then we can prepare first, and try to change hardware address, then do the real commit if hardware address is set successfully. Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Amos Kong <akong@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * move virtnet_send_command() above virtnet_set_mac_address()Amos Kong2013-01-211-45/+44
|/ | | | | | | | | We want to send vq command to set mac address in virtnet_set_mac_address(), so do this function moving. Fixed a little issue of coding style. Signed-off-by: Amos Kong <akong@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'mcast'David S. Miller2013-01-217-39/+231
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | Nicolas Dichtel says: ==================== The goal of this serie is to add the support of proxy multicast, ie being able to build a static multicast tree. In other words, it adds the support of (*,G) mf[6]c entries. v2: use INADDR_ANY instead of 0 for IPv4 addresses ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * mcast: add multicast proxy support (IPv4 and IPv6)Nicolas Dichtel2013-01-214-28/+225
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch add the support of proxy multicast, ie being able to build a static multicast tree. It adds the support of (*,*) and (*,G) entries. The user should define an (*,*) entry which is not used for real forwarding. This entry defines the upstream in iif and contains all interfaces from the static tree in its oifs. It will be used to forward packet upstream when they come from an interface belonging to the static tree. Hence, the user should define (*,G) entries to build its static tree. Note that upstream interface must be part of oifs: packets are sent to all oifs interfaces except the input interface. This ensures to always join the whole static tree, even if the packet is not coming from the upstream interface. Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Acked-by: David L Stevens <dlstevens@us.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * mcast: define and use MRT[6]_MAX in ip[6]_mroute_opt()Nicolas Dichtel2013-01-215-13/+8
|/ | | | | | | | | | | This will ease further addition of new MRT[6]_* values and avoid to update in6.h each time. Note that we reduce the maximum value from 210 to 209, but 210 does not match any known value in ip[6]_mroute_setsockopt(). Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Acked-by: David L Stevens <dlstevens@us.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Documentation: remove obsolete networking/multicast.txt filePaul Gortmaker2013-01-212-65/+0
| | | | | | | | | | | | | | | | | | | | | | | | | The original intent of this file was to list limitations in drivers/hardware relating to multicast use, back when some modest hardware from the early 1990s did not support things we might take for granted today. I was intending to delete some now-gone MCA/token ring entries in this file, but once I opened it, I found it only contained information on the earliest (pre-2000) linux networking drivers. Checking the git history shows that the file hasn't been touched since 2005. Clearly nobody is actively consulting this file as a meaningful reference. Rather than add a "YES YES YES" line for all of the drivers we currently have, lets just take advantage of the fact that nobody is using the file to delete it. This has the side benefit of not having to do a line-by-line deletion of the file content as each older driver is expired. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'qeth'David S. Miller2013-01-218-92/+198
|\ | | | | | | | | | | Merge s390 networking changes from Frank Blaschka. Signed-off-by: David S. Miller <davem@davemloft.net>
| * qeth: Fix HiperSockets performance regressionStefan Raspl2013-01-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Commit 46d3ceab "tcp: TCP Small Queues" has severly degraded performance for single connection RR workloads on HiperSockets with MTU >=16K due to a conflict of the TCP Small Queues approach with our buffer scan threshold which releases buffers not frequently enough yet. This fix restores performance to the same level as before cited commit. Signed-off-by: Stefan Raspl <raspl@linux.vnet.ibm.com> Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qeth: Make s390dbf card entries persistentStefan Raspl2013-01-211-12/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | As of now, s390dbf entries for the cards are discarded as soon as the device is removed. However, this will also bar us of all chances of getting valuable debug information after a device has been removed. This patch will keep the s390dbf entries around until the qeth module is removed. Signed-off-by: Stefan Raspl <raspl@linux.vnet.ibm.com> Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> Reviewed-by: Ursula Braun <ursula.braun@de.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qeth: Update Kconfig wordingStefan Raspl2013-01-211-2/+2
| | | | | | | | | | | | | | | | Refer to virtual NICs instead of GuestLANs. Signed-off-by: Stefan Raspl <raspl@linux.vnet.ibm.com> Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qeth: Support VEPA modeStefan Raspl2013-01-217-67/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The existing port isolation mode 'forward' will now verify that the adjacent switch port supports the required reflective relay (RR) mode. This patch adds the required error handling for the cases where enabling port isolation mode 'forward' can now fail. Furthermore, once established, we never fall back from one of the port isolation modes to a non-isolated mode without further user-interaction. This includes cases where the isolation mode was enabled successfully, but ceases to work e.g. due to configuration changes at the switch port. Finally, configuring an isolation mode with the device being offline will make onlining the device fail permanently upon errors encountered until either errors are resolved or the isolation mode is changed by the user to a different mode. Signed-off-by: Stefan Raspl <raspl@linux.vnet.ibm.com> Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> Reviewed-by: Ursula Braun <ursula.braun@de.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qeth: Remove unused exportsStefan Raspl2013-01-212-7/+2
| | | | | | | | | | | | | | | | Remove exports that are not used anywhere else. Signed-off-by: Stefan Raspl <raspl@linux.vnet.ibm.com> Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qeth: Fix retry logic in hardsetupStefan Raspl2013-01-211-3/+3
|/ | | | | | | | | | The previous code did never retry any idx setup unless retries were done for device offline/online at the beginning of the function. Signed-off-by: Stefan Raspl <raspl@linux.vnet.ibm.com> Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> Reviewed-by: Ursula Braun <ursula.braun@de.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'ipv6_ndisc'David S. Miller2013-01-215-205/+203
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | YOSHIFUJI Hideaki says: ==================== This series of changes basically clean up NDISC logic, especially on sender side. We originally do For NS/NA/RS: 1) build temporary ICMPv6 header 2) ndisc_build_skb() with temporary ICMPv6 header and rather criptic arguments. - Calculate total length and allocate sk_buff - Build IPv6 header. - copy ICMPv6 header, additional data and ND options. - Fill-in ICMPv6 checksum. Here, structures defined for message format was not used at all, it is difficult to understand what is being sent, and it was not generic. 3) __ndisc_send() - Allocate temporary dst. - Send it. Several issues: - We could not defer decision if we should/can send some ND option. - It is hard to see the packet format at a glance. - ICMPv6 header was built as temporary variable, and then copied to the buffer. - Some code path for Redirect was not shared. With these patches, we do: 1) Calculate (or estimate) message length and option length. 2) Allocate skb (via new ndisc_skb_alloc()). 3) Fill-in ICMPv6 message directly using compound literals. 4) Fill-in ICMPv6 checksum 5) Build IPv6 header (including length) 6) Send the packet (via ndisc_send_skb()). - allocate temporary dst and send it. - We can defer calculating real length of the packet. For example, we can give up filling some option at when filling in. - Message is built directly without temporary buffer. - Structures defined for message format is easier to understand what is being built. - NS/NA/RS/Redirect share same logic. - Reduced code/data size: text data bss dec hex filename 265407 14133 3488 283028 45194 old/net/ipv6/ipv6.o 264955 14109 3488 282552 44fb8 new/net/ipv6/ipv6.o ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * ndisc: Use compound literals to build redirect message.YOSHIFUJI Hideaki / 吉藤英明2013-01-211-12/+8
| | | | | | | | | | Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * ndisc: Break down ndisc_build_skb() and build message directly.YOSHIFUJI Hideaki / 吉藤英明2013-01-211-59/+63
| | | | | | | | | | | | | | Construct NS/NA/RS message directly using C99 compound literals. Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * ndisc: Break down __ndisc_send().YOSHIFUJI Hideaki / 吉藤英明2013-01-211-24/+21
| | | | | | | | | | Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * ndisc: Fill in ICMPv6 checksum and IPv6 header in ndisc_send_skb().YOSHIFUJI Hideaki / 吉藤英明2013-01-211-16/+8
| | | | | | | | | | Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * ndisc: Use ndisc_send_skb() for redirect.YOSHIFUJI Hideaki / 吉藤英明2013-01-211-23/+14
| | | | | | | | | | | | | | Reuse dst if one is attached with skb. Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * ndisc: Remove icmp6h argument from ndisc_send_skb().YOSHIFUJI Hideaki / 吉藤英明2013-01-211-3/+3
| | | | | | | | | | | | | | | | skb_transport_header() (thus icmp6_hdr()) is available here, use it. Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * ndisc: Make ndisc_fill_xxx_option() for sk_buff.YOSHIFUJI Hideaki / 吉藤英明2013-01-211-18/+15
| | | | | | | | | | Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * ndisc: Calculate message body length and option length separately.YOSHIFUJI Hideaki / 吉藤英明2013-01-211-9/+11
| | | | | | | | | | Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>