Martynas Pumputis
e611f04f41
Move NetDev utils from common/ to net/
2016-10-19 17:03:30 +01:00
Martynas Pumputis
3492cd93d0
Use safe version of WithNetNS
2016-10-19 16:15:59 +01:00
Martynas Pumputis
7f92c8c4c6
Add a safer version of WithNetNS*
...
The introduced functions are executing the work function via
a process which executes "nsenter --net=path weaveutil ...".
2016-10-06 15:25:05 +01:00
Matthias Radestock
06a63db4cf
Merge branch '1.6'
2016-09-08 12:55:05 +01:00
Bryan Boreham
c69e140e9e
Check current tx value before trying to set it
2016-09-08 10:20:35 +01:00
Adam Harrison
f5a30c790e
Merge branch '1.6'
2016-07-28 11:30:47 +01:00
Martynas Pumputis
fd0a7efa23
Fix "weave ps" output when weave is not running
...
The #2418 has changed a behaviour of "weave ps" which outputs
"Link not found" in the case of weave not running. The previous
behaviour was to output an empty line.
2016-07-14 15:15:14 +01:00
Bryan Boreham
88bf64722f
Merge branch '1.6'
2016-07-12 10:33:38 +00:00
Martynas Pumputis
89221f117b
Denote WithNetNS* functions with unsafe
...
Please see https://github.com/weaveworks/weave/issues/2388#issuecomment-228365069
for more details.
2016-07-05 15:12:39 +01:00
Martynas Pumputis
05baa566c6
Refactor common.GetBridgeNetDev
...
- Optimize. Use LinkByName instead of iterating over list of available
links. Linux does not support interfaces with the same names.
- Remove unnecessary indirection in utility functions which return
common.NetDev.
2016-07-05 15:12:39 +01:00
Adam Harrison
f386548890
Maintain per-subnet ACCEPT rule for multicast ingress
2016-06-17 17:19:52 +01:00
Adam Harrison
c80d87554a
Maintain per-interface DROP rule for multicast ingress
2016-06-17 16:10:13 +01:00
Martynas Pumputis
7670fed72c
Add AWSVPC setup routines to the attach script
...
When running in the AWSVPC mode, we need to do the following:
- Keep the HW TX offloading on.
- Check that the allocated address belongs to the default subnet,
because only one subnet is allowed and it should be the default one.
If it is not possible to determine whether AWSVPC is on, we ignore
all the steps, because the attachment routines have to work
regardless whether the router is running and the AWSVPC detection
is done by querying the /ipinfo/tracker endpoint served by
the router.
2016-06-08 16:44:54 +01:00
Martynas Pumputis
c260536429
Add AWSVPC Tracker
...
The tracker is responsible for managing the AWSVPC route tables
which is used to implement the underlay routing based on VPC.
2016-06-08 16:44:54 +01:00
Martynas Pumputis
2266868648
Add the range.CIDRs functions
2016-06-08 16:44:54 +01:00
Bryan Boreham
b417696c66
Wait 1ms before sending gratuitous arp
2016-05-26 11:17:04 +00:00
Bryan Boreham
6dd109a5bb
Only do ethtool tx off in bridged (pcap) mode.
...
Detect the bridge type in the same way the weave script does.
2016-05-25 17:34:13 +01:00
Bryan Boreham
2702b85ee5
Improve veth name construction; use a constant instead of "ethwe"
2016-05-25 17:34:13 +01:00
Bryan Boreham
8717fd15ed
Use 'peer' and 'veth' instead of 'guest' and 'local', after review comments
2016-05-25 17:34:13 +01:00
Bryan Boreham
ac14b19db8
Move attach() and detach() from shell script to Go
2016-05-25 17:34:13 +01:00
Adam Harrison
e3ef473cd3
Utility function to disable tx checksum offload
2016-05-25 17:29:45 +01:00
Bryan Boreham
4fc2835d92
Extract AddRoute function
2016-05-25 17:29:45 +01:00
Bryan Boreham
85023e0a76
Extract AttachContainer() function
...
Also move netlink and netns code from common to net
Creates interface if not already there
Adds addresses
Move the set link 'up' to after addresses are added
2016-05-25 17:29:45 +01:00
Bryan Boreham
0257274aa8
Extract basic veth setup
2016-05-25 17:23:49 +01:00
Bryan Boreham
9aaa7f19fd
initialize via sub-function
2016-05-25 17:17:19 +01:00
Bryan Boreham
d59c170cd5
Remove veth on error
2016-05-25 17:17:19 +01:00
Bryan Boreham
f11d91badf
Extract veth creation and LinkSetUp to net package
2016-05-25 17:17:19 +01:00
Martynas Pumputis
85cea672d3
Change the type of entry.Free to address.Count
...
This change is backward compatible, because the underlying types of
address.Offset (the previous type) and address.Count are the same
and the Gob encoder does not require types to exactly correspond.
2016-05-16 15:03:05 +01:00
Bryan Boreham
d551b6b0a8
Review feedback
2016-05-13 16:27:28 +01:00
Bryan Boreham
d1e2aa6d36
Use quick.Check instead of many specific tests
2016-05-13 16:27:28 +01:00
Bryan Boreham
64dc7a1f69
Donate power-of-2-aligned ranges instead of just slicing at the mid-point.
...
Also fix up space tests to match.
2016-05-13 16:27:28 +01:00
Matthias Radestock
495a35a6a6
work around fd re-use bug in vishvananda/netlink
...
Closing a subscription can cause the associated fd to be re-used while
the subscription goroutine is also still trying to use it. Which can
have disastrous consequences.
So as a work around we don't close subscriptions. This means we leak
an fd, some buffer space, and goroutine. The latter will eventually
block in a channel send of a subscription event, since nothing is left
reading ont the other end. So at least it won't be consuming cycles.
2016-04-01 11:07:19 +01:00
Bryan Boreham
f11314ed3e
Introduce 'Count' type to avoid abusing 'Offset'
2016-03-19 11:47:34 +00:00
Bryan Boreham
604309fb53
Parse CIDR strings without separating into subnet and address
2016-03-02 17:21:52 -08:00
Bryan Boreham
b76e2a87cf
Store address+subnet prefix for 'owned' addresses
2016-03-02 17:21:24 -08:00
Matthias Radestock
6252871e93
Merge branch '1.4'
2016-02-09 09:30:19 +00:00
Bryan Boreham
9386c01845
Wait for multicast route on any interface, to match weave script
...
which only adds a route if there isn't one already
2016-02-08 14:04:25 +00:00
Bryan Boreham
78f2d82984
Extract function to listen on Unix socket
2016-02-01 10:11:46 +00:00
Matthias Radestock
3679065258
cope with nil route.Dst
...
Fixes #1932 .
2016-01-27 22:02:07 +00:00
Matthias Radestock
43419815f4
bypass netlink.LinkByIndex
...
since we are seeing some cases where it returns "Link not found" when
the link is in fact there.
2016-01-19 16:36:16 +00:00
Matthias Radestock
b5256f7b71
refactor: inline
...
This eliminates the unnecessary indirection via interface names,
instead identifying the interface by its index.
2016-01-19 16:36:16 +00:00
Matthias Radestock
0caa9dd652
cope with errors during route traversal
...
Fixes #1909 .
2016-01-19 15:28:31 +00:00
Bryan Boreham
3b29e8e6f2
Check for existing interfaces and routes after subscribing to receive new ones
2016-01-12 12:27:55 +00:00
Bryan Boreham
e230eeb486
Use upstream netlink code
2015-11-12 13:08:56 +00:00
Bryan Boreham
7b01dd9794
Drop use of interval notation
2015-11-04 16:45:16 +00:00
Bryan Boreham
6fce798164
Factor out deserializeRoute() func
2015-08-27 15:10:31 +01:00
Bryan Boreham
7801dcd849
Factor out common loop receiving from netlink
2015-08-27 15:10:31 +01:00
Bryan Boreham
2eed101a93
In weavewait, wait for the multicast route to be added before calling container entrypoint.
...
We have moved the 'route add' command to the end of 'attach', so this
indicates that all network interface set-up is complete.
2015-08-27 15:10:31 +01:00
Bryan Boreham
6e89b036e2
Wait for ethwe via netlink, not via polling or signals
...
('docker kill' breaks restart policy)
2015-08-27 15:03:41 +01:00
Tom Wilkie
9ab2da8deb
Add GET /name handler to return all dns entries (including tombstones) for debugging.
...
Also, make Address marshall into json as an IP string, not a number.
2015-07-20 12:03:33 +00:00