netdev-windows: Add checking when creating netdev with system type on Windows
In the recent Antrea project testing, some port could not be created
on Windows.
When doing debug, our team found there is one case happening when multiple
ports are waiting for be created with correct port number.
Some system type port will be created netdev successfully and it will cause
conflict as in the dpif side it will be internal type. So finally the port
will be created failed and it could not be easily recovered.
With the patch, on Windows the netdev creating will be blocked for system
type when the ovs_tyep got on dpif is internal. More detailed case description
is in the reported issue No.262 with link below.
datapath-windows:adjust Offset when processing packet in POP_VLAN action
In one typical setup, on the Windows VM running OVS Windows Kernel, a Geneva
packet with 8021.q VLAN tag is received. Then it may do POP_VLAN action
processing in Actions.c, if the packet does not have Ieee8021QNetBufferListInfo
in the oob of the packet, it will be processed by function OvsPopVlanInPktBuf().
In the function it will go on remove VLAN header present in the nbl, but related
layers is never readjusted for the offset value at this moment. As a result, it
will cause function OvsValidateIPChecksum drop the packet.
ofp-group: Use big-enough buffer in ofputil_format_group().
GCC 11 pointed out that ofputil_group_to_string()'s prototype asks for
a buffer with one byte more than supplied. This fixes the problem.
This wasn't a buffer overflow because ofputil_group_to_string() honors
the buffer size passed in, which was correct. The worst that could
happen was truncating the last byte of a group name.
Signed-off-by: Ben Pfaff <email address hidden>
Acked-by: Paolo Valerio <email address hidden>
python: Send notifications after the transaction ends.
The Python IDL notification mechanism was sending a notification
for each processed update in a transaction as it was processed.
This causes issues with multi-row changes that contain references
to each other.
For example, if a Logical_Router_Port is created along with a
Gateway_Chassis, and the LRP.gateway_chassis set to that GC, then
when the notify() passes the CREATE event for the LRP, the GC will
not yet have been processed, so __getattr__ when _uuid_to_row fails
to find the GC, will return the default value for LRP.gateway_chassis
which is [].
This patch has the process_update methods return the notifications
that would be produced when a row changes, so they can be queued
and sent after all rows have been processed.
Fixes: d7d417fcddf9 ("Allow subclasses of Idl to define a notification hook")
Signed-off-by: Terry Wilson <email address hidden>
Acked-by: Brian Haley <email address hidden>
Acked-by: Dumitru Ceara <email address hidden>
Tested-by: Flavio Fernandes <email address hidden>
Signed-off-by: Ilya Maximets <email address hidden>
For columns like QoS.queues where we have a map containing refTable
values, assigning w/ __setattr__ e.g. qos.queues={1: $queue_row}
works, but using using qos.setkey('queues', 1, $queue_row) results
in an Exception. The opdat argument can essentially just be the
JSON representation of the map column instead of trying to build
it.
Signed-off-by: Terry Wilson <email address hidden>
Signed-off-by: Ben Pfaff <email address hidden>
Signed-off-by: Ilya Maximets <email address hidden>
ovsdb-client: Fix needs-conversion when SERVER is explicitly specified.
When you try to specify `SERVER` to the 'ovsdb-client needs-conversion'
command, it interprets the `SERVER` parameter as the path to the schema
and returns an error.
This PR fixes it.
46299c1...
by
Hariprasad Govindharajan <email address hidden>
dpdk: Use DPDK 18.11.11 release.
Modify ci linux build script to use the latest DPDK stable release.
Modify Documentation to use the latest DPDK stable release
18.11.11. Update NEWS file to reflect the latest DPDK stable
release.
Note: 18.11.11 is the final support release for the 18.11 series,
no further support releases for 18.11 series are expected.