Netdev List
 help / color / mirror / Atom feed
* Re: Question: How to configure the Ethernet receive buffer allocation (was: (no subject)).
From: Ronny Meeus @ 2012-10-13  9:10 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: netdev
In-Reply-To: <1350118698.21172.13737.camel@edumazet-glaptop>

On Sat, Oct 13, 2012 at 10:58 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> On Sat, 2012-10-13 at 10:39 +0200, Ronny Meeus wrote:
>> Hello
>>
>> I have an application that needs to handle a massive amount of
>> Ethernet packets coming from an FPGA on a dedicated Ethernet link.
>> I use a raw Ethernet socket for this. By increasing the receive buffer
>> of the socket, I'm able to capture all the packets and process them in
>> the application. Since this processing can take some time I have
>> increased the receive buffer to 500Mb. The size of the packets is
>> 1000bytes so I'm able to capture 500k packets.
>>
>> What I observe is that the kernel allocates buffers from the
>> slaballoctor for these packets but it takes buffers of 4k while in
>> fact the packet is only 1k (This means 2G of kernel memory  is being
>> used).
>> Is it possible to fine-tune this or is that an alternative for this?
>>
>> I already investigated the PACKET_RX_RING solution. This has the
>> advantage that the buffers can be 1k but  I do not want to consume
>> 500Mb of virtual memory in my application which is running on MIPS in
>> 32 bit mode where I only have 2G available in user space.
>>
>
> Need some information
>
> - Kernel version
> - Driver used
> - MTU of the link  (default MTU is 1500)
>

- Kernel version is: Linux version 2.6.32.27-Cavium-Octeon
- MTU:1500
- About the driver I do not know how to see that but I use Cavium
octeon reference board.  This is a part of the bootlog:
Intel(R) PRO/1000 Network Driver - version 7.3.21-k5-NAPI
Copyright (c) 1999-2006 Intel Corporation.
e1000e: Intel(R) PRO/1000 Network Driver - 1.0.2-k2
e1000e: Copyright (c) 1999-2008 Intel Corporation.
Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008)
octeon_mgmt 1070000100000.ethernet: Version 2.0
octeon_mgmt 1070000100800.ethernet: Version 2.0

The complete log is below.
Thanks.

# dmesg
Linux version 2.6.32.27-Cavium-Octeon (meeusr@devws156) (gcc version
4.3.3 (Cavium Inc. Version: 2_3_0 build 116) ) #34 SMP Mon Oct 8
14:38:02 CEST 2012
CVMSEG size: 2 cache lines (256 bytes)pped:0
Cavium Inc. SDK-2.30/statistics/tx_dropped:0
bootconsole [early0] enabledics/multicast:0
CPU revision is: 000d9008 (Cavium Octeon II)
Checking for the multiply/shift bug... no.errors:0
Checking for the daddiu bug... no._over_errors:0
Determined physical RAM map:ics/rx_crc_errors:0
 memory: 0000000000742000 @ 0000000000f9e000 (usable after init)
 memory: 000000000a800000 @ 0000000001800000 (usable)
 memory: 0000000003c00000 @ 000000000c200000 (usable)
 memory: 000000006f800000 @ 0000000020000000 (usable)
Wasting 223888 bytes for tracking 3998 unused pages
Initrd not found or empty - disabling initrdrs:0
Using passed Device Tree.istics/tx_heartbeat_errors:0
Placing 0MB software IO TLB between a80000000341c000 - a80000000345c000
software IO TLB at phys 0x341c000 - 0x345c000:0
Zone PFN ranges:gmt0/statistics/tx_compressed:0
  DMA32    0x00000f9e -> 0x000f0000
  Normal   0x000f0000 -> 0x000f0000.5.0 (November 4, 2008)
Movable zone start PFN for each nodeVersion 2.0
early_node_map[4] active PFN ranges Version 2.0
    0: 0x00000f9e -> 0x000016e0
    0: 0x00001800 -> 0x0000c000
    0: 0x0000c200 -> 0x0000fe00
    0: 0x00020000 -> 0x0008f800
On node 0 totalpages: 516930
  DMA32 zone: 7982 pages used for memmap
  DMA32 zone: 0 pages reserved
  DMA32 zone: 508948 pages, LIFO batch:31
Cavium Hotplug: Available coremask 0x0
PERCPU: Embedded 10 pages/cpu @a80000000347f000 s11264 r8192 d21504 u65536
pcpu-alloc: s11264 r8192 d21504 u65536 alloc=16*4096
pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [0] 4 [0] 5
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 508948
Kernel command line:  bootoctlinux 0 coremask=3f console=ttyS0,115200
PID hash table entries: 4096 (order: 3, 32768 bytes)
Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
Primary instruction cache 37kB, virtually tagged, 37 way, 8 sets,
linesize 128 bytes.
Primary data cache 32kB, 32-way, 8 sets, linesize 128 bytes.
Secondary unified cache 2048kB, 16-way, 1024 sets, linesize 128 bytes.
Memory: 2027140k/2067720k available (6121k kernel code, 39892k
reserved, 8843k data, 7432k init, 0k highmem)
Hierarchical RCU implementation.
NR_IRQS:453
Calibrating delay loop (skipped) preset value.. 1600.00 BogoMIPS (lpj=8000000)
Security Framework initialized
Mount-cache hash table entries: 256
Checking for the daddi bug... no.
SMP: Booting CPU01 (CoreId  1)...
CPU revision is: 000d9008 (Cavium Octeon II)
SMP: Booting CPU02 (CoreId  2)...
CPU revision is: 000d9008 (Cavium Octeon II)
SMP: Booting CPU03 (CoreId  3)...
CPU revision is: 000d9008 (Cavium Octeon II)
SMP: Booting CPU04 (CoreId  4)...
CPU revision is: 000d9008 (Cavium Octeon II)
SMP: Booting CPU05 (CoreId  5)...
CPU revision is: 000d9008 (Cavium Octeon II)
Brought up 6 CPUs
NET: Registered protocol family 16
PCIe: Initializing port 0
PCIe: Port 0 is SRIO, skipping.
PCIe: Initializing port 1
PCIe: Port 1 is SRIO, skipping.
bio: create slab <bio-0> at 0
SCSI subsystem initialized
libata version 3.00 loaded.
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Switching to clocksource OCTEON_CVMCOUNT
NET: Registered protocol family 2
IP route cache hash table entries: 65536 (order: 7, 524288 bytes)
TCP established hash table entries: 262144 (order: 10, 4194304 bytes)
TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
TCP: Hash tables configured (established 262144 bind 65536)
TCP reno registered
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
/proc/octeon_perf: Octeon performance counter interface loaded
octeon_wdt: Initial granularity 5 Sec.
octeon_gpio 1070000000800.gpio-controller: probed
HugeTLB registered 2 MB page size, pre-allocated 0 pages
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
fuse init (API version 7.13)
msgmni has been set to 3960
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
Serial: 8250/16550 driver, 6 ports, IRQ sharing disabled
brd: module loaded
loop: module loaded
Uniform Multi-Platform E-IDE driver
ide-gd driver 1.18
pata_octeon_cf 1d040000.compact-flash: version 2.2 16 bit, True IDE.
scsi0 : pata_octeon_cf
ata1: PATA max PIO6 cmd 900000001d040000 ctl 900000001d05000d irq 162
SSFDC read-only Flash Translation layer
slram: not enough parameters.
mdio-octeon: probed
mdio-octeon 1180000001800.mdio: Version 1.0
mdio-octeon: probed
mdio-octeon 1180000001900.mdio: Version 1.0
Intel(R) PRO/1000 Network Driver - version 7.3.21-k5-NAPI
Copyright (c) 1999-2006 Intel Corporation.
e1000e: Intel(R) PRO/1000 Network Driver - 1.0.2-k2
e1000e: Copyright (c) 1999-2008 Intel Corporation.
Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008)
bonding: Warning: either miimon or arp_interval and arp_ip_target
module parameters must be specified, otherwise bonding will not detect
link failures! see bonding.txt for detail.
sky2 driver version 1.25
octeon_mgmt 1070000100000.ethernet: Version 2.0
octeon_mgmt 1070000100800.ethernet: Version 2.0
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
octeon-ehci 16f0000000000.ehci: Octeon EHCI
octeon-ehci 16f0000000000.ehci: new USB bus registered, assigned bus number 1
octeon-ehci 16f0000000000.ehci: irq 154, io mem 0x16f0000000000
octeon-ehci 16f0000000000.ehci: USB 0.0 started, EHCI 1.00
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
octeon-ohci 16f0000000400.ohci: Octeon OHCI
octeon-ohci 16f0000000400.ohci: new USB bus registered, assigned bus number 2
octeon-ohci 16f0000000400.ohci: irq 154, io mem 0x16f0000000400
usb usb2: configuration #1 chosen from 1 choice
ata1.00: ATA-0: CF 1GB, 20071116, max MWDMA2
ata1.00: 1981728 sectors, multi 0: LBA
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver libusual
i2c /dev entries driver
i2c-octeon 1180000001000.i2c: version 2.0
ata1.00: configured for PIO4
rtc-ds1307 0-0068: rtc core: registered ds1337 as rtc0
ata1.00: configured for PIO4
ata1: EH complete
scsi 0:0:0:0: Direct-Access     ATA      CF 1GB           2007 PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 1981728 512-byte logical blocks: (1.01 GB/967 MiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't
support DPO or FUA
 sda: sda1
sd 0:0:0:0: [sda] Attached SCSI disk
at24 0-0056: 32768 byte 24c256 EEPROM (writable)
i2c-octeon 1180000001200.i2c: version 2.0
i2c i2c-0: Added multiplexed i2c bus 2
i2c i2c-0: Added multiplexed i2c bus 3
i2c i2c-0: Added multiplexed i2c bus 4
i2c i2c-0: Added multiplexed i2c bus 5
i2c i2c-0: Added multiplexed i2c bus 6
pcf857x 6-003e: gpios 248..255 on a pca8574
i2c i2c-0: Added multiplexed i2c bus 7
i2c i2c-0: Added multiplexed i2c bus 8
i2c i2c-0: Added multiplexed i2c bus 9
pca954x 0-0070: registered 8 multiplexed busses for I2C switch pca9548
md: linear personality registered for level -1
md: raid0 personality registered for level 0
md: raid1 personality registered for level 1
md: raid10 personality registered for level 10
md: multipath personality registered for level -4
md: faulty personality registered for level -5
device-mapper: ioctl: 4.15.0-ioctl (2009-04-01) initialised: dm-devel@redhat.com
Registered led device: QLM0-Red
Registered led device: QLM0-Green
Registered led device: QLM1-Red
Registered led device: QLM1-Green
Registered led device: QLM2-Red
Registered led device: QLM2-Green
oprofile: using mips/octeon performance monitoring.
ip_tables: (C) 2000-2006 Netfilter Core Team
arp_tables: (C) 2002 David S. Miller
TCP cubic registered
NET: Registered protocol family 17
Bridge firewalling registered
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
L2 lock: TLB refill 256 bytes
L2 lock: General exception 128 bytes
L2 lock: low-level interrupt 128 bytes
L2 lock: interrupt 640 bytes
L2 lock: memcpy 1152 bytes
1180000000800.serial: ttyS0 at MMIO 0x1180000000800 (irq = 125) is a OCTEON
console [ttyS0] enabled, bootconsole disabled
1180000000c00.serial: ttyS1 at MMIO 0x1180000000c00 (irq = 126) is a OCTEON
Bootbus flash: Setting flash for 8MB flash at 0x1f400000
phys_mapped_flash: Found 1 x16 devices at 0x0 in 8-bit bank
 Amd/Fujitsu Extended Query Table at 0x0040
phys_mapped_flash: Swapping erase regions for broken CFI table.
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
NAND device: Manufacturer ID: 0x2c, Chip ID: 0x68 (Micron NAND 4GiB 3,3V 8-bit)
Scanning device for bad blocks
Bad eraseblock 0 at 0x000000000000
Bad eraseblock 8 at 0x000000400000
Bad eraseblock 9 at 0x000000480000
Bad eraseblock 10 at 0x000000500000
Bad eraseblock 11 at 0x000000580000
Bad eraseblock 12 at 0x000000600000
Bad eraseblock 13 at 0x000000680000
Bad eraseblock 14 at 0x000000700000
Bad eraseblock 72 at 0x000002400000
Bad eraseblock 73 at 0x000002480000
Bad eraseblock 74 at 0x000002500000
Bad eraseblock 8080 at 0x0000fc800000
SRIO0: Registering port
SRIO0: Port in host mode
SRIO1: Registering port
SRIO1: Port in host mode
rtc-ds1307 0-0068: setting system clock to 2001-09-17 19:32:48 UTC (1000755168)
Freeing unused kernel memory: 7432k freed
ioctl32(getty:990): Unknown cmd fd(0) cmd(00007416){t:'t';sz:0}
arg(7f73ddc0) on /dev/ttyS0
mgmt1: Link is up - 100/Full
mgmt0: Link is up - 1000/Full
device mgmt0 entered promiscuous mode
#

^ permalink raw reply

* Re: Question: How to configure the Ethernet receive buffer allocation (was: (no subject)).
From: Eric Dumazet @ 2012-10-13  8:58 UTC (permalink / raw)
  To: Ronny Meeus; +Cc: netdev
In-Reply-To: <CAMJ=MEd89zzLhxt7FYOVCbh5OzW+8jAsx38uV53zCodXvVtfMQ@mail.gmail.com>

On Sat, 2012-10-13 at 10:39 +0200, Ronny Meeus wrote:
> Hello
> 
> I have an application that needs to handle a massive amount of
> Ethernet packets coming from an FPGA on a dedicated Ethernet link.
> I use a raw Ethernet socket for this. By increasing the receive buffer
> of the socket, I'm able to capture all the packets and process them in
> the application. Since this processing can take some time I have
> increased the receive buffer to 500Mb. The size of the packets is
> 1000bytes so I'm able to capture 500k packets.
> 
> What I observe is that the kernel allocates buffers from the
> slaballoctor for these packets but it takes buffers of 4k while in
> fact the packet is only 1k (This means 2G of kernel memory  is being
> used).
> Is it possible to fine-tune this or is that an alternative for this?
> 
> I already investigated the PACKET_RX_RING solution. This has the
> advantage that the buffers can be 1k but  I do not want to consume
> 500Mb of virtual memory in my application which is running on MIPS in
> 32 bit mode where I only have 2G available in user space.
> 

Need some information 

- Kernel version
- Driver used
- MTU of the link  (default MTU is 1500)

^ permalink raw reply

* Question: How to configure the Ethernet receive buffer allocation (was: (no subject)).
From: Ronny Meeus @ 2012-10-13  8:39 UTC (permalink / raw)
  To: netdev

Hello

I have an application that needs to handle a massive amount of
Ethernet packets coming from an FPGA on a dedicated Ethernet link.
I use a raw Ethernet socket for this. By increasing the receive buffer
of the socket, I'm able to capture all the packets and process them in
the application. Since this processing can take some time I have
increased the receive buffer to 500Mb. The size of the packets is
1000bytes so I'm able to capture 500k packets.

What I observe is that the kernel allocates buffers from the
slaballoctor for these packets but it takes buffers of 4k while in
fact the packet is only 1k (This means 2G of kernel memory  is being
used).
Is it possible to fine-tune this or is that an alternative for this?

I already investigated the PACKET_RX_RING solution. This has the
advantage that the buffers can be 1k but  I do not want to consume
500Mb of virtual memory in my application which is running on MIPS in
32 bit mode where I only have 2G available in user space.

---
Ronny

^ permalink raw reply

* (unknown), 
From: Ronny Meeus @ 2012-10-13  7:12 UTC (permalink / raw)
  To: netdev

Hello

I have an application that needs to handle a massive amount of
Ethernet packets coming from an FPGA on a dedicated Ethernet link.
I use a raw Ethernet socket for this. By increasing the receive buffer
of the socket, I'm able to capture all the packets and process them in
the application. Since this processing can take some time I have
increased the receive buffer to 500Mb. The size of the packets is
1000bytes so I'm able to capture 500k packets.

What I observe is that the kernel allocates buffers from the
slaballoctor for these packets but it takes buffers of 4k while in
fact the packet is only 1k (This means 2G of kernel memory  is being
used).
Is it possible to fine-tune this or is that an alternative for this?

I already investigated the PACKET_RX_RING solution. This has the
advantage that the buffers can be 1k but  I do not want to consume
500Mb of virtual memory in my application which is running on MIPS in
32 bit mode where I only have 2G available in user space.

---
Ronny

^ permalink raw reply

* IPv6 stable privacy addresses (Fwd: I-D Action: draft-ietf-6man-stable-privacy-addresses-01.txt)
From: Fernando Gont @ 2012-10-12 20:58 UTC (permalink / raw)
  To: netdev

Folks,

FYI. This is meant to solve the problems of IPv6 address
scanning and IPv6 host tracking:
<http://tools.ietf.org/html/draft-ietf-6man-stable-privacy-addresses-01>

Thanks,
Fernando




-------- Original Message --------
Subject: I-D Action: draft-ietf-6man-stable-privacy-addresses-01.txt
Date: Sun, 07 Oct 2012 16:50:49 -0700
From: internet-drafts@ietf.org
To: i-d-announce@ietf.org
CC: ipv6@ietf.org


A New Internet-Draft is available from the on-line Internet-Drafts
directories.
 This draft is a work item of the IPv6 Maintenance Working Group of the
IETF.

	Title           : A method for Generating Stable Privacy-Enhanced
Addresses with IPv6 Stateless Address Autoconfiguration (SLAAC)
	Author(s)       : Fernando Gont
	Filename        : draft-ietf-6man-stable-privacy-addresses-01.txt
	Pages           : 17
	Date            : 2012-10-07

Abstract:
   This document specifies a method for generating IPv6 Interface
   Identifiers to be used with IPv6 Stateless Address Autoconfiguration
   (SLAAC), such that addresses configured using this method are stable
   within each subnet, but the Interface Identifier changes when hosts
   move from one network to another.  The aforementioned method is meant
   to be an alternative to generating Interface Identifiers based on
   IEEE identifiers, such that the benefits of stable addresses can be
   achieved without sacrificing the privacy of users.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-6man-stable-privacy-addresses

There's also a htmlized version available at:
http://tools.ietf.org/html/draft-ietf-6man-stable-privacy-addresses-01

A diff from the previous version is available at:
http://www.ietf.org/rfcdiff?url2=draft-ietf-6man-stable-privacy-addresses-01


Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/

--------------------------------------------------------------------
IETF IPv6 working group mailing list
ipv6@ietf.org
Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------




-- 
Fernando Gont
e-mail: fernando@gont.com.ar || fgont@si6networks.com
PGP Fingerprint: 7809 84F5 322E 45C7 F1C9 3945 96EE A9EF D076 FFF1

^ permalink raw reply

* listen(2) backlog changes in or around Linux 3.1?
From: enh @ 2012-10-12 23:40 UTC (permalink / raw)
  To: netdev

i used to use the following hack to unit test connect timeouts: i'd
call listen(2) on a socket and then deliberately connect (backlog + 3)
sockets without accept(2)ing any of the connections. (why 3? because
Stevens told me so, and experiment backed him up. see figure 4.10 in
his UNIX Network Programming.)

with "old" kernels, 2.6.35-ish to 3.0-ish, this worked great. my next
connect(2) to the same loopback port would hang indefinitely. i could
even unblock the connect by calling accept(2) in another thread. this
was awesome for testing.

in 3.1 on ARM, 3.2 on x86 (Ubuntu desktop), and 3.4 on ARM, this no
longer works. it doesn't seem to be as simple as "the constant is no
longer 3". my tests are now flaky. sometimes they work like they used
to, and sometimes an extra connect(2) will succeed. (or, if i'm in
non-blocking mode, my poll(2) will return with the non-blocking socket
that's trying to connect now ready.)

i'm guessing if this changed in 3.1 and is still changed in 3.4,
whatever's changed wasn't an accident. but i haven't been able to find
the right search terms to RTFM. i also finally got around to grepping
the kernel for the "+ 3", but wasn't able to find that. (so i'd be
interested to know where the old behavior came from too.)

my least worst workaround at the moment is to use one of RFC5737's
test networks, but that requires that the device have a network
connection, otherwise my connect(2)s fail immediately with
ENETUNREACH, which is no use to me. also, unlike my old trick, i've
got no way to suddenly "unblock" a slow connect(2) (this is useful for
unit testing the code that does the poll(2) part of the usual
connect-with-timeout implementation).
https://android-review.googlesource.com/#/c/44563/

hopefully someone here can shed some light on this? ideally someone
will have a workaround as good as my old trick. i realize i was
relying on undocumented behavior, and i'm happy to have to check
/proc/version and behave appropriately, but i'd really like a way to
keep my unit tests!

thanks,
 elliott

^ permalink raw reply

* Re: r8169 delay / segfault
From: Roland Stigge @ 2012-10-12 22:14 UTC (permalink / raw)
  To: Francois Romieu; +Cc: nic_swsd, netdev, hayeswang
In-Reply-To: <20121012210503.GA2054@electric-eye.fr.zoreil.com>

Hi!

On 12/10/12 23:05, Francois Romieu wrote:
> Roland Stigge <stigge@antcom.de> :
> [...]
>> on a Samsung laptop (x86_64, kernel 3.6.0), I get the following messages in the kernel
>> log after a suspend/resume cycle (doesn't happen after every suspend/resume but sometimes):
>>
>> Oct 12 21:02:27 darwin kernel: [ 4289.829755] r8169 0000:02:00.0: wake-up capability disabled by ACPI
>> Oct 12 21:02:27 darwin kernel: [ 4289.830351] r8169 0000:02:00.0: eth0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
> [...]
>> Oct 12 21:02:27 darwin kernel: [ 4289.858920] r8169 0000:02:00.0: eth0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
> [...]
>> Oct 12 21:04:56 darwin kernel: [ 4441.330385] r8169 0000:02:00.0: eth0: rtl_chipcmd_cond == 1 (loop: 100, delay: 100).
>> Oct 12 21:04:56 darwin kernel: [ 4441.331592] r8169 0000:02:00.0: eth0: rtl_csiar_cond == 1 (loop: 100, delay: 10).
>> Oct 12 21:04:56 darwin kernel: [ 4441.332727] r8169 0000:02:00.0: eth0: rtl_ephyar_cond == 1 (loop: 100, delay: 10).
> [...]
>> Oct 12 21:04:56 darwin kernel: [ 4441.343912] r8169 0000:02:00.0: eth0: rtl_eriar_cond == 1 (loop: 100, delay: 100).
> 
> The device seems completely unresponsive :o/
> 
>> Oct 12 21:04:56 darwin kernel: [ 4441.454689] r8169 0000:02:00.0: eth0: link up
>>
>> I copied a bigger part of the kernel log at http://antcom.de/kernel/dmesg.
>>
>> Please tell me how I can help debugging or what else information you need.
> 
> The device does not recover despite the "link up" message, right ?

Right.

> Can you send the XID line from the r8169 driver ? It should be in the
> upper part of the dmesg log.

Oct 12 23:46:45 darwin kernel: [    1.562479] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
Oct 12 23:46:45 darwin kernel: [    1.562728] r8169 0000:02:00.0: irq 40 for MSI/MSI-X
Oct 12 23:46:45 darwin kernel: [    1.562968] r8169 0000:02:00.0: eth0: RTL8168evl/8111evl at 0xffffc9000066c000, e8:03:9a:dc:e7:57, XID 0c900800 IRQ 40
Oct 12 23:46:45 darwin kernel: [    1.562972] r8169 0000:02:00.0: eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]

> Which kernel version did you previously use ?

I used the Debian standard kernel 3.2 but had several spontaneous crashes. Memtests
and everything work fine. After upgrading, everything works but network sometimes
breaks after suspend/resume (although "link up" is reported). Seems quite reproducible.

Roland

^ permalink raw reply

* Re: [RFC v4 1/1] net/hsr: Support for the HSR protocol (IEC:2010 / HSR v0)
From: Joe Perches @ 2012-10-12 21:39 UTC (permalink / raw)
  To: Arvid Brodin
  Cc: netdev@vger.kernel.org, shemminger@vyatta.com,
	jboticario@gmail.com, balferreira@googlemail.com
In-Reply-To: <50784F2D.1060200@xdin.com>

On Fri, 2012-10-12 at 17:11 +0000, Arvid Brodin wrote:
> This would add support for the High-availability Seamless Redundancy network
> protocol, version 0 (2010).
> 
> This RFC is NOT meant for mainline inclusion at the moment since we're trying
> to figure out how to handle a probable incompatibility with the newer
> HSR v1 (2012) standard.

just trivial comments, ignore as you choose.

> diff --git a/net/hsr/hsr_device.c b/net/hsr/hsr_device.c
[]
> +void hsr_set_operstate(struct net_device *hsr_dev, struct net_device *slave1,
> +		       struct net_device *slave2)
> +{
> +	if (!is_admin_up(hsr_dev)) {
> +		__hsr_set_operstate(hsr_dev, IF_OPER_DOWN);
> +		return;
> +	}
> +
> +	if (is_operstate_up(slave1) || is_operstate_up(slave2))
> +		__hsr_set_operstate(hsr_dev, IF_OPER_UP);
> +	else
> +		__hsr_set_operstate(hsr_dev, IF_OPER_LOWERLAYERDOWN);
> +}

sometimes it's better to have a single call like
{
	int type;

	if (!is_admin_up(hsr_dev))
		type = IF_OPER_DOWN;
	else if (is_operstate_up(slave1) || is_operstate_up(slave2))
		type = IF_OPER_UP;
	else
		type = IF_OPER_LOWERLAYERDOWN;

	__hsr_set_operstate(hsr_dev, type);
}

[]

> +static int hsr_dev_xmit(struct sk_buff *skb, struct net_device *dev)
> +{
> +	struct hsr_priv *hsr_priv;
> +	struct hsr_ethhdr *hsr_ethhdr;
> +	struct sk_buff *skb2;
> +	int res1, res2;
> +
> +	hsr_priv = netdev_priv(dev);
> +	hsr_ethhdr = (struct hsr_ethhdr *) skb->data;
> +
> +	if ((ntohs(skb->protocol) != ETH_P_HSR) ||
> +			(ntohs(hsr_ethhdr->ethhdr.h_proto) != ETH_P_HSR)) {

These ntohs calls are done at runtime.
The conversion could be done at compile time instead using

	if (skb->protocol != ntohs(ETH_P_HSR) ||
	    hsr_ethhdr->ethhdr.h_proto != ntohs(ETH_P_HSR)) {

[]

> +static void restore_slaves(struct net_device *hsr_dev)
> +{
[]
> +			netdev_info(hsr_dev, "HSR: Cannot restore slave "
> +						"promiscuity (%s, %d)\n",
> +						hsr_priv->slave[i]->name, res);

It's nicer to coalesce formats for easier grep

			netdev_info(hsr_dev, "HSR: Cannot restore slave promiscuity (%s, %d)\n",
				    hsr_priv->slave[i]->name, res);

or maybe use special wrappers for something like:
int hsr_info(hsr, slave, fmt, ...)
{
}

[]

> diff --git a/net/hsr/hsr_framereg.c b/net/hsr/hsr_framereg.c

> +static struct node_entry *find_node_by_AddrB(struct list_head *node_db,
> +					     unsigned char addr[ETH_ALEN])
> +{
> +	struct node_entry *node;
> +
> +	list_for_each_entry_rcu(node, node_db, mac_list)
> +		if (!compare_ether_addr(node->MacAddressB, addr))
> +			return node;

please use braces when the list/for has an if

^ permalink raw reply

* Re: r8169 delay / segfault
From: Francois Romieu @ 2012-10-12 21:05 UTC (permalink / raw)
  To: Roland Stigge; +Cc: nic_swsd, netdev, hayeswang
In-Reply-To: <50787109.7080605@antcom.de>

Roland Stigge <stigge@antcom.de> :
[...]
> on a Samsung laptop (x86_64, kernel 3.6.0), I get the following messages in the kernel
> log after a suspend/resume cycle (doesn't happen after every suspend/resume but sometimes):
> 
> Oct 12 21:02:27 darwin kernel: [ 4289.829755] r8169 0000:02:00.0: wake-up capability disabled by ACPI
> Oct 12 21:02:27 darwin kernel: [ 4289.830351] r8169 0000:02:00.0: eth0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
[...]
> Oct 12 21:02:27 darwin kernel: [ 4289.858920] r8169 0000:02:00.0: eth0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
[...]
> Oct 12 21:04:56 darwin kernel: [ 4441.330385] r8169 0000:02:00.0: eth0: rtl_chipcmd_cond == 1 (loop: 100, delay: 100).
> Oct 12 21:04:56 darwin kernel: [ 4441.331592] r8169 0000:02:00.0: eth0: rtl_csiar_cond == 1 (loop: 100, delay: 10).
> Oct 12 21:04:56 darwin kernel: [ 4441.332727] r8169 0000:02:00.0: eth0: rtl_ephyar_cond == 1 (loop: 100, delay: 10).
[...]
> Oct 12 21:04:56 darwin kernel: [ 4441.343912] r8169 0000:02:00.0: eth0: rtl_eriar_cond == 1 (loop: 100, delay: 100).

The device seems completely unresponsive :o/

> Oct 12 21:04:56 darwin kernel: [ 4441.454689] r8169 0000:02:00.0: eth0: link up
> 
> I copied a bigger part of the kernel log at http://antcom.de/kernel/dmesg.
> 
> Please tell me how I can help debugging or what else information you need.

The device does not recover despite the "link up" message, right ?

Can you send the XID line from the r8169 driver ? It should be in the
upper part of the dmesg log.

Which kernel version did you previously use ?

-- 
Ueimor

^ permalink raw reply

* [PATCH] tcp: make tcp_clear_md5_list static
From: Stephen Hemminger @ 2012-10-12 20:22 UTC (permalink / raw)
  To: David Miller; +Cc: netdev

Only used in one file.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

--- a/net/ipv4/tcp_ipv4.c	2012-10-12 13:08:19.497799654 -0700
+++ b/net/ipv4/tcp_ipv4.c	2012-10-12 13:11:20.616030173 -0700
@@ -1070,7 +1070,7 @@ int tcp_md5_do_del(struct sock *sk, cons
 }
 EXPORT_SYMBOL(tcp_md5_do_del);
 
-void tcp_clear_md5_list(struct sock *sk)
+static void tcp_clear_md5_list(struct sock *sk)
 {
 	struct tcp_sock *tp = tcp_sk(sk);
 	struct tcp_md5sig_key *key;

^ permalink raw reply

* Re: [PATCH v2] net: calxedaxgmac: rework transmit ring handling
From: Rob Herring @ 2012-10-12 20:21 UTC (permalink / raw)
  To: Eric Dumazet
  Cc: linux-kernel, netdev, jonathan, Mark Langsdorf, Rob Herring,
	Ben Hutchings
In-Reply-To: <1350066620.21172.12996.camel@edumazet-glaptop>

Eric Dumazet <eric.dumazet@gmail.com> wrote:

>On Fri, 2012-10-12 at 13:04 -0500, Rob Herring wrote:
>> From: Rob Herring <rob.herring@calxeda.com>
>> 
>> Only generate tx interrupts on every ring size / 4 descriptors. Move
>the
>> netif_stop_queue call to the end of the xmit function rather than
>> checking at the beginning.
>> 
>> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
>> ---
>> v2:
>> - Add missed enabling of the descriptor tx interrupt
>
>Seems to be net-next material to me.
>

Perhaps, but the series as a whole is what I've been testing. This one has the least performance impact.

>Furthermore, your changelog is a bit terse for such a patch, that could
>easily break upper layers.
>
>You need to tell us how long TX completion for a packet might be
>deferred.

The prior behavior was only interrupting when done with all buffers.  It now will interrupt before completely emptying the ring.

Rob

^ permalink raw reply

* r8169 delay / segfault
From: Roland Stigge @ 2012-10-12 19:35 UTC (permalink / raw)
  To: nic_swsd, romieu, netdev

Hi,

on a Samsung laptop (x86_64, kernel 3.6.0), I get the following messages in the kernel
log after a suspend/resume cycle (doesn't happen after every suspend/resume but sometimes):

Oct 12 21:02:27 darwin kernel: [ 4289.829755] r8169 0000:02:00.0: wake-up capability disabled by ACPI
Oct 12 21:02:27 darwin kernel: [ 4289.830351] r8169 0000:02:00.0: eth0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
Oct 12 21:02:27 darwin kernel: [ 4289.831077] r8169 0000:02:00.0: eth0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
Oct 12 21:02:27 darwin kernel: [ 4289.831671] r8169 0000:02:00.0: eth0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
Oct 12 21:02:27 darwin kernel: [ 4289.832214] r8169 0000:02:00.0: eth0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
Oct 12 21:02:27 darwin kernel: [ 4289.832757] r8169 0000:02:00.0: eth0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
Oct 12 21:02:27 darwin kernel: [ 4289.833303] r8169 0000:02:00.0: eth0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
Oct 12 21:02:27 darwin kernel: [ 4289.834885] r8169 0000:02:00.0: eth0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
Oct 12 21:02:27 darwin kernel: [ 4289.835429] r8169 0000:02:00.0: eth0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
Oct 12 21:02:27 darwin kernel: [ 4289.835972] r8169 0000:02:00.0: eth0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
Oct 12 21:02:27 darwin kernel: [ 4289.836518] r8169 0000:02:00.0: eth0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
Oct 12 21:02:27 darwin kernel: [ 4289.857820] r8169 0000:02:00.0: eth0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
Oct 12 21:02:27 darwin kernel: [ 4289.858371] r8169 0000:02:00.0: eth0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
Oct 12 21:02:27 darwin kernel: [ 4289.858920] r8169 0000:02:00.0: eth0: rtl_phyar_cond == 1 (loop: 20, delay: 25).

[...]

Oct 12 21:04:38 darwin kernel: [ 4422.635491] r8169 0000:02:00.0: eth0: rtl_eriar_cond == 1 (loop: 100, delay: 100).
Oct 12 21:04:38 darwin kernel: [ 4422.635499] r8169 0000:02:00.0: eth0: link up
Oct 12 21:04:56 darwin kernel: [ 4441.319712] ------------[ cut here ]------------
Oct 12 21:04:56 darwin kernel: [ 4441.319733] WARNING: at net/sched/sch_generic.c:255 dev_watchdog+0xe3/0x153()
Oct 12 21:04:56 darwin kernel: [ 4441.319737] Hardware name: 900X3C/900X4C/900X4D
Oct 12 21:04:56 darwin kernel: [ 4441.319741] NETDEV WATCHDOG: eth0 (r8169): transmit queue 0 timed out
Oct 12 21:04:56 darwin kernel: [ 4441.319744] Modules linked in: nf_conntrack_ipv6 nf_defrag_ipv6 xt_LOG xt_limit xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 x
t_state nf_conntrack_ftp xt_conntrack nf_conntrack ip6table_filter ip6_tables iptable_filter ip_tables ebtable_nat ebtables x_tables parport_pc ppdev lp parpo
rt bnep rfcomm binfmt_misc uinput nfsd auth_rpcgss nfs_acl nfs lockd fscache sunrpc loop fuse snd_hda_codec_hdmi snd_hda_codec_realtek joydev arc4 coretemp kv
m_intel kvm btusb iwldvm bluetooth crc32c_intel mac80211 ghash_clmulni_intel iTCO_wdt iTCO_vendor_support aesni_intel aes_x86_64 snd_hda_intel snd_hda_codec s
nd_hwdep snd_pcm aes_generic ablk_helper snd_page_alloc cryptd snd_seq snd_timer snd_seq_device samsung_laptop evdev snd iwlwifi i915 microcode drm_kms_helper
 drm soundcore psmouse pcspkr cfg80211 i2c_i801 lpc_ich i2c_algo_bit serio_raw mfd_core rfkill i2c_core battery acpi_cpufreq mperf wmi video ac button process
or ext4 crc16 jbd2 mbcache dm_mod sg sd_mod crc_t10dif ehci_hcd xhci_hcd fan th
Oct 12 21:04:56 darwin kernel: ermal ahci thermal_sys libahci usbcore r8169 mii usb_common libata scsi_mod
Oct 12 21:04:56 darwin kernel: [ 4441.319903] Pid: 0, comm: swapper/1 Not tainted 3.6.0 #1
Oct 12 21:04:56 darwin kernel: [ 4441.319906] Call Trace:
Oct 12 21:04:56 darwin kernel: [ 4441.319910]  <IRQ>  [<ffffffff8103c914>] ? warn_slowpath_common+0x76/0x8a
Oct 12 21:04:56 darwin kernel: [ 4441.319932]  [<ffffffff8103c9c0>] ? warn_slowpath_fmt+0x45/0x4a
Oct 12 21:04:56 darwin kernel: [ 4441.319941]  [<ffffffff812b9b62>] ? netif_tx_lock+0x67/0x7a
Oct 12 21:04:56 darwin kernel: [ 4441.319954]  [<ffffffff812b9c58>] ? dev_watchdog+0xe3/0x153
Oct 12 21:04:56 darwin kernel: [ 4441.319963]  [<ffffffff810492e1>] ? run_timer_softirq+0x19f/0x2b0
Oct 12 21:04:56 darwin kernel: [ 4441.319974]  [<ffffffff81068208>] ? trigger_load_balance+0x50/0x1df
Oct 12 21:04:56 darwin kernel: [ 4441.319980]  [<ffffffff812b9b75>] ? netif_tx_lock+0x7a/0x7a
Oct 12 21:04:56 darwin kernel: [ 4441.319989]  [<ffffffff811b8320>] ? timerqueue_add+0x80/0xa0
Oct 12 21:04:56 darwin kernel: [ 4441.319998]  [<ffffffff8104332f>] ? __do_softirq+0xac/0x1d1
Oct 12 21:04:56 darwin kernel: [ 4441.320007]  [<ffffffff81073706>] ? ktime_get+0x62/0x6a
Oct 12 21:04:56 darwin kernel: [ 4441.320015]  [<ffffffff81078109>] ? clockevents_program_event+0x9a/0xb6
Oct 12 21:04:56 darwin kernel: [ 4441.320025]  [<ffffffff81367ebc>] ? call_softirq+0x1c/0x30
Oct 12 21:04:56 darwin kernel: [ 4441.320036]  [<ffffffff8100f8fe>] ? do_softirq+0x3a/0x78
Oct 12 21:04:56 darwin kernel: [ 4441.320043]  [<ffffffff81043611>] ? irq_exit+0x3a/0x91
Oct 12 21:04:56 darwin kernel: [ 4441.320052]  [<ffffffff8102845c>] ? smp_apic_timer_interrupt+0x74/0x82
Oct 12 21:04:56 darwin kernel: [ 4441.320060]  [<ffffffff813677ca>] ? apic_timer_interrupt+0x6a/0x70
Oct 12 21:04:56 darwin kernel: [ 4441.320062]  <EOI>  [<ffffffff81078109>] ? clockevents_program_event+0x9a/0xb6
Oct 12 21:04:56 darwin kernel: [ 4441.320077]  [<ffffffff811f8174>] ? intel_idle+0xdf/0x10a
Oct 12 21:04:56 darwin kernel: [ 4441.320084]  [<ffffffff811f814f>] ? intel_idle+0xba/0x10a
Oct 12 21:04:56 darwin kernel: [ 4441.320094]  [<ffffffff812810b3>] ? cpuidle_enter_state+0xa/0x31
Oct 12 21:04:56 darwin kernel: [ 4441.320100]  [<ffffffff812811a7>] ? cpuidle_idle_call+0xcd/0x184
Oct 12 21:04:56 darwin kernel: [ 4441.320107]  [<ffffffff81014f30>] ? cpu_idle+0x9c/0xe6
Oct 12 21:04:56 darwin kernel: [ 4441.320117]  [<ffffffff81353e4f>] ? start_secondary+0x1d2/0x1d8
Oct 12 21:04:56 darwin kernel: [ 4441.320122] ---[ end trace 2ae2e4a392ef84b6 ]---
Oct 12 21:04:56 darwin kernel: [ 4441.330385] r8169 0000:02:00.0: eth0: rtl_chipcmd_cond == 1 (loop: 100, delay: 100).
Oct 12 21:04:56 darwin kernel: [ 4441.331592] r8169 0000:02:00.0: eth0: rtl_csiar_cond == 1 (loop: 100, delay: 10).
Oct 12 21:04:56 darwin kernel: [ 4441.332727] r8169 0000:02:00.0: eth0: rtl_ephyar_cond == 1 (loop: 100, delay: 10).
Oct 12 21:04:56 darwin kernel: [ 4441.333866] r8169 0000:02:00.0: eth0: rtl_ephyar_cond == 1 (loop: 100, delay: 10).
Oct 12 21:04:56 darwin kernel: [ 4441.343912] r8169 0000:02:00.0: eth0: rtl_eriar_cond == 1 (loop: 100, delay: 100).
Oct 12 21:04:56 darwin kernel: [ 4441.353943] r8169 0000:02:00.0: eth0: rtl_eriar_cond == 1 (loop: 100, delay: 100).
Oct 12 21:04:56 darwin kernel: [ 4441.363973] r8169 0000:02:00.0: eth0: rtl_eriar_cond == 1 (loop: 100, delay: 100).
Oct 12 21:04:56 darwin kernel: [ 4441.374003] r8169 0000:02:00.0: eth0: rtl_eriar_cond == 1 (loop: 100, delay: 100).
Oct 12 21:04:56 darwin kernel: [ 4441.384034] r8169 0000:02:00.0: eth0: rtl_eriar_cond == 1 (loop: 100, delay: 100).
Oct 12 21:04:56 darwin kernel: [ 4441.394065] r8169 0000:02:00.0: eth0: rtl_eriar_cond == 1 (loop: 100, delay: 100).
Oct 12 21:04:56 darwin kernel: [ 4441.404196] r8169 0000:02:00.0: eth0: rtl_eriar_cond == 1 (loop: 100, delay: 100).
Oct 12 21:04:56 darwin kernel: [ 4441.414334] r8169 0000:02:00.0: eth0: rtl_eriar_cond == 1 (loop: 100, delay: 100).
Oct 12 21:04:56 darwin kernel: [ 4441.424383] r8169 0000:02:00.0: eth0: rtl_eriar_cond == 1 (loop: 100, delay: 100).
Oct 12 21:04:56 darwin kernel: [ 4441.434412] r8169 0000:02:00.0: eth0: rtl_eriar_cond == 1 (loop: 100, delay: 100).
Oct 12 21:04:56 darwin kernel: [ 4441.444546] r8169 0000:02:00.0: eth0: rtl_eriar_cond == 1 (loop: 100, delay: 100).
Oct 12 21:04:56 darwin kernel: [ 4441.454683] r8169 0000:02:00.0: eth0: rtl_eriar_cond == 1 (loop: 100, delay: 100).
Oct 12 21:04:56 darwin kernel: [ 4441.454689] r8169 0000:02:00.0: eth0: link up

I copied a bigger part of the kernel log at http://antcom.de/kernel/dmesg.

Please tell me how I can help debugging or what else information you need.

Thanks in advance,

Roland

^ permalink raw reply

* Re: [PATCH net-next] unix: Remove unused field from unix_sock
From: David Miller @ 2012-10-12 19:26 UTC (permalink / raw)
  To: xemul; +Cc: netdev
In-Reply-To: <50782ED6.7090704@parallels.com>

From: Pavel Emelyanov <xemul@parallels.com>
Date: Fri, 12 Oct 2012 18:53:10 +0400

> The struct sock *other one seem to be unused. Grep and make do not object.
> 
> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>

Please resend this when net-next opens back up, thanks.

^ permalink raw reply

* [GIT] Networking
From: David Miller @ 2012-10-12 19:25 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, netdev, linux-kernel


1) Alexey Kuznetsov noticed we routed TCP resets improperly in the
   assymetric routing case, fix this by reverting a change that
   made us use the incoming interface in the outgoing route key
   when we didn't have a socket context to work with.

2) TCP sysctl kernel memory leakage to userspace fix from Alan Cox.

3) Move UAPI bits from David Howells, WIMAX and CAN this time.

4) Fix TX stalls in e1000e wrt. Byte Queue Limits, from Hiroaki SHIMODA,
   Denys Fedoryshchenko, and Jesse Brandeburg.

5) Fix IPV6 crashes in packet generator module, from Amerigo Wang.

6) Tidies and fixes in the new VXLAN driver from Stephen Hemminger.

7) Bridge IP options parse doesn't check first if SKB header has
   at least an IP header's worth of content present.  Fix from	
   Sarveshwar Bandi.

8) The kernel now generates compound pages on transmit and the Xen
   netback drivers needs some adjustments in order to handle this.
   Fix from Ian Campbell.

9) Turn off ASPM in JME driver, from Kevin Bardon and Matthew Garrett.

Please pull, thanks a lot!

The following changes since commit 2474542f64432398f503373f53bdf620491bcfa8:

  Merge tag 'for-3.7-rc1' of git://gitorious.org/linux-pwm/linux-pwm (2012-10-10 20:15:24 +0900)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git master

for you to fetch changes up to dabdaf0caa3af520dbc1df87b2fb4e77224037bd:

  mcs7830: Fix link state detection (2012-10-12 13:56:52 -0400)

----------------------------------------------------------------
Alan Cox (2):
      kaweth: print correct debug ptr
      tcp: sysctl interface leaks 16 bytes of kernel memory

Alexey Kuznetsov (1):
      tcp: resets are misrouted

Amerigo Wang (7):
      pktgen: fix crash when generating IPv6 packets
      pktgen: set different default min_pkt_size for different protocols
      pktgen: display IPv4 address in human-readable format
      pktgen: enable automatic IPv6 address setting
      pktgen: replace scan_ip6() with in6_pton()
      net: add doc for in6_pton()
      net: add doc for in4_pton()

Amitkumar Karwar (3):
      mwifiex: reset scan_processing flag in failure cases
      mwifiex: update cfg80211 with correct reason code when association fails
      mwifiex: update cfg80211 with correct reason code when connection is lost

Bing Zhao (1):
      mwifiex: return -EBUSY if scan request cannot be honored

Dan Carpenter (1):
      isdn: fix a wrapping bug in isdn_ppp_ioctl()

Daniel Golle (1):
      rt2x00/rt3352: Fix lnagain assignment to use register 66.

David Howells (2):
      UAPI: (Scripted) Disintegrate include/linux/wimax
      UAPI: (Scripted) Disintegrate include/linux/can

David S. Miller (3):
      Merge tag 'master-2012-10-08' of git://git.kernel.org/.../linville/wireless
      Merge branch 'uapi-for-3.7' of git://gitorious.org/linux-can/linux-can
      Merge tag 'disintegrate-wimax-20121009' of git://git.infradead.org/users/dhowells/linux-headers

Felix Fietkau (4):
      ath9k: fix ASPM initialization on resume
      ath9k: improve suspend/resume reliability
      ath9k: use ieee80211_free_txskb
      mac80211: use ieee80211_free_txskb to fix possible skb leaks

Hiroaki SHIMODA (1):
      e1000e: Change wthresh to 1 to avoid possible Tx stalls

Ian Campbell (1):
      xen: netback: handle compound page fragments on transmit.

Jean-Christian de Rivaz (1):
      Add CDC-ACM support for the CX93010-2x UCMxx USB Modem

Kevin Baradon (1):
      net/ethernet/jme: disable ASPM

Mark Brown (1):
      of/mdio: Staticise !CONFIG_OF stubs

Oliver Neukum (1):
      usbnet: Support devices reporting idleness

Ondrej Zary (1):
      mcs7830: Fix link state detection

Ronald Wahl (1):
      carl9170: fix sleep in softirq context

Sarveshwar Bandi (1):
      bridge: Pull ip header into skb->data before looking into ip header.

Thomas Pedersen (1):
      mac80211: call drv_get_tsf() in sleepable context

Wei Yongjun (1):
      ath5k: fix potential NULL pointer dereference in ath5k_beacon_update()

stephen hemminger (10):
      vxlan: minor output refactoring
      vxlan: fix byte order in hash function
      vxlan: use ip_route_output
      vxlan: associate with tunnel socket on transmit
      vxlan: allow configuring port range
      vxlan: add additional headroom
      vxlan: fix receive checksum handling
      vxlan: fix oops when give unknown ifindex
      ipv4: fix route mark sparse warning
      vti: fix sparse bit endian warnings

 drivers/isdn/i4l/isdn_ppp.c                  |   2 +-
 drivers/net/ethernet/intel/e1000e/e1000.h    |   6 ++--
 drivers/net/ethernet/intel/e1000e/netdev.c   |   2 +-
 drivers/net/ethernet/jme.c                   |   4 +++
 drivers/net/usb/cdc_eem.c                    |   4 +++
 drivers/net/usb/kaweth.c                     |   2 +-
 drivers/net/usb/mcs7830.c                    |  30 ++++++++++++------
 drivers/net/usb/usbnet.c                     |  17 +++++++++++
 drivers/net/vxlan.c                          | 148 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------
 drivers/net/wireless/ath/ath5k/base.c        |   3 +-
 drivers/net/wireless/ath/ath9k/beacon.c      |   2 +-
 drivers/net/wireless/ath/ath9k/hw.c          |   5 +++
 drivers/net/wireless/ath/ath9k/hw.h          |   1 +
 drivers/net/wireless/ath/ath9k/main.c        |  15 +++------
 drivers/net/wireless/ath/ath9k/pci.c         |   7 +++++
 drivers/net/wireless/ath/ath9k/xmit.c        |  53 +++++++++++++++++---------------
 drivers/net/wireless/ath/carl9170/carl9170.h |   1 +
 drivers/net/wireless/ath/carl9170/main.c     |  29 +++++++++---------
 drivers/net/wireless/mwifiex/cfg80211.c      |  27 +++++++++++++----
 drivers/net/wireless/mwifiex/join.c          |   6 ++--
 drivers/net/wireless/mwifiex/main.h          |   2 +-
 drivers/net/wireless/mwifiex/scan.c          |  38 ++++++++++++-----------
 drivers/net/wireless/mwifiex/sta_cmdresp.c   |   4 +--
 drivers/net/wireless/mwifiex/sta_event.c     |  31 ++++++++++++-------
 drivers/net/wireless/rt2x00/rt2800lib.c      |   4 +--
 drivers/net/xen-netback/netback.c            |  40 +++++++++++++++++++++---
 drivers/usb/class/cdc-acm.c                  |   3 ++
 include/linux/can/Kbuild                     |   5 ---
 include/linux/if_link.h                      |   6 ++++
 include/linux/of_mdio.h                      |  20 ++++++------
 include/linux/usb/usbnet.h                   |   2 ++
 include/linux/wimax/Kbuild                   |   1 -
 include/uapi/linux/can/Kbuild                |   5 +++
 include/{ => uapi}/linux/can/bcm.h           |   0
 include/{ => uapi}/linux/can/error.h         |   0
 include/{ => uapi}/linux/can/gw.h            |   0
 include/{ => uapi}/linux/can/netlink.h       |   0
 include/{ => uapi}/linux/can/raw.h           |   0
 include/uapi/linux/wimax/Kbuild              |   1 +
 include/{ => uapi}/linux/wimax/i2400m.h      |   0
 net/bridge/br_netfilter.c                    |   3 ++
 net/core/pktgen.c                            | 146 ++++++++++++++++++---------------------------------------------------------------------
 net/core/utils.c                             |  24 +++++++++++++++
 net/ipv4/ip_vti.c                            |   4 +--
 net/ipv4/route.c                             |   2 +-
 net/ipv4/sysctl_net_ipv4.c                   |   2 ++
 net/ipv4/tcp_ipv4.c                          |   7 +++--
 net/ipv6/tcp_ipv6.c                          |   3 +-
 net/mac80211/mesh_sync.c                     |   3 +-
 net/mac80211/status.c                        |   4 +--
 net/mac80211/tx.c                            |  22 ++++++++------
 51 files changed, 450 insertions(+), 296 deletions(-)
 rename include/{ => uapi}/linux/can/bcm.h (100%)
 rename include/{ => uapi}/linux/can/error.h (100%)
 rename include/{ => uapi}/linux/can/gw.h (100%)
 rename include/{ => uapi}/linux/can/netlink.h (100%)
 rename include/{ => uapi}/linux/can/raw.h (100%)
 rename include/{ => uapi}/linux/wimax/i2400m.h (100%)

^ permalink raw reply

* Re: [RFC v4 1/1] net/hsr: Support for the HSR protocol (IEC:2010 / HSR v0)
From: Stephen Hemminger @ 2012-10-12 18:57 UTC (permalink / raw)
  To: Arvid Brodin
  Cc: netdev@vger.kernel.org, joe@perches.com, jboticario@gmail.com,
	balferreira@googlemail.com
In-Reply-To: <50784F2D.1060200@xdin.com>

On Fri, 12 Oct 2012 17:11:12 +0000
Arvid Brodin <Arvid.Brodin@xdin.com> wrote:

> This would add support for the High-availability Seamless Redundancy network
> protocol, version 0 (2010).
> 
> This RFC is NOT meant for mainline inclusion at the moment since we're trying
> to figure out how to handle a probable incompatibility with the newer
> HSR v1 (2012) standard.
> 
> ---
> 
> This RFC is mainly to let you know that I'm still working on this patch. This
> is now a pretty complete implementation of the HSR v0 (2010) protocol. As
> explained above, the main reason I'm still not sending this as a real patch
> meant for mainline inclusion, is the fact that IEC recently released an updated
> standard (HSR v1 / 2012) which as far as I can tell is not backwards compatible
> with the 2010 standard implemented by this patch.
> 
> At the moment we're trying to figure out what to do about this.
> 
> Changes from RFC v3:
> 
> 	* Fixed style issues.
> 	* More thorough device stats updates.
> 	* Fixed bug where node that is downed and restarted within
> 	  NODE_FORGET_TIME is never seen by other nodes.
> 	* In RFC v3, a slave that was unregistered (e.g. USB network device that
> 	  was unplugged) would crash the kernel. Works OK now.
> 	* Slave envent handling: MTU change, MAC address change, unregister,
> 	  type change.
> 	* Master event handling: MTU change.
> 	* Removed NONSTANDARD_HSR config option.
> 	* Guards for VLAN/HSR combo (allowed by the HSR standard, but not yet
> 	  implemented).
> 
> The patch has mostly been tested on 2.6.37, then modified to apply and compile
> on 3.6.1.

Thanks for keeping up with this, I know it must seem like a long
struggle to get it upstream.

1. Since this is new functionality, it should be submitted against net-next
   tree. Dave isn't accepting patches for that yet.
2. Lots of formatting issues. Please run checkpatch.
3. Minor nits:

Could this be replaced by netif_running()?
+static bool is_admin_up(struct net_device *dev)
+{
+	return (dev && (dev->flags & IFF_UP));
+}

And this by netif_oper_up()?

+static bool is_operstate_up(struct net_device *dev)
+{
+	return (dev && (dev->operstate == IF_OPER_UP));
+}
+

^ permalink raw reply

* RE: [PATCH] tcp resets are misrouted
From: Shawn Lu @ 2012-10-12 17:31 UTC (permalink / raw)
  To: Debabrata Banerjee, Alexey Kuznetsov, Banerjee, Debabrata
  Cc: netdev@vger.kernel.org, davem@davemloft.net,
	eric.dumazet@gmail.com, sol@eqv.ru
In-Reply-To: <CAATkVEwBenKmZLVPzu7XoxziOCcWGz3sGXfOx7J9Yp43MJAK-A@mail.gmail.com>

I admit the commit e2446eaa did break the reset in asymmetric case.  There are also many use cases in interface binding, we don't want to break it too... I am ok with your patch, if asymmetric route take higher priority. Somehow, we need  come up with another one to resolve RST lost in binding interface case, otherwise, people using interface binding will find later on that RST break again...    

thanks!

Shawn Lu <shawn.lu@ericsson.com> 

> -----Original Message-----
> From: Debabrata Banerjee [mailto:dbavatar@gmail.com] 
> Sent: Friday, October 12, 2012 8:57 AM
> To: Alexey Kuznetsov; Banerjee, Debabrata
> Cc: netdev@vger.kernel.org; davem@davemloft.net; Shawn Lu; 
> eric.dumazet@gmail.com; sol@eqv.ru
> Subject: Re: [PATCH] tcp resets are misrouted
> 
> On Fri, Oct 12, 2012 at 10:34 AM, Alexey Kuznetsov 
> <kuznet@ms2.inr.ac.ru> wrote:
> > After commit e2446eaa.. tcp resets are always lost, when 
> routing is asymmetric.
> > Yes, backing out that patch will result in misrouting of resets for 
> > dead connections which used interface binding when were 
> alive, but we actually cannot do anything here.
> > What's died that's died and correct handling normal unbound 
> connections is obviously a priority.
> >
> > Comment to comment:
> >> This has few benefits:
> >>   1. tcp_v6_send_reset already did that.
> >
> > It was done to route resets for IPv6 link local addresses. It was a 
> > mistake to do so for global addresses. The patch fixes this as well.
> >
> > Actually, the problem appears to be even more serious than 
> guaranteed loss of resets.
> > As reported by Sergey Soloviev <sol@eqv.ru>, those misrouted resets 
> > create a lot of arp traffic and huge amount of unresolved 
> arp entires 
> > putting down to knees NAT firewalls which use asymmetric routing.
> >
> > Signed-off-by: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
> > ---
> >  net/ipv4/tcp_ipv4.c |    7 ++++---
> >  net/ipv6/tcp_ipv6.c |    3 ++-
> >  2 files changed, 6 insertions(+), 4 deletions(-)
> >
> > diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 
> > 75735c9..ef998b0 100644
> > --- a/net/ipv4/tcp_ipv4.c
> > +++ b/net/ipv4/tcp_ipv4.c
> > @@ -708,10 +708,11 @@ static void tcp_v4_send_reset(struct 
> sock *sk, struct sk_buff *skb)
> >         arg.csumoffset = offsetof(struct tcphdr, check) / 2;
> >         arg.flags = (sk && inet_sk(sk)->transparent) ? 
> IP_REPLY_ARG_NOSRCCHECK : 0;
> >         /* When socket is gone, all binding information is lost.
> > -        * routing might fail in this case. using iif for oif to
> > -        * make sure we can deliver it
> > +        * routing might fail in this case. No choice here, 
> if we choose to force
> > +        * input interface, we will misroute in case of 
> asymmetric route.
> >          */
> > -       arg.bound_dev_if = sk ? sk->sk_bound_dev_if : inet_iif(skb);
> > +       if (sk)
> > +               arg.bound_dev_if = sk->sk_bound_dev_if;
> >
> >         net = dev_net(skb_dst(skb)->dev);
> >         arg.tos = ip_hdr(skb)->tos;
> > diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 
> > 49c8903..26175bf 100644
> > --- a/net/ipv6/tcp_ipv6.c
> > +++ b/net/ipv6/tcp_ipv6.c
> > @@ -877,7 +877,8 @@ static void tcp_v6_send_response(struct 
> sk_buff *skb, u32 seq, u32 ack, u32 win,
> >         __tcp_v6_send_check(buff, &fl6.saddr, &fl6.daddr);
> >
> >         fl6.flowi6_proto = IPPROTO_TCP;
> > -       fl6.flowi6_oif = inet6_iif(skb);
> > +       if (ipv6_addr_type(&fl6.daddr) & IPV6_ADDR_LINKLOCAL)
> > +               fl6.flowi6_oif = inet6_iif(skb);
> >         fl6.fl6_dport = t1->dest;
> >         fl6.fl6_sport = t1->source;
> >         security_skb_classify_flow(skb, flowi6_to_flowi(&fl6));
> > --
> > 1.7.2.3
> >
> 
> We ran into this as well and pulled that commit from our 
> tree, it was causing serious problems. Sending the RST back 
> on the iif was definitely the wrong thing to do. Patch looks 
> good to me.
> 
> Thanks,
> Debabrata
> 

^ permalink raw reply

* Re: [PATCH v2] net: calxedaxgmac: rework transmit ring handling
From: Eric Dumazet @ 2012-10-12 18:30 UTC (permalink / raw)
  To: Rob Herring
  Cc: linux-kernel, netdev, jonathan, Mark Langsdorf, Rob Herring,
	Ben Hutchings
In-Reply-To: <1350065099-32649-1-git-send-email-robherring2@gmail.com>

On Fri, 2012-10-12 at 13:04 -0500, Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
> 
> Only generate tx interrupts on every ring size / 4 descriptors. Move the
> netif_stop_queue call to the end of the xmit function rather than
> checking at the beginning.
> 
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> ---
> v2:
> - Add missed enabling of the descriptor tx interrupt

Seems to be net-next material to me.

Furthermore, your changelog is a bit terse for such a patch, that could
easily break upper layers.

You need to tell us how long TX completion for a packet might be
deferred.

Thanks

^ permalink raw reply

* [PATCH v2] net: calxedaxgmac: rework transmit ring handling
From: Rob Herring @ 2012-10-12 18:04 UTC (permalink / raw)
  To: linux-kernel, netdev
  Cc: jonathan, eric.dumazet, Mark Langsdorf, Rob Herring,
	Ben Hutchings
In-Reply-To: <1350054908-30646-6-git-send-email-robherring2@gmail.com>

From: Rob Herring <rob.herring@calxeda.com>

Only generate tx interrupts on every ring size / 4 descriptors. Move the
netif_stop_queue call to the end of the xmit function rather than
checking at the beginning.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
---
v2:
- Add missed enabling of the descriptor tx interrupt

 drivers/net/ethernet/calxeda/xgmac.c |   24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/drivers/net/ethernet/calxeda/xgmac.c b/drivers/net/ethernet/calxeda/xgmac.c
index 4a1a06a..38eb1b2 100644
--- a/drivers/net/ethernet/calxeda/xgmac.c
+++ b/drivers/net/ethernet/calxeda/xgmac.c
@@ -211,7 +211,7 @@
 #define DMA_INTR_ENA_TIE	0x00000001	/* Transmit Interrupt */
 
 #define DMA_INTR_NORMAL		(DMA_INTR_ENA_NIE | DMA_INTR_ENA_RIE | \
-				 DMA_INTR_ENA_TUE)
+				 DMA_INTR_ENA_TUE | DMA_INTR_ENA_TIE)
 
 #define DMA_INTR_ABNORMAL	(DMA_INTR_ENA_AIE | DMA_INTR_ENA_FBE | \
 				 DMA_INTR_ENA_RWE | DMA_INTR_ENA_RSE | \
@@ -374,6 +374,7 @@ struct xgmac_priv {
 	struct sk_buff **tx_skbuff;
 	unsigned int tx_head;
 	unsigned int tx_tail;
+	int tx_irq_cnt;
 
 	void __iomem *base;
 	unsigned int dma_buf_sz;
@@ -886,7 +887,7 @@ static void xgmac_tx_complete(struct xgmac_priv *priv)
 	}
 
 	if (dma_ring_space(priv->tx_head, priv->tx_tail, DMA_TX_RING_SZ) >
-	    TX_THRESH)
+	    MAX_SKB_FRAGS)
 		netif_wake_queue(priv->dev);
 }
 
@@ -1057,19 +1058,15 @@ static netdev_tx_t xgmac_xmit(struct sk_buff *skb, struct net_device *dev)
 	struct xgmac_priv *priv = netdev_priv(dev);
 	unsigned int entry;
 	int i;
+	u32 irq_flag;
 	int nfrags = skb_shinfo(skb)->nr_frags;
 	struct xgmac_dma_desc *desc, *first;
 	unsigned int desc_flags;
 	unsigned int len;
 	dma_addr_t paddr;
 
-	if (dma_ring_space(priv->tx_head, priv->tx_tail, DMA_TX_RING_SZ) <
-	    (nfrags + 1)) {
-		writel(DMA_INTR_DEFAULT_MASK | DMA_INTR_ENA_TIE,
-			priv->base + XGMAC_DMA_INTR_ENA);
-		netif_stop_queue(dev);
-		return NETDEV_TX_BUSY;
-	}
+	priv->tx_irq_cnt = (priv->tx_irq_cnt + 1) & (DMA_TX_RING_SZ/4 - 1);
+	irq_flag = priv->tx_irq_cnt ? 0 : TXDESC_INTERRUPT;
 
 	desc_flags = (skb->ip_summed == CHECKSUM_PARTIAL) ?
 		TXDESC_CSUM_ALL : 0;
@@ -1110,9 +1107,9 @@ static netdev_tx_t xgmac_xmit(struct sk_buff *skb, struct net_device *dev)
 	/* Interrupt on completition only for the latest segment */
 	if (desc != first)
 		desc_set_tx_owner(desc, desc_flags |
-			TXDESC_LAST_SEG | TXDESC_INTERRUPT);
+			TXDESC_LAST_SEG | irq_flag);
 	else
-		desc_flags |= TXDESC_LAST_SEG | TXDESC_INTERRUPT;
+		desc_flags |= TXDESC_LAST_SEG | irq_flag;
 
 	/* Set owner on first desc last to avoid race condition */
 	wmb();
@@ -1121,6 +1118,9 @@ static netdev_tx_t xgmac_xmit(struct sk_buff *skb, struct net_device *dev)
 	priv->tx_head = dma_ring_incr(entry, DMA_TX_RING_SZ);
 
 	writel(1, priv->base + XGMAC_DMA_TX_POLL);
+	if (dma_ring_space(priv->tx_head, priv->tx_tail, DMA_TX_RING_SZ) <
+	    MAX_SKB_FRAGS)
+		netif_stop_queue(dev);
 
 	return NETDEV_TX_OK;
 }
@@ -1397,7 +1397,7 @@ static irqreturn_t xgmac_interrupt(int irq, void *dev_id)
 	}
 
 	/* TX/RX NORMAL interrupts */
-	if (intr_status & (DMA_STATUS_RI | DMA_STATUS_TU)) {
+	if (intr_status & (DMA_STATUS_RI | DMA_STATUS_TU | DMA_STATUS_TI)) {
 		writel_relaxed(DMA_INTR_ABNORMAL, priv->base + XGMAC_DMA_INTR_ENA);
 		napi_schedule(&priv->napi);
 	}
-- 
1.7.9.5

^ permalink raw reply related

* Re: [PATCH v2] mcs7830: Fix link state detection
From: David Miller @ 2012-10-12 17:59 UTC (permalink / raw)
  To: linux; +Cc: andi, gregkh, lkml20120218, netdev, linux-kernel
In-Reply-To: <201210121051.42359.linux@rainbow-software.org>

From: Ondrej Zary <linux@rainbow-software.org>
Date: Fri, 12 Oct 2012 10:51:41 +0200

> The device had an undocumented "feature": it can provide a sequence of
> spurious link-down status data even if the link is up all the time.
> A sequence of 10 was seen so update the link state only after the device
> reports the same link state 20 times.
> 
> Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
> Reported-by: Michael Leun <lkml20120218@newton.leun.net>
> Tested-by: Michael Leun <lkml20120218@newton.leun.net>

Applied.

^ permalink raw reply

* Re: [PATCH 2/2] net: add doc for in4_pton()
From: David Miller @ 2012-10-12 17:59 UTC (permalink / raw)
  To: amwang; +Cc: netdev
In-Reply-To: <1350025577-792-2-git-send-email-amwang@redhat.com>

From: Cong Wang <amwang@redhat.com>
Date: Fri, 12 Oct 2012 15:06:17 +0800

> It is not easy to use in4_pton() correctly without reading
> its definition, so add some doc for it.
> 
> Cc: David S. Miller <davem@davemloft.net>
> Signed-off-by: Cong Wang <amwang@redhat.com>

Applied.

^ permalink raw reply

* RE: [PATCH] tcp resets are misrouted
From: Shawn Lu @ 2012-10-12 17:58 UTC (permalink / raw)
  To: Banerjee, Debabrata, Debabrata Banerjee, Alexey Kuznetsov
  Cc: netdev@vger.kernel.org, davem@davemloft.net,
	eric.dumazet@gmail.com, sol@eqv.ru
In-Reply-To: <CC9DCD9C.B68D%dbanerje@akamai.com>

Yes. The scenario is  the kernel doesn't have enough information to routing the packet, so application depend on binding to interface to shortcut routing.  

thanks!

Shawn Lu <shawn.lu@ericsson.com> 

> -----Original Message-----
> From: Banerjee, Debabrata [mailto:dbanerje@akamai.com] 
> Sent: Friday, October 12, 2012 10:48 AM
> To: Shawn Lu; Debabrata Banerjee; Alexey Kuznetsov
> Cc: netdev@vger.kernel.org; davem@davemloft.net; 
> eric.dumazet@gmail.com; sol@eqv.ru
> Subject: Re: [PATCH] tcp resets are misrouted
> 
> I was trying to think of the scenario you were running into, 
> since it falls back to using a route lookup. You do not have 
> routes on your machine that would correctly send the packet, 
> I assume? Then it simply comes down to the kernel doesn't 
> have enough information to know where to send the packet.
> 
> Debabrata
> 
> On 10/12/12 1:31 PM, "Shawn Lu" <shawn.lu@ericsson.com> wrote:
> 
> >I admit the commit e2446eaa did break the reset in asymmetric case.
> >There are also many use cases in interface binding, we don't want to 
> >break it too... I am ok with your patch, if asymmetric route take 
> >higher priority. Somehow, we need  come up with another one 
> to resolve 
> >RST lost in binding interface case, otherwise, people using 
> interface 
> >binding will find later on that RST break again...
> >
> >thanks!
> >
> >Shawn Lu <shawn.lu@ericsson.com>
> >
> >> -----Original Message-----
> >> From: Debabrata Banerjee [mailto:dbavatar@gmail.com]
> >> Sent: Friday, October 12, 2012 8:57 AM
> >> To: Alexey Kuznetsov; Banerjee, Debabrata
> >> Cc: netdev@vger.kernel.org; davem@davemloft.net; Shawn Lu; 
> >> eric.dumazet@gmail.com; sol@eqv.ru
> >> Subject: Re: [PATCH] tcp resets are misrouted
> >> 
> >> On Fri, Oct 12, 2012 at 10:34 AM, Alexey Kuznetsov 
> >> <kuznet@ms2.inr.ac.ru> wrote:
> >>
> >> 
> >> We ran into this as well and pulled that commit from our 
> tree, it was 
> >> causing serious problems. Sending the RST back on the iif was 
> >> definitely the wrong thing to do. Patch looks good to me.
> >> 
> >> Thanks,
> >> Debabrata
> >> 
> 
> 

^ permalink raw reply

* Re: [PATCH 1/2] net: add doc for in6_pton()
From: David Miller @ 2012-10-12 17:58 UTC (permalink / raw)
  To: amwang; +Cc: netdev
In-Reply-To: <1350025577-792-1-git-send-email-amwang@redhat.com>

From: Cong Wang <amwang@redhat.com>
Date: Fri, 12 Oct 2012 15:06:16 +0800

> It is not easy to use in6_pton() correctly without reading
> its definition, so add some doc for it.
> 
> Cc: David S. Miller <davem@davemloft.net>
> Signed-off-by: Cong Wang <amwang@redhat.com>

Applied.

^ permalink raw reply

* Re: [PATCH] vti: fix sparse bit endian warnings
From: David Miller @ 2012-10-12 17:57 UTC (permalink / raw)
  To: shemminger; +Cc: saurabh.mohan, netdev
In-Reply-To: <20121011155128.64774827@nehalam.linuxnetplumber.net>

From: Stephen Hemminger <shemminger@vyatta.com>
Date: Thu, 11 Oct 2012 15:51:28 -0700

> Use be32_to_cpu instead of htonl to keep sparse happy.
> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.org>

Using ntohl() would have been just as appropriate a fix, but
whatever, applied.  Thanks.

^ permalink raw reply

* Re: [PATCH] phy: add AT803x driver
From: David Miller @ 2012-10-12 17:56 UTC (permalink / raw)
  To: ujhelyi.m; +Cc: netdev, daniel, rd
In-Reply-To: <1350049656-22766-1-git-send-email-ujhelyi.m@gmail.com>

From: ujhelyi.m@gmail.com
Date: Fri, 12 Oct 2012 15:47:36 +0200

> From: Matus Ujhelyi <ujhelyi.m@gmail.com>
> 
> This driver add support for wake over lan on AT803x phys.
> 
> Signed-off-by: Matus Ujhelyi <ujhelyi.m@gmail.com>
> ---
>  drivers/net/phy/Kconfig  |    5 ++
>  drivers/net/phy/Makefile |    1 +
>  drivers/net/phy/at803x.c |  176 ++++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 182 insertions(+)
>  create mode 100644 drivers/net/phy/at803x.c
> 
> diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig
> index 3090dc6..e69d74e 100644
> --- a/drivers/net/phy/Kconfig
> +++ b/drivers/net/phy/Kconfig
> @@ -15,6 +15,11 @@ if PHYLIB
>  
>  comment "MII PHY device drivers"
>  
> +config AT803X_PHY
> +	tristate "Drivers for Atheros PHYs"
> +	---help---
> +	  Currently supports the AT8030 and AT8035 model

You should just put the model number into the tristate string.
Like: "Drivers for Atheros AT803X PHYs"

^ permalink raw reply

* Re: [PATCH] tcp resets are misrouted
From: Banerjee, Debabrata @ 2012-10-12 17:47 UTC (permalink / raw)
  To: Shawn Lu, Debabrata Banerjee, Alexey Kuznetsov
  Cc: netdev@vger.kernel.org, davem@davemloft.net,
	eric.dumazet@gmail.com, sol@eqv.ru
In-Reply-To: <62162DF05402B341B3DB59932A1FA992BB7FD4730D@EUSAACMS0702.eamcs.ericsson.se>

I was trying to think of the scenario you were running into, since it
falls back to using a route lookup. You do not have routes on your machine
that would correctly send the packet, I assume? Then it simply comes down
to the kernel doesn't have enough information to know where to send the
packet.

Debabrata

On 10/12/12 1:31 PM, "Shawn Lu" <shawn.lu@ericsson.com> wrote:

>I admit the commit e2446eaa did break the reset in asymmetric case.
>There are also many use cases in interface binding, we don't want to
>break it too... I am ok with your patch, if asymmetric route take higher
>priority. Somehow, we need  come up with another one to resolve RST lost
>in binding interface case, otherwise, people using interface binding will
>find later on that RST break again...
>
>thanks!
>
>Shawn Lu <shawn.lu@ericsson.com>
>
>> -----Original Message-----
>> From: Debabrata Banerjee [mailto:dbavatar@gmail.com]
>> Sent: Friday, October 12, 2012 8:57 AM
>> To: Alexey Kuznetsov; Banerjee, Debabrata
>> Cc: netdev@vger.kernel.org; davem@davemloft.net; Shawn Lu;
>> eric.dumazet@gmail.com; sol@eqv.ru
>> Subject: Re: [PATCH] tcp resets are misrouted
>> 
>> On Fri, Oct 12, 2012 at 10:34 AM, Alexey Kuznetsov
>> <kuznet@ms2.inr.ac.ru> wrote:
>>
>> 
>> We ran into this as well and pulled that commit from our
>> tree, it was causing serious problems. Sending the RST back
>> on the iif was definitely the wrong thing to do. Patch looks
>> good to me.
>> 
>> Thanks,
>> Debabrata
>> 

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox