package: Make Fedora RPMs build after vtep changes.

Add the appropriate vtep files into the Fedora RPM build
to make this work on master again.

Signed-off-by: Kyle Mestery <kmestery@cisco.com>
Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
ofproto: Report correct errors for unsupported stats/multipart requests.

The correct error in that case is OFPERR_OFPBRC_BAD_STAT,
not OFPERR_OFPBRC_BAD_TYPE.

Currently, the only example of unsupported stats/multipart request is
OFPTYPE_TABLE_FEATURES_STATS_REQUEST.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
ofproto: Report multipart buffer overflow.

Because our size of the multipart request buffer is effectively 0,
always report multipart buffer overflow error for multipart requests
with "more" flag set.

While this might be simpler if done in ofp-msgs.c, i put this in
ofproto.c because it seems like a better place to implement the
buffering logic if/when desirable.

An option question: what to do for the following messages with the
same xid?  especially for the last message which doesn't have the
"more" flag set?  it would be neater to detect and drop them.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
tests: use full table names in ovs-vsctl commands

It is more obvious to figure out what exactly test is doing
if ovs-vsctl commands contain full table names.

Signed-off-by: Ansis Atteka <aatteka@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
tests: Skip Python daemon tests in directory with non-ASCII name.

The Debian autobuild machines run their builds inside a top-level
directory named /«BUILDDIR».  That name contains two non-ASCII characters
that cause the Python code in the interface-reconfigure and ovs-monitor-ipsec
tests to fail.  The problem seems to be related to the locale, because
switching to a UTF-8 locale allows the tests to proceed farther but does
not fix the problem.  I was not able to easily fix the actual problem.
Web searches turn up articles that imply that the problem is not
reasonably fixable with Python 2.x, e.g.:
    http://stackoverflow.com/a/11742928

This commit instead avoids the problem by skipping these tests if the
current working directory's name contains non-ASCII characters.  This is
a legitimate solution only because interface-reconfigure and
ovs-monitor-ipsec run from initscripts and thus their current working
directories are system directories.  (Also, the current working directory
matters much less when run in a real environment because the --root-prefix
option that causes the issue is not used in a real environment.)

Signed-off-by: Ben Pfaff <blp@nicira.com>
jsonrpc: Only compose message to log if it's really going to be logged.

This suppresses a testsuite failure when the testsuite is run from a
directory whose name contains a non-ASCII character.  I'd rather fix the
problem but webpages like the following make it sound difficult or
impossible on Python 2.x: http://stackoverflow.com/a/11742928

Signed-off-by: Ben Pfaff <blp@nicira.com>
lib: Remove unreachable JSONRPC case

jsonrpc_session_recv() handles echo replies prior to this.

Found by inspection.

Signed-off-by: Joe Stringer <joestringer@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
ofproto: Avoid abandoning an ofopgroup without committing it.

Commit e3b5693319c (Fix table checking for goto table instruction.) moved
action checking into modify_flows__(), for good reason, but as a side
effect made modify_flows__() abandon and never commit the ofopgroup that it
started, if action checking failed.  This commit fixes the problem.

The following commands, run under "make sandbox", illustrate the problem.
Without this change, the final command hangs because the barrier request
that ovs-ofctl sends never gets a response (because barriers wait for all
ofopgroups to complete, which never happens).  With this commit, the
commands complete quickly:

ovs-vsctl add-br br0
ovs-vsctl set bridge br0 protocols=OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13
ovs-ofctl add-flow -O OpenFlow11 br0 table=1,action=goto_table:2
ovs-ofctl add-flow -O OpenFlow11 br0 table=1,action=goto_table:1

Reported-by: Jarno Rajahalme <jrajahalme@vmware.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
ofproto: Use ofproto_check_ofpacts() from modify_flows__().

Until now this code has called ofpacts_check() directly, but that omits
the additional check that the ofproto_check_ofpacts() wrapper includes.

Reported-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
datapath: Enable all GSO features on internal port.

OVS already can handle all types of segmentation offloads that
are supported by the kernel.
Following patch specifically enables UDP and IPV6 segmentation
offloads.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
Widen TCP flags handling.

Widen TCP flags handling from 7 bits (uint8_t) to 12 bits (uint16_t).
The kernel interface remains at 8 bits, which makes no functional
difference now, as none of the higher bits is currently of interest
to the userspace.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
TCP flags matching support.

    tcp_flags=flags/mask
        Bitwise  match on TCP flags.  The flags and mask are 16-bit num‐
        bers written in decimal or in hexadecimal prefixed by 0x.   Each
        1-bit  in  mask requires that the corresponding bit in port must
        match.  Each 0-bit in mask causes the corresponding  bit  to  be
        ignored.

        TCP  protocol  currently  defines  9 flag bits, and additional 3
        bits are reserved (must be transmitted as zero), see  RFCs  793,
        3168, and 3540.  The flag bits are, numbering from the least
	significant bit:

        0: FIN No more data from sender.

        1: SYN Synchronize sequence numbers.

        2: RST Reset the connection.

        3: PSH Push function.

        4: ACK Acknowledgement field significant.

        5: URG Urgent pointer field significant.

        6: ECE ECN Echo.

        7: CWR Congestion Windows Reduced.

        8: NS  Nonce Sum.

        9-11:  Reserved.

        12-15: Not matchable, must be zero.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
vswitch.xml: Improve documentation for BFD.

This update improves the BFD documentation in a few ways:

   - Demand mode is now supported.

   - Wordsmithing, spelling, etc.

   - Attempt to better explain decay_min_rx, forwarding_if_rx, and
     cpath_down.

   - Break into subgroups for configuration and status, to better explain
     which party sets which fields.

   - Reindents to match the rest of vswitch.xml.

Because of the reindentation, this patch may be easier to view with spacing
changes suppressed.

Signed-off-by: Ben Pfaff <blp@nicira.com>
openflow-1.2.h: Remove redundant definition of OFPST12_GROUP_FEATURES.

Message types are defined in ofp-msgs.h these days.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Joe Stringer <joestringer@nicira.com>
Implement OFPT_QUEUE_GET_CONFIG_REQUEST and OFPT_QUEUE_GET_CONFIG_REPLY.

Open vSwitch has never implemented this request and reply, even though they
have been in OpenFlow since version 1.0.  This commit adds an
implementation.

Signed-off: Venkitachalam Gopalakrishnan <gops@vmware.com>
Co-authored-by: Ben Pfaff <blp@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Joe Stringer <joestringer@nicira.com>
vtep: Bring BFD specification in vtep.xml into sync with OVS.

A number of new key-value pairs have been added to the bfd and bfd_status
columns of the OVS schema since the VTEP schema was created. To aid
interoperability between OVS instances and VTEPs, this patch brings
the VTEP schema into line with that of OVS.

CC: Bruce Davie <bdavie@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
include/openflow: Add OpenFlow 1.4 header file

It contains only Set-Async-Config and Role status message definitions.

Signed-off-by: Alexandru Copot <alex.mihai.c@gmail.com>
Cc: Daniel Baluta <dbaluta@ixiacom.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
ofproto: Add support for sending OFPTYPE_ROLE_STATUS messages.

When a controller changes its role to MASTER, the others are marked
as SLAVE. This patch makes it possible to notify the controllers
of this change.

Signed-off-by: Alexandru Copot <alex.mihai.c@gmail.com>
Cc: Daniel Baluta <dbaluta@ixiacom.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
classifier: Rename struct cls_table as cls_subtable.

The naming of the classifier table has been a source of confusion,
since each OpenFlow table is implemented as a classifier, which
consists of multiple (sub)tables.  This name change hopefully makes
classifier related discussion a bit less confusing.

For consistency, relevant field names as well as the function and
variable names have been renamed in similar fashion.

Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
datapath: Simplify vport-netdev-hook compatibility code.

Move compat code to netdev_rx_handler_register() definition.
It also adds type safety for netdev-hook.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>