Bug 963927

Summary: arping is not compatible with network namespaces
Product: Red Hat Enterprise Linux 6 Reporter: Maru Newby <mnewby>
Component: iputilsAssignee: Jan Synacek <jsynacek>
Status: CLOSED CURRENTRELEASE QA Contact: qe-baseos-daemons
Severity: high Docs Contact:
Priority: high    
Version: 6.4CC: azelinka, chrisw, cpelland, ddumas, kdube, lwang, mnewby, rkhan, rkukura, salmy, seansmith, snagar, tgraf
Target Milestone: rcKeywords: Patch, ZStream
Target Release: 6.5   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-11-14 10:37:08 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 880142, 883504, 968342, 971672    
Attachments:
Description Flags
workaround patch
none
[Patch] fall back when sysfs broadcast file is not readable none

Description Maru Newby 2013-05-16 19:14:52 UTC
Description of problem:

Attempting to invoke arping in a network namespace (presuming a netns-supporting kernel and iproute2 have been ocnfigured) does not work.


Version-Release number of selected component (if applicable):


How reproducible:

Consistent.


Steps to Reproduce:

1. Install a netns-supporting kernel/kernel-firmware/iproute.
2. Add a namespace: ip netns add namespace1
3. Add a veth pair: ip link add v0 type veth peer name v1 netns namespace1
4. Bring the netns device up: ip netns namespace1 exec ip link set v1 up
5: Invoke arping in the namespace on any ip: ip netns namespace1 arping -A -U -I v1 192.168.1.1

  
Actual results:

Stderr: 'sysfs read broadcast value: No such file or directory'


Expected results:

ARPING 192.168.1.1 from 192.168.1.1 veth0
Sent 3 probes (3 broadcast(s))
Received 0 response(s)


Additional info:

Comment 3 Thomas Graf 2013-05-16 22:54:27 UTC
Created attachment 749104 [details]
workaround patch

The background for this is that the netns backport for 6.5 is not complete and does not include the sysfs bits. This leads to the /sys/class/net/$DEV/ directory not being available in the non default netns. arping reads its broadcast address via sysfs.

The following workaround has been used successfully in combination with the netns backport and RHOS. It's a POC patch that should be converted into a fallback alternative if the sysfs broadcast file is not available, i.e. fall back to using a default broadcast address of '-1' if the broadcast address can't be read.

Alternatively the broadcast address could be read from a source other than sysfs, e.f. by parsing the output of 'ip link' or by issueing a netlink request which are both netns aware.

Comment 5 Jan Synacek 2013-05-21 07:52:42 UTC
Thomas, is there a possibility that the broadcast address could be anything else than all 0xff's? I'm not aware that it happens, so I think that the workaround patch is ok to apply, *as long as it gets removed once the netns backport is completed*.

Comment 6 Thomas Graf 2013-05-21 11:04:59 UTC
(In reply to Jan Synacek from comment #5)
> Thomas, is there a possibility that the broadcast address could be anything
> else than all 0xff's? I'm not aware that it happens, so I think that the
> workaround patch is ok to apply, *as long as it gets removed once the netns
> backport is completed*.

It could differ but only in very rare situations. What seems to be the best option forward is to fall back to all 0xff's if the sysfs file cannot be read.

Comment 7 Jan Synacek 2013-05-21 11:07:46 UTC
I agree. I'll write a patch doing exactly that.

Comment 8 Jan Synacek 2013-05-21 11:15:37 UTC
I'm setting the old needinfo flags that should have stayed there back.

Comment 10 Jan Synacek 2013-05-22 07:10:11 UTC
Created attachment 751541 [details]
[Patch] fall back when sysfs broadcast file is not readable