sliver-openvswitch.git
11 years agobump mainstream version number and reset taglevel to 1 sliver-openvswitch-1.9.90-1
Thierry Parmentelat [Fri, 23 Nov 2012 14:42:12 +0000 (15:42 +0100)]
bump mainstream version number and reset taglevel to 1

11 years agoUse ssh key in scp, if set
Giuseppe Lettieri [Thu, 15 Nov 2012 12:05:23 +0000 (13:05 +0100)]
Use ssh key in scp, if set

Reported-by: Felician Nemeth <nemethf@tmit.bme.hu>
11 years agoFix typo
Felician Nemeth [Tue, 13 Nov 2012 17:36:50 +0000 (18:36 +0100)]
Fix typo

11 years agoMerge branch 'mainstream'
Giuseppe Lettieri [Mon, 29 Oct 2012 16:27:21 +0000 (17:27 +0100)]
Merge branch 'mainstream'

11 years agodebian: Automatically up the slave interfaces of a bond.
Gurucharan Shetty [Tue, 4 Sep 2012 19:40:27 +0000 (12:40 -0700)]
debian: Automatically up the slave interfaces of a bond.

When physical interfaces are added to a bond through the
/etc/network/interfaces script, administratively 'up' the
slave interfaces.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
11 years agotimeval: Fix occasional backtrace() related deadlock.
Ethan Jackson [Fri, 26 Oct 2012 19:33:01 +0000 (12:33 -0700)]
timeval: Fix occasional backtrace() related deadlock.

Occasionally, backtrace() will deadlock in the signal handler
because it does some non signal safe initialization.  Specifically,
it opens a shared object.  As a work around, this patch forces
backtrace() to run outside of a signal handler, so that future
calls will perform as expected.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agoovs-save: Use timeout option for ovs-vsctl
Gurucharan Shetty [Fri, 26 Oct 2012 18:17:17 +0000 (11:17 -0700)]
ovs-save: Use timeout option for ovs-vsctl

Running ovs-save directly to save datapath configuration can
wait forever if ovsdb-server is not running. Use a timeout.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
11 years agonetdev-vport: Disable Path MTU Discovery by default
Ansis Atteka [Mon, 22 Oct 2012 07:04:28 +0000 (10:04 +0300)]
netdev-vport: Disable Path MTU Discovery by default

In near future we will switch to the flow-based tunneling and drop path
MTU discovery support. This patch prepares for that by changing the default
PMTUD value from 'enabled' to 'disabled'.

Signed-off-by: Ansis Atteka <aatteka@nicira.com>
11 years agoOF11: push_vlan support
Isaku Yamahata [Fri, 26 Oct 2012 04:43:19 +0000 (13:43 +0900)]
OF11: push_vlan support

This implementes push_vlan with 802.1Q.
NOTE: 802.1AD (QinQ) is not supported. It requires another effort.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agopoll-loop: Log backtraces when CPU usage is high.
Ethan Jackson [Mon, 22 Oct 2012 23:53:54 +0000 (16:53 -0700)]
poll-loop: Log backtraces when CPU usage is high.

Often when debugging Open vSwitch, one will see in the logs that
CPU usage has been high for some period of time, but it's totally
unclear why.  In an attempt to remedy the situation, this patch
logs backtraces taken at regular intervals as a poor man's
profiling alternative.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agotimeval: Coalesce backtraces with counts.
Ethan Jackson [Mon, 22 Oct 2012 22:42:31 +0000 (15:42 -0700)]
timeval: Coalesce backtraces with counts.

With this patch, `ovs-appctl backtrace` will return a unique list
of backtraces and a count of how many times it has been recorded.
This work had previously been done by ovs-parse-backtrace. However,
in future patches poll-loop will begin logging backtraces as a
matter of course.  At this point, coalescing the backtraces will
help keep these log messages brief.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agotimeval: Take a backtrace on each SIGALRM.
Ethan Jackson [Wed, 17 Oct 2012 23:43:38 +0000 (16:43 -0700)]
timeval: Take a backtrace on each SIGALRM.

With this patch, timeval will take a backtrace with each SIGALRM
allowing it to retrieve a profiling snapshot instantly.  This will
be useful in future patches when backtraces are logged.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agodebian: Save openflow flows during package upgrade.
Gurucharan Shetty [Wed, 24 Oct 2012 20:05:01 +0000 (13:05 -0700)]
debian: Save openflow flows during package upgrade.

When debian package for openvswitch-switch is upgraded,
export a variable, OVS_RESTART_SAVE_FLOWS=yes.
This will save the openflow flows in vswitchd and
re-apply it after the upgrade.

Feature #13555.
Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
11 years agoxenserver, rhel, debian: Use ovs-ctl restart.
Gurucharan Shetty [Wed, 24 Oct 2012 20:02:22 +0000 (13:02 -0700)]
xenserver, rhel, debian: Use ovs-ctl restart.

ovs-ctl has a new command called "restart" which
saves and restores the openflow flows on bridges.
Use that command from the init scripts when doing
a "restart --save-flows=yes".

Also, the debian package postinst script can
set the variable OVS_RESTART_SAVE_FLOWS to "yes"
to ask for save and restore of flows.

Feature #13555.
Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
11 years agoovs-ctl.in: Don't save flows if the daemons are not running.
Gurucharan Shetty [Wed, 24 Oct 2012 20:19:24 +0000 (13:19 -0700)]
ovs-ctl.in: Don't save flows if the daemons are not running.

When a 'ovs-ctl restart' is executed and the userspace daemons
like ovsdb-server and ovs-vswitchd are not running, attempt to
save flows can wait forever. This also results in the daemons
from not getting started.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
11 years agoPrepare for post-1.9.0 (1.9.90).
Ben Pfaff [Wed, 24 Oct 2012 23:13:31 +0000 (16:13 -0700)]
Prepare for post-1.9.0 (1.9.90).

Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoPrepare for 1.9.0.
Ben Pfaff [Wed, 24 Oct 2012 23:11:38 +0000 (16:11 -0700)]
Prepare for 1.9.0.

Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agodatapath: Fix zero key tunnels.
Pravin B Shelar [Wed, 24 Oct 2012 22:47:59 +0000 (15:47 -0700)]
datapath: Fix zero key tunnels.

Datapath tunneling check for flag OVS_FLOW_TNL_F_KEY is failing,
causing it to drop packet. This only happens on tunnels with
zero key as vswitchd does not generate set-tunnel action. Set
tunnel action sets this flags for given action. To fix this issue
the check is dropped.

Bug #13666

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Kyle Mestery <kmestery@cisco.com>
Acked-by: Jesse Gross <jesse@nicira.com>
11 years agoAllow processing of RARP packets.
Mehak Mahajan [Wed, 24 Oct 2012 02:00:02 +0000 (19:00 -0700)]
Allow processing of RARP packets.

With this commit, the datapath will process the ARP header for
RARP packets.  It also fixes a bug whereby if the ARP opcode is
something other than ARP request or reply, the key_len is not
adjusted to include ARP info.

Signed-off-by: Mehak Mahajan <mmahajan@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
11 years agoovs-ctl.in: Ability to save flows and kernel datapath config.
Gurucharan Shetty [Thu, 18 Oct 2012 22:44:37 +0000 (15:44 -0700)]
ovs-ctl.in: Ability to save flows and kernel datapath config.

Add a new command - "restart" to ovs-ctl. Calling this command
will save and restore the Openflow flows on each bridge while
stopping and starting the userspace daemons respectively.

Also, during a force-reload-kmod, save the flows and kernel datapath
configuration. Use the saved datapath configuration while readding
the kernel module and the flows while starting the userspace daemons.

Feature #13555.
Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
11 years agoUpdate INSTALL.Fedora to mention Fedora 17 instead of Fedora 15
Kyle Mestery [Mon, 22 Oct 2012 20:12:43 +0000 (16:12 -0400)]
Update INSTALL.Fedora to mention Fedora 17 instead of Fedora 15

Reflect the fact Fedora RPM support was recently implemented
on Fedora 17 instead of Fedora 15.

Signed-off-by: Kyle Mestery <kmestery@cisco.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agolib: Accomodate FreeBSD return value for ssl connection.
Ed Maste [Tue, 23 Oct 2012 13:50:10 +0000 (13:50 +0000)]
lib: Accomodate FreeBSD return value for ssl connection.

On FreeBSD I see ECONNRESET being returned from check_connection_completion
in ssl_connect.  This happens before entering the SSL states, which return
EPROTO on failure.

Signed-off-by: Ed Maste <emaste@adaranet.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoARP packets must have print arp_tpa/arp_spa instead of nw_dst/nw_src.
Mehak Mahajan [Mon, 22 Oct 2012 21:03:54 +0000 (14:03 -0700)]
ARP packets must have print arp_tpa/arp_spa instead of nw_dst/nw_src.

With a previous commit 953cc1888321346e6c4175fbc0a3f66d34913ea3, the
ovs logs were re-formatted such that they can be input into the
ofproto/trace.  For ARP packets, ofproto/trace expects arp_tpa/arp_spa
instead of nw_dst/nw_src.

Signed-off-by: Mehak Mahajan <mmahajan@nicira.com>
Acked-by: Ethan Jackson <ethan@nicira.com>
11 years agoDo not print ICMP fields for non IP packets.
Mehak Mahajan [Mon, 22 Oct 2012 21:01:40 +0000 (14:01 -0700)]
Do not print ICMP fields for non IP packets.

The packet's nw_proto field overlaps with the ARP opcode field.  The
nw_proto for ICMP packets is 1.  Hence when the packet is an ARP
request (opcode 1), we erroneously print the ICMP code and ICMP type
for ARP frames as well.  With this commit, the ICMP code and ICMP
type will be printed only if the packet is an IP packet and the
nw_proto is ICMP.

Signed-off-by: Mehak Mahajan <mmahajan@nicira.com>
Acked-by: Ethan Jackson <ethan@nicira.com>
11 years agoChange logging format for flows to that accepted by ofproto/trace.
Mehak Mahajan [Mon, 22 Oct 2012 21:00:35 +0000 (14:00 -0700)]
Change logging format for flows to that accepted by ofproto/trace.

flow_format() logs packets contents.  However, the format used is not
the format accepted by ofproto/trace.  Hence it becomes difficult to
trace the packets using the debugs printed.  With this commit, the
logging of the packet contents is done in a format that is accepted
by ofproto/trace.  This will make debugging easier.

Signed-off-by: Mehak Mahajan <mmahajan@nicira.com>
Acked-by: Ethan Jackson <ethan@nicira.com>
11 years agoovs-pki: Unique subject DNs for certificate requests.
Gurucharan Shetty [Mon, 22 Oct 2012 17:52:41 +0000 (10:52 -0700)]
ovs-pki: Unique subject DNs for certificate requests.

Some applications expect subject DNs to be unique.

Bug #13609.
Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
11 years agotimeval: Simplify poll interval logging.
Ethan Jackson [Fri, 19 Oct 2012 01:56:48 +0000 (18:56 -0700)]
timeval: Simplify poll interval logging.

log_poll_interval() is a little bit too aggressive, and is
therefore less useful than it could be.  This patch removes the
mean interval calculation, and simply logs if the poll loop took
longer than 1 second instead.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agoovs-vsctl: Do not accept any arguments to "del-manager" command.
Ben Pfaff [Mon, 15 Oct 2012 23:47:49 +0000 (16:47 -0700)]
ovs-vsctl: Do not accept any arguments to "del-manager" command.

It doesn't use them and never has.

Found when I accidentally typed this command with some arguments and it
worked, surprising me.

Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agodatapath: Tunnel port without destination IP.
Pravin B Shelar [Sat, 20 Oct 2012 19:18:05 +0000 (12:18 -0700)]
datapath: Tunnel port without destination IP.

Following patch allow port create without any parameters. This is
required for compatibility with future flow based tunneling
where each type would have single vport with all parameter
wild carded. So that all packet for all ports are received on
the port and same port is used for sending all traffic for
that tunnel type.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Kyle Mestery <kmestery@cisco.com>
Acked-by: Ben Pfaff <blp@nicira.com>
11 years agodatapath: Optimize flow key match for non tunnel flows.
Pravin B Shelar [Sat, 20 Oct 2012 19:17:15 +0000 (12:17 -0700)]
datapath: Optimize flow key match for non tunnel flows.

Following patch adds start offset for sw_flow-key, so that we can
skip tunneling information in key for non-tunnel flows.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Kyle Mestery <kmestery@cisco.com>
Acked-by: Ben Pfaff <blp@nicira.com>
11 years agodatapath: Add support for tun_key to Open vSwitch datapath
Kyle Mestery [Sat, 20 Oct 2012 19:15:24 +0000 (12:15 -0700)]
datapath: Add support for tun_key to Open vSwitch datapath

This is a first pass at providing a tun_key which can be
used as the basis for flow-based tunnelling. The
tun_key includes and replaces the tun_id in both struct
ovs_skb_cb and struct sw_tun_key.

This patch allows all existing tun_id behaviour to still work. Existing
users of tun_id are redirected to tun_key->tun_id to retain compatibility.
However, when the userspace code is updated to make use of the new
tun_key, the old behaviour will be deprecated and removed.

NOTE: With these changes, the tunneling code no longer assumes input and
output keys are symmetric.  If they are not, PMTUD needs to be disabled
for tunneling to work.

Signed-off-by: Kyle Mestery <kmestery@cisco.com>
Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Reviewed-by: Jesse Gross <jesse@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
11 years agoovs-ctl: Fix implementation of --extra-dbs.
Henry Mai [Fri, 19 Oct 2012 17:22:42 +0000 (10:22 -0700)]
ovs-ctl: Fix implementation of --extra-dbs.

Commit b4e8d1705 (ovsdb-server: Add support for multiple databases.)
added the --extra-dbs option to ovs-ctl but failed to add a specific
database name to the SSL options passed to ovsdb-server.  This meant
that ovsdb-server would fail to start if --extra-dbs were actually
used, because it didn't know which database to look in for the SSL
settings.

Signed-off-by: Henry Mai <hmai@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoofp-actions: Implement writing to metadata field
Joe Stringer [Thu, 18 Oct 2012 17:37:37 +0000 (02:37 +0900)]
ofp-actions: Implement writing to metadata field

In OpenFlow 1.1, we add support for OFPIT_WRITE_METADATA. This allows us to
write to the metadata field. Internally it is represented using ofpact_metadata.

We introduce NXAST_WRITE_METADATA to handle writing to the metadata field in
OpenFlow 1.0+. This structure reflects OFPIT_WRITE_METADATA.

When writing out the structure to OpenFlow 1.1, it uses the OFPIT_WRITE_METADATA
instruction only, and not the new NXAST action (which would be redundant).

Signed-off-by: Joe Stringer <joe@wand.net.nz>
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoofp-actions: Prefer OFPAT11_DEC_TTL to NXAST_DEC_TTL for OpenFlow 1.1+.
Ben Pfaff [Thu, 18 Oct 2012 18:12:38 +0000 (11:12 -0700)]
ofp-actions: Prefer OFPAT11_DEC_TTL to NXAST_DEC_TTL for OpenFlow 1.1+.

When "dec_ttl" is specified as the name of an action, in OpenFlow 1.1 and
later we should prefer to use the standardized action, rather than the
Nicira extension.

Reported-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Reviewed-by: Isaku Yamahata <yamahata@valinux.co.jp>
11 years agoofp-parse: Remove unreachable code.
Ben Pfaff [Thu, 18 Oct 2012 18:10:55 +0000 (11:10 -0700)]
ofp-parse: Remove unreachable code.

OFPUTIL_OFPAT11_DEC_NW_TTL does not have a name in the table of actions'
names, so this code in parse_named_action() can never be reached.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Reviewed-by: Isaku Yamahata <yamahata@valinux.co.jp>
11 years agonicira-ext: Clarify behavior of overlapping src and dst for NXAST_REG_MOVE.
Ben Pfaff [Tue, 16 Oct 2012 18:01:27 +0000 (11:01 -0700)]
nicira-ext: Clarify behavior of overlapping src and dst for NXAST_REG_MOVE.

Reported-by: Pankaj Thakkar <thakkar@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoofpaction: support OF11 pop_vlan
Isaku Yamahata [Wed, 17 Oct 2012 18:51:58 +0000 (03:51 +0900)]
ofpaction: support OF11 pop_vlan

This patch adds support of OF11+ pop_vlan.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
[blp@nicira.com added a test]
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoofp-util: Again allow OpenFlow port 0 in commands and actions.
Ben Pfaff [Wed, 17 Oct 2012 20:29:34 +0000 (13:29 -0700)]
ofp-util: Again allow OpenFlow port 0 in commands and actions.

Commit c6100d92142b (ovs-ofctl: Accept port keywords, OF1.1 port numbers,
reject port number 0.) intentionally prohibited using port 0, which is not
a valid OpenFlow port number, in OpenFlow commands and actions.  However,
since then we have discovered that the NVP controller uses port 0 in
"resubmit" actions and hence in flow matches as well.  This seems like a
valid enough use case; after all, the port number in a resubmit action is
really just an arbitrary number that need not (and preferably does not)
refer to an actual OpenFlow port.  Therefore, this commit restores the
ability to use port 0.

(Only functions that parse OpenFlow commands and actions from strings, not
those that interpret binary OpenFlow coming in on OpenFlow connections,
were affected by this prohibition, so this only comes up in corner cases
anyhow.)

Reported-by: Gurucharan Shetty <gshetty@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoofp-util: Separate output, error reporting in ofputil_port_from_string().
Ben Pfaff [Wed, 17 Oct 2012 20:10:08 +0000 (13:10 -0700)]
ofp-util: Separate output, error reporting in ofputil_port_from_string().

When I wrote this function I didn't think that port 0 was important (it's
not a valid OpenFlow port number) so I used a return value of 0 to indicate
an error.  However, my assumption turns out to be wrong, so this commit
changes the interface to use the return value only for error reporting
and store the parsed port number into a pointer passed in as a parameter.

This commit doesn't change the behavior of ofputil_port_from_string().

Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agolib: support OF11 dec_nw_ttl
Isaku Yamahata [Wed, 17 Oct 2012 22:02:04 +0000 (07:02 +0900)]
lib: support OF11 dec_nw_ttl

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
[blp@nicira.com changed code to use "dec_ttl" instead of "dec_nw_ttl"]
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoutilities: New helper ovs-parse-backtrace.
Ethan Jackson [Mon, 15 Oct 2012 19:42:48 +0000 (12:42 -0700)]
utilities: New helper ovs-parse-backtrace.

The new ovs-parse-backtrace utility makes the output of ovs-appctl
backtrace more human readable by removing duplicate traces and
converting addresses to function names.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agotimeval: Optionally enable cached timing at configure time.
Ethan Jackson [Wed, 17 Oct 2012 01:16:16 +0000 (18:16 -0700)]
timeval: Optionally enable cached timing at configure time.

Often when developing, it would be convenient to force OVS to
either enable or disable cached timing so that a feature can be
tested under both strategies.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agom4: Remove trailing whitespace.
Ethan Jackson [Wed, 17 Oct 2012 01:16:37 +0000 (18:16 -0700)]
m4: Remove trailing whitespace.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agostream.py: un-decorator Stream.register_method
Isaku Yamahata [Wed, 17 Oct 2012 18:18:16 +0000 (03:18 +0900)]
stream.py: un-decorator Stream.register_method

c38f8724aeb994fd840fa4283a07e38c3c114d68 made stream.py not use class
decorator. So Stream.register need not to be decorator any more.
So simplify it.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agostream.py: Don't use class decorators.
Reid Price [Wed, 17 Oct 2012 00:23:26 +0000 (17:23 -0700)]
stream.py: Don't use class decorators.

Commit 8cc820 (python/ovs/stream: teach stream.py tcp socket) made a
change that used class decorators.  Unfortunately, they were not
introduced until Python 2.6.  XenServer uses Python 2.4, so the change
caused some Python-based daemons not to start.  This commit uses an
alternate syntax suggested by Reid Price.

Bug #13580

Signed-off-by: Justin Pettit <jpettit@nicira.com>
Signed-off-by: Reid Price <reid@nicira.com>
11 years agoofp-actions: Remove unused variable.
Ethan Jackson [Tue, 16 Oct 2012 22:40:27 +0000 (15:40 -0700)]
ofp-actions: Remove unused variable.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agotimeval: Block SIGALRM when sleeping.
Ethan Jackson [Tue, 16 Oct 2012 00:05:35 +0000 (17:05 -0700)]
timeval: Block SIGALRM when sleeping.

Commit 00a16895 (timeval: Don't require signals for time_alarm().)
Incorrectly disabled signals when when CACHE_TIME was disabled.  In
fact, the reverse was correct.  As a result of this bug, OVS would
wake once every 100ms unnecessarily.  It shouldn't have affected
correctness otherwise.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agoinstruction/clear-actions: string parser/formater, of packet decoder/encoder
Isaku Yamahata [Fri, 5 Oct 2012 06:56:57 +0000 (15:56 +0900)]
instruction/clear-actions: string parser/formater, of packet decoder/encoder

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoinstruction: support goto-table action
Isaku Yamahata [Fri, 5 Oct 2012 06:56:56 +0000 (15:56 +0900)]
instruction: support goto-table action

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agopython/ovs/socket_util: don't use Exception, but ValueError
Isaku Yamahata [Mon, 15 Oct 2012 21:57:27 +0000 (06:57 +0900)]
python/ovs/socket_util: don't use Exception, but ValueError

67656b9ff297f305b3bfcca2868e8e870e108283
used Exception, but it should be more specific error.
Use ValueError instread of Exception.

Suggested-by: Reid Price <reid@nicira.com>
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoSetting tag sliver-openvswitch-1.8.90-5 sliver-openvswitch-1.8.90-5
Thierry Parmentelat [Tue, 16 Oct 2012 08:54:02 +0000 (10:54 +0200)]
Setting tag sliver-openvswitch-1.8.90-5
numerous additional make targets for finer control (use make help)
including gprobe for reporting traffic to an ndnmap instance
related, more functions in sliver-ovs as well, like exposing
detailed info (mac, dpids..) relevant to the OF controller
retrieving rx_bytes/tx_bytes (fixed) accessible through ovs-appctl

11 years agoovs-pki: Increase the validity days for self-signed certificates.
Gurucharan Shetty [Mon, 15 Oct 2012 21:41:31 +0000 (14:41 -0700)]
ovs-pki: Increase the validity days for self-signed certificates.

For self-signed certificates, increase validity from the default
30 days to 6 years.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
11 years agopython/ovs/stream: teach stream.py tcp socket
Isaku Yamahata [Thu, 27 Sep 2012 09:28:08 +0000 (18:28 +0900)]
python/ovs/stream: teach stream.py tcp socket

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agopython/ovs/socket_util: add tcp related helper functions which will be used by tcp
Isaku Yamahata [Thu, 27 Sep 2012 09:28:07 +0000 (18:28 +0900)]
python/ovs/socket_util: add tcp related helper functions which will be used by tcp

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agotimeval: Add new "backtrace" appctl command.
Ethan Jackson [Fri, 12 Oct 2012 22:18:26 +0000 (15:18 -0700)]
timeval: Add new "backtrace" appctl command.

Often, it can be quite difficult to debug performance issues in
Open vSwitch.  Typically one needs to run something like gprof, but
that requires rebuilding and installing on the affected system
which is often problematic.  This patch adds a light weight
profiling solution which can be used in these situations.  The
ovs-appctl backtrace command prints out backtraces taken at 100
millisecond intervals over a 5 second period of time.  It is
currently only supported on systems which have the execinfo library
and enable time caching.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agocfm: Scope CFM packets to key zero.
Ethan Jackson [Fri, 12 Oct 2012 20:19:35 +0000 (13:19 -0700)]
cfm: Scope CFM packets to key zero.

Before this patch, when a tunnel is configured with key=flow, CFM
didn't verify that incoming packets had the appropriate key of
zero.  This could cause the CFM module to consume packets which
weren't actually intended for it.

Bug #13542.
Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agoofp-errors: Merge OF1.0 "all tables full" with OF1.1+ "table full".
Ben Pfaff [Fri, 12 Oct 2012 17:15:11 +0000 (10:15 -0700)]
ofp-errors: Merge OF1.0 "all tables full" with OF1.1+ "table full".

These codes represent essentially the same condition and only one of them
exists in any given version of OpenFlow, so merge them together into a
single OFPERR_* code.

Reported-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoofproto: Fix typo in macro name.
Ben Pfaff [Fri, 12 Oct 2012 20:18:41 +0000 (13:18 -0700)]
ofproto: Fix typo in macro name.

I like the sound of "evicton" but it isn't a real word.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Ethan Jackson <ethan@nicira.com>
11 years agoofproto: Do not add flow on flow mod if new_cookie is UINT64_MAX
Simon Horman [Fri, 12 Oct 2012 00:26:28 +0000 (09:26 +0900)]
ofproto: Do not add flow on flow mod if new_cookie is UINT64_MAX

Internally a new_cookie value UINT64_MAX is used for
an OpenFlow 1.2 flow mod whose command is not Add.
Open Flow 1.2 does not permit adding flows for such commands.
Also, UINT64_MAX is a prohibited cookie value, and the
existing code created a flow with that value as for the cookie.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoofp-print: Do not display flow mod cookie if it is UINT64_MAX
Simon Horman [Fri, 12 Oct 2012 00:26:29 +0000 (09:26 +0900)]
ofp-print: Do not display flow mod cookie if it is UINT64_MAX

Internally UINT64_MAX is used to denote that the cookie
should not be changed, so it seems appropriate
to omit this value when pretty printing flow mods.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoofp-util: Correct setting of Flow Mod cookie on encode
Simon Horman [Fri, 12 Oct 2012 00:26:27 +0000 (09:26 +0900)]
ofp-util: Correct setting of Flow Mod cookie on encode

When the command of a Flow Mod messages is ADD the cookie should be set as
fm->new_cookie, this is the new cookie value to be set. Otherwise it
should be set as fm->cookie, internally this is the cookie value to match.

Also remove 'XXX' marker from the matching code in the decoder.
I am now comfortable with the implementation.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoofp-msgs: Open Flow 1.1 and 1.2 Queue Status Messages
Simon Horman [Fri, 12 Oct 2012 04:03:04 +0000 (13:03 +0900)]
ofp-msgs: Open Flow 1.1 and 1.2 Queue Status Messages

This allows for encoding and decoding Open Flow 1.1 and 1.2 Queue Stats
Request and Reply messages.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoofp-util: Correct comment above ofputil_append_port_stat()
Simon Horman [Fri, 12 Oct 2012 04:01:05 +0000 (13:01 +0900)]
ofp-util: Correct comment above ofputil_append_port_stat()

This function changed a few times before it was merged,
unfortunately at some point the comment wasn't kept in sync
with the changes.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoofp-msgs: Update for OpenFlow 1.1 & 1.2 Port Desc Stats
Simon Horman [Fri, 12 Oct 2012 04:00:38 +0000 (13:00 +0900)]
ofp-msgs: Update for OpenFlow 1.1 & 1.2 Port Desc Stats

* Split OFPRAW_OFPST_PORT_DESC_REPLY into OpenFlow 1.0
  and OpenFlow 1.1+ versions.
* Allow OFPRAW_OFPST_PORT_DESC_REQUEST to be used for
  OpenFlow 1.0+ instead of only OpenFlow 1.0.

This appears to be necessary and sufficient to allow encoding of Port Desc
Stats reply messages and decoding of Port Desc Stats request messages. Or
in other words both the client and server side of ovs-ofctl dump-ports-desc

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoUse enum ofperr in ofputil_decode_flow_removed()
Simon Horman [Fri, 12 Oct 2012 00:24:34 +0000 (09:24 +0900)]
Use enum ofperr in ofputil_decode_flow_removed()

The return type of both ofputil_decode_flow_removed() and nx_pull_match()
is enum ofperr so it makes sense for error be of that type too.

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agolib: Use FreeBSD libc function for proctitle
Ed Maste [Thu, 11 Oct 2012 20:58:17 +0000 (20:58 +0000)]
lib: Use FreeBSD libc function for proctitle

FreeBSD libc's setproctitle provides the same interface as proctitle_set so
use it directly.

Signed-off-by: Ed Maste <emaste@adaranet.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agolib: Move addition of program_name to proctitle_set
Ed Maste [Thu, 11 Oct 2012 20:49:38 +0000 (20:49 +0000)]
lib: Move addition of program_name to proctitle_set

Signed-off-by: Ed Maste <emaste@adaranet.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agonicira-ext: Correct and improve nx_flow_update_abbrev comment.
Ben Pfaff [Thu, 11 Oct 2012 17:56:12 +0000 (10:56 -0700)]
nicira-ext: Correct and improve nx_flow_update_abbrev comment.

Notifications always precede a barrier that follows a given flow_mod,
not a barrier that precedes a flow_mod as the text here previously claimed.

Also, the text about abbreviated notifications is equally applicable
to normal, unabbreviated notifications, so say that explicitly.

Reported-by: Jean Tourrilhes <jt@hpl.hp.com>
Acked-by: Jean Tourrilhes <jt@hpl.hp.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoofp-msgs: Open Flow 1.1 and 1.2 Port Status Messages
Simon Horman [Sat, 6 Oct 2012 10:39:49 +0000 (19:39 +0900)]
ofp-msgs: Open Flow 1.1 and 1.2 Port Status Messages

This allows for encoding and decoding Open Flow 1.1 and 1.2 Port Stats
Request and Reply message

Signed-off-by: Simon Horman <horms@verge.net.au>
[blp@nicira.com added ofputil_count_port_stas(), simplified
 interface of ofputil_decode_port_stats(), style changes]
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agoMakefile.am: Distribute INSTALL.Fedora.
Ben Pfaff [Wed, 10 Oct 2012 17:09:12 +0000 (10:09 -0700)]
Makefile.am: Distribute INSTALL.Fedora.

Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agobuild: Add support for building RPMs for Fedora Linux
Ralf Spenneberg [Tue, 2 Oct 2012 18:31:55 +0000 (14:31 -0400)]
build: Add support for building RPMs for Fedora Linux

Add RPM specfiles for building OVS for Fedora Linux. This
allows users of the upstream project the ability to
generate RPMs for their Open vSwitch needs.

Signed-off-by: Ralf Spenneberg <ralf@spenneberg.net>
[kmestery@cisco.com made substantial changes including
 writing documentation]
Signed-off-by: Kyle Mestery <kmestery@cisco.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
11 years agocosmetic - display mac addresses with " around for python
Thierry Parmentelat [Wed, 10 Oct 2012 15:45:15 +0000 (17:45 +0200)]
cosmetic - display mac addresses with " around for python

11 years agomake showmacs - for now this is very patchy
Thierry Parmentelat [Wed, 10 Oct 2012 07:17:00 +0000 (09:17 +0200)]
make showmacs - for now this is very patchy

11 years agodatapath: Allow GRE64 tunnels without any key.
Pravin B Shelar [Wed, 10 Oct 2012 00:13:05 +0000 (17:13 -0700)]
datapath: Allow GRE64 tunnels without any key.

Now GRE64 deals with tunnel with no key and tunnel with zero key
as a same. This behaviour is different than standard GRE.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
11 years agodatapath: Fix GRE tunnel without any key.
Pravin B Shelar [Tue, 9 Oct 2012 23:08:39 +0000 (16:08 -0700)]
datapath: Fix GRE tunnel without any key.

Commit 2de795adb96 (datapath: 64-bit GRE support) introduced a bug
for tunnels with no key. Following patch fixes it by setting tunnel
type to GRE type.

Bugs: 13511
Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Kyle Mestery <kmestery@cisco.com>
11 years agoconfig: Add explicit support for building on ESX.
Ethan Jackson [Fri, 5 Oct 2012 20:24:21 +0000 (13:24 -0700)]
config: Add explicit support for building on ESX.

The ESX userspace looks quite a bit like linux, but has some key
differences which need to be specially handled in the build.  To
distinguish between ESX and systems which use the linux datapath
module, this patch adds two new macros "ESX" and "LINUX_DATAPATH".
It uses these macros to disable building code on ESX which only
applies to a true Linux environment.  In addition, it adds a new
route-table-stub implementation which is required for the build to
complete successfully on ESX.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agoexport OpenFlow port numbers
Giuseppe Lettieri [Tue, 9 Oct 2012 18:42:57 +0000 (20:42 +0200)]
export OpenFlow port numbers

make showports will produce several lines of the form

PORT_src_dst=n

meaning that on node src the port that goes to node dst has OpenFlow id
equal to n.

11 years agoautogenerate *.json files for gmap
Giuseppe Lettieri [Mon, 8 Oct 2012 15:22:37 +0000 (17:22 +0200)]
autogenerate *.json files for gmap

11 years agoupdated the README file
Giuseppe Lettieri [Mon, 8 Oct 2012 12:39:22 +0000 (14:39 +0200)]
updated the README file

11 years agolocal snapshot
Giuseppe Lettieri [Mon, 8 Oct 2012 12:13:55 +0000 (14:13 +0200)]
local snapshot

11 years agomove remote-snapshot recipes to sliver-ovs
Giuseppe Lettieri [Mon, 8 Oct 2012 11:38:04 +0000 (13:38 +0200)]
move remote-snapshot recipes to sliver-ovs

11 years agomove get-port to sliver-ovs
Giuseppe Lettieri [Mon, 8 Oct 2012 09:33:10 +0000 (11:33 +0200)]
move get-port to sliver-ovs

11 years agomake showdpids printout can be pasted into a python program
Thierry Parmentelat [Mon, 8 Oct 2012 07:09:06 +0000 (09:09 +0200)]
make showdpids printout can be pasted into a python program

11 years agoMerge branch 'master' of ssh://git.onelab.eu/git/sliver-openvswitch
Thierry Parmentelat [Mon, 8 Oct 2012 07:08:07 +0000 (09:08 +0200)]
Merge branch 'master' of ssh://git.onelab.eu/git/sliver-openvswitch

11 years agomake showdpids can display the datapath_ids in use
Thierry Parmentelat [Sun, 7 Oct 2012 15:48:00 +0000 (17:48 +0200)]
make showdpids can display the datapath_ids in use

so at least we can get the dpids in use

as of now we can't seem to set that at bridge creation time
BROPTIONS_SENDER=set bridge $(BRIDGE) datapath_id=00000000C0A81001
does not seem to work for now...

11 years agoinvalidate controllers on del-{bridge,switch}
Giuseppe Lettieri [Sat, 6 Oct 2012 12:25:38 +0000 (14:25 +0200)]
invalidate controllers on del-{bridge,switch}

11 years agoAdded a note on ssh connection reuse
Giuseppe Lettieri [Sat, 6 Oct 2012 12:10:52 +0000 (14:10 +0200)]
Added a note on ssh connection reuse

This is a thing I that I always forget to say, but it is almost
necessary to get the real benefit of make -j with the current Makefile.
(The original plan was to batch per-node operations).

11 years agolink goes down if an iface is deleted
Giuseppe Lettieri [Sat, 6 Oct 2012 11:39:42 +0000 (13:39 +0200)]
link goes down if an iface is deleted

11 years agoComments for the internal targets of the Makefile
Giuseppe Lettieri [Sat, 6 Oct 2012 11:34:49 +0000 (13:34 +0200)]
Comments for the internal targets of the Makefile

11 years agoreduce dependency on a running switch daemon
Giuseppe Lettieri [Sat, 6 Oct 2012 11:30:17 +0000 (13:30 +0200)]
reduce dependency on a running switch daemon

11 years agodatapath: 64-bit GRE support
Pravin B Shelar [Sat, 6 Oct 2012 00:55:02 +0000 (17:55 -0700)]
datapath: 64-bit GRE support

Extend GRE to have a 64-bit key. Use GRE sequence number to
store upper 32-bits of the key, but this is not standard way of
using GRE sequence number.

Bug #13186
Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
11 years agotimeval: Recover from failed timer_create() calls.
Ethan Jackson [Fri, 5 Oct 2012 01:38:59 +0000 (18:38 -0700)]
timeval: Recover from failed timer_create() calls.

The timer_create() system call is not supported in ESX and returns
an error when called.  Aborting when this system call fails seems a
bit extreme. So instead, this patch simply falls back to disabling
the cached time optimization.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agotimeval: Don't require signals for time_alarm().
Ethan Jackson [Fri, 5 Oct 2012 00:57:16 +0000 (17:57 -0700)]
timeval: Don't require signals for time_alarm().

Before this patch, time_alarm() used the SIGALRM handler to notify
the poll loop that it should exit the program.  Instead, this patch
simply implements time_alarm() directly in the pool loop.  This
significantly simplifies the code, while removing a call to
timer_create() which is not currently supported on ESX.

Signed-off-by: Ethan Jackson <ethan@nicira.com>
11 years agoMerge branch 'master' of ssh://git.onelab.eu/git/sliver-openvswitch
Thierry Parmentelat [Fri, 5 Oct 2012 12:43:16 +0000 (14:43 +0200)]
Merge branch 'master' of ssh://git.onelab.eu/git/sliver-openvswitch

11 years agorename gmap-report into gmap-probe
Thierry Parmentelat [Fri, 5 Oct 2012 12:00:47 +0000 (14:00 +0200)]
rename gmap-report into gmap-probe

11 years agomake gmap-probes
Thierry Parmentelat [Fri, 5 Oct 2012 11:46:45 +0000 (13:46 +0200)]
make gmap-probes

11 years agoarbitary options to create-bridge
Giuseppe Lettieri [Fri, 5 Oct 2012 10:49:19 +0000 (12:49 +0200)]
arbitary options to create-bridge

One can put additional options for bridge creation on node x in BROPTIONS_x
(defaults to BROPTIONS if not set).

By setting

BROPTIONS=set-controller $(BRIDGE) tcp:...

we can create bridges that start already connected to a controller.

11 years agobetter handling of dependencies
Giuseppe Lettieri [Fri, 5 Oct 2012 10:25:31 +0000 (12:25 +0200)]
better handling of dependencies

Now bridges and interfaces survive a shutdown of the daemons.
Only port numbers are re-exchanged as needed on daemon restart.

This also fixes the 'make -j shutdown' bug.

Now, L/n1-n2 should mean that a link between node n1 and n2 has
been established in the db *and* it is also up (i.e., the daemons are
running).

TODO:
- there is some redundancy between start/stop and {del-,}{db,switch}s

11 years agobugfix del-controllers + doc
Thierry Parmentelat [Fri, 5 Oct 2012 06:10:08 +0000 (08:10 +0200)]
bugfix del-controllers + doc

11 years agoofproto-dpif: Avoid zeroing tunnel info in handle_miss_upcalls().
Ben Pfaff [Thu, 4 Oct 2012 22:11:39 +0000 (15:11 -0700)]
ofproto-dpif: Avoid zeroing tunnel info in handle_miss_upcalls().

Commit 296e07ace0f (flow: Extend struct flow to contain tunnel outer
header.) changed the tunnel ID parameter of flow_extract() from an integer
passed by value to a structure passed by pointer.  Before flow_extract()
reads the tunnel ID, it zeros the entire flow parameter.  This means that,
if a caller passes the address of the tunnel member of the flow as the
tunnel ID, then flow_extract() zeros the tunnel data before it reads and
copies the tunnel data (that it just zeroed).  The result is that the
tunnel data is ignored.

This commit fixes the problem by making the caller that did this use a
separate flow structure instead of trying to be clever.

Bug #13461.
CC: Pankaj Thakkar <thakkar@nicira.com>
Reported-by: Michael Hu <mhu@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>