Commit Graph

547 Commits

Author SHA1 Message Date
John Stephens
c8a3950d8b Delete stale HNS endpoints when creating a network
Signed-off-by: John Stephens <johnstep@docker.com>
2018-03-05 00:12:00 -08:00
ZhiPeng Lu
83d1ce9fb5 fix for #1333, calling LinkDel to delete link device when the err of LinkByName is NULL
Signed-off-by: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
2018-02-28 16:57:39 +08:00
Flavio Crisciani
f8a7f2e7be Merge pull request #2058 from selansen/master
Allow user to specify default address pools for docker networks
2018-02-22 17:59:20 -08:00
selansen
4484ea17c3 Allow user to specify default address pools for docker networks
This is new feature that allows  user to specify which subnetwork
 Docker contrainer should choose from when it creates bridge network.

 This libnetwork commit is to address moby PR 36054
Signed-off-by: selansen <elango.siva@docker.com>
2018-02-22 12:14:59 -05:00
Wataru Ishida
2120ed2363 Support SCTP port mapping
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2018-02-13 16:01:03 +09:00
Nick Wood
bbbfa21a94 libnetwork Windows driver support for outboundnat policy via generic options
Signed-off-by: Nick Wood <nwood@microsoft.com>
2018-02-05 17:07:26 -08:00
Flavio Crisciani
e975f3caa0 Fix watchMiss thread context
The netlink deserialize is fetching information from the link.
This require the go routine to be in the correct namespace to
succeed

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2018-01-10 13:50:49 -08:00
Flavio Crisciani
dd47466a4d Remove watchMiss for swarm mode
Swarm mode does not really have anymore a use for the watchMiss.
Peer entries are configured at configuration time.
If the gcthresh denies the insertion the peerAdd will fail.

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2018-01-05 14:51:43 -08:00
Flavio Crisciani
7b146b3443 Merge pull request #2021 from soccerGB/disable_gatewaydns
Added a new network creation driver option (disable_gatewaydns) for t…
2017-12-12 21:32:05 -08:00
Madhu Venugopal
b1ff9f5acb Merge pull request #1918 from fcrisciani/bridge-crash
Fix concurrent CreateNetwork in bridge driver
2017-12-05 17:40:26 -08:00
Flavio Crisciani
6736b223ec Set socket timeout on netlink sockets
In case the file descriptor of the netlink socket is closed
the recvfrom is not returning. This may create deadlock conditions.
The current solution is to make sure that all the netlink socket used
have a proper timeout set on them to have the possibility to return

Added test to emulate the watchMiss condition

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-12-04 09:40:27 -08:00
Cheng-mean Liu
5a5b7fee33 Added a new network creation driver option (disable_gatewaydns) for the Windows driver
Signed-off-by: Cheng-mean Liu <soccerl@microsoft.com>
2017-11-21 11:35:32 -08:00
Sebastiaan van Stijn
276a452f17 Remove Solaris support
Solaris support for Docker will likely not reach completion,
so removing these files as they are not in use and not
maintained.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2017-10-25 15:33:06 +02:00
Madhu Venugopal
1d1f63d4fb Merge pull request #1951 from msabansal/savefail
Ignore failure to save hns endpoint to store
2017-10-24 10:56:27 -07:00
Madhu Venugopal
98fb784130 Merge pull request #1964 from pradipd/hotadd
Enable Hotadd support for windows
2017-10-08 12:28:15 -07:00
Sebastiaan van Stijn
01688ba253 Fix typo in overlay log message
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2017-10-07 01:55:30 +02:00
Flavio Crisciani
1fe48e8608 Fix IPMask marshalling
Fix marshalling and add test

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-10-03 19:38:54 -07:00
Flavio Crisciani
1bb664f689 Merge pull request #1788 from abhi/ipam_alloc
Serializing bitseq alloc
2017-10-03 13:30:34 -07:00
Abhinandan Prativadi
3d44975995 Adding a unit case to verify rollover
Signed-off-by: Abhinandan Prativadi <abhi@docker.com>
2017-10-03 12:15:34 -07:00
Pradip Dhara
955b8b4593 Changing containerID to sandboxID based off feedback/conversation with Madhu.
Signed-off-by: Pradip Dhara <pradipd@microsoft.com>
2017-10-02 22:48:06 -07:00
Madhan Raj Mookkandy
b0888450a9 Enable Hot Add/Remove of Network Endpoints for Windows
Signed-off-by: Madhan Raj Mookkandy <madhanm@microsoft.com>
2017-10-02 22:19:18 -07:00
Flavio Crisciani
ad577a25fe Changed ipMask to string
Avoid error logs in case of local peer case, there is no need for deleteNeighbor
Avoid the network leave to readvertise already deleted entries to upper layer

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-10-02 17:29:18 -07:00
Flavio Crisciani
181115b350 Addressing code review comments
Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-10-02 11:12:36 -07:00
Flavio Crisciani
2bad0fbedf log for miss notification
Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-10-02 11:12:36 -07:00
Flavio Crisciani
3e7b6c9cb0 flush peerdb entries on network delete
peerDB was never being flushed on network delete
leaveing behind stale entries

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-10-02 11:12:35 -07:00
Flavio Crisciani
711d033757 Handle IP reuse in overlay
In case of IP reuse locally there was a race condition
that was leaving the overlay namespace with wrong configuration
causing connectivity issues.
This commit introduces the use of setMatrix to handle the transient
state and make sure that the proper configuration is maintained

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-10-02 11:12:33 -07:00
Sandeep Bansal
8b400916ce Ignore failure to save hns endpoint to store
Signed-off-by: Sandeep Bansal <sabansal@microsoft.com>
2017-09-21 23:24:55 -07:00
Flavio Crisciani
729d45379f Fix lint issues
The package updated and now shows new warnings that had to be corrected
to let the CI pass

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-09-20 08:57:02 -07:00
Flavio Crisciani
7d466c6600 Fix concurrent CreateNetwork in bridge driver
The CreateNetwork in the bridge driver was not able to properly
handle concurrent operations causing 2 issues:
1) crash from nil pointer exception
2) not proper handling of conflicting configuration

This commit addresses the 2 previous mentioned issues
and adds a test for it.
The test with the original code has a low failure frequency
to confirm the fix I had to add a time.Sleep in the body of the
CreateNetwork so to have a 100% failure

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-09-08 15:18:33 -07:00
Flavio Crisciani
a0bdc52fd7 Merge pull request #1900 from pradipd/overlay_one_endpoint
Tasks connected to a swarm network will have 1 endpoint on windows RS3.
2017-08-28 09:22:28 -07:00
Flavio Crisciani
38382fb29b Merge pull request #1752 from aaronlehmann/sprintfs
all: Avoid trivial uses of Sprintf
2017-08-23 15:49:46 -07:00
Brian Goff
663672b8c7 Lock goroutine to OS thread while changing NS
Prevents an issue where the goroutine may jump to a new OS thread during
execution putting it into a mount/network NS that is unexpected.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
(cherry picked from commit 6d8617d8757a759d806a3307ca04d4d588c04aed)
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2017-08-16 12:14:56 -04:00
Flavio Crisciani
a15113e012 Remove useless flags on operations
In the peerDelete the updateDB flag was always true
In the peerAdd the updateDB flag was always true except for
the initSandbox case. But now the initSandbox is handled by the
go routing of the peer operations, so we can move that flag
down and remove it from the top level functions

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-08-14 09:20:55 -07:00
Madhu Venugopal
5de16c2168 Merge pull request #1902 from fcrisciani/fix-peerdelete
PeerDbDelete was passing the wrong field
2017-08-11 16:47:58 -07:00
Flavio Crisciani
b7c258cf07 PeerDbDelete was passing the wrong field
The peerDbDelete was passing the wrong field to the underlay
Delete operation causing the mac entry to not being deleted
from the bridge on the overlay. This caused connectivity issue
when a container that before was remote was now scheduled
on the local node. The entry was such:
bridge fdb show | grep -i 02:42:0a:01:00:02
02:42:0a:01:00:02 dev vxlan0 master br0
02:42:0a:01:00:02 dev vxlan0 dst 172.31.14.63 link-netnsid 0 self permanent
That was still pointing to a remove node

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-08-11 16:19:59 -07:00
Pradip Dhara
0651183f84 gofmt and lint changes.
Signed-off-by: Pradip Dhara <pradipd@microsoft.com>
2017-08-09 15:53:27 -07:00
Pradip Dhara
404a9ffa5a For RS3, tasks connected to a swarm network will have 1 endpoint .
Signed-off-by: Pradip Dhara <pradipd@microsoft.com>
2017-08-09 14:13:59 -07:00
Derek McGowan
710e0664c4 Update logrus to v1.0.1
Fix case sensitivity issue
Update docker and runc vendors

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2017-08-07 11:20:47 -07:00
Flavio Crisciani
2e38c53def PeerInit for the sandbox init
Move the sandbox init logic into the go routine that handles
peer operations.
This is to avoid deadlocks in the use of the pMap.Lock for the
network

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-08-05 12:07:31 -07:00
Flavio Crisciani
5c52ff49e0 Funnel peerAdd and peerDelete in a channel
Remove the need for the wait group and avoid new
locks
Added utility to print the method name and the caller name

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-08-05 12:07:31 -07:00
Flavio Crisciani
b8d514432d Revert "Avoid peerUpdate logic in swarm mode"
This reverts commit b65a4ee10e.

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-08-05 12:07:16 -07:00
Flavio Crisciani
b65a4ee10e Avoid peerUpdate logic in swarm mode
Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-08-02 15:29:12 -07:00
Flavio Crisciani
d261ccb89f Revert "Funnel peerAdd and peerDelete in a channel"
This reverts commit fee89e0490.

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-08-02 15:29:05 -07:00
Flavio Crisciani
fee89e0490 Funnel peerAdd and peerDelete in a channel
Remove the need for the wait group and avoid new
locks
Added utility to print the method name and the caller name

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-07-31 09:15:55 -07:00
Madhu Venugopal
7a064d0ec0 Merge pull request #1842 from sanimej/arp
Attempt neighbor entry reprogramming on L3 miss
2017-07-28 00:27:58 -07:00
Flavio Crisciani
daba67d67b Avoid flakiness of TestLinkContainers
Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-07-21 13:54:19 -07:00
Santhosh Manohar
a50e885121 When the gc_thresh3 value is reached kenel might remove existing
neighbor entries. On an l3 miss try to reprogram the neighbor entry
if the peer is valid. Its a best effort attempt because if the arp
table is still at gc_thresh3 value, addition will fail.

Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2017-07-13 17:01:30 -07:00
Madhu Venugopal
d01e1d38c3 Merge pull request #1755 from msabansal/msabansal/ics
Changes to support ICS network on windows
2017-07-07 18:28:13 +05:30
Sandeep Bansal
2d278dece0 Fixes docker daemon not restarting after endpoint leak on windows with transaprent network
Signed-off-by: Sandeep Bansal <sabansal@microsoft.com>
2017-06-15 13:27:48 -07:00
Flavio Crisciani
65860255c6 Fixed code issues
Fixed issues highlighted by the new checks

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-06-12 11:31:35 -07:00