Make port status change messages reliable.
authorBen Pfaff <blp@nicira.com>
Wed, 7 Jan 2009 17:28:19 +0000 (09:28 -0800)
committerBen Pfaff <blp@nicira.com>
Fri, 23 Jan 2009 18:52:06 +0000 (10:52 -0800)
commitd7ac3b3b9c779ce7b5cc733347108bec720fa67c
treeb56851fb37c6eceb806424004a853ba23bc3115d
parentf4f6a4f1f106b173a4af3d35a51f8a1e5ff49369
Make port status change messages reliable.

Until now, port status change messages were sent out by the datapath
implementations and simply relayed by secchan.  In the kernel
implementation, they were unreliable because they were sent out over the
multicast socket used for packet-in events: if many packet-in messages
arrived and filled up that socket's receive buffer, then any subsequent
port status change messages were dropped.

This change moves port status change detection from the datapath
implementations into secchan, making them reliable, by using a
netdev_monitor.

(An alternate implementation would have been to detect the socket
receive buffer overflow and poll the network devices.  The current
implementation was chosen because it removes code from the datapaths,
which is the direction we want to move in for the future.)
datapath/dp_notify.c
secchan/port-watcher.c
udatapath/datapath.c