The P4Runtime client was hanging (deadlock) on a master arbitration
request. As such, all other requests (e.g. table write) were waiting
for the client's request lock to become available.
Apart from fixing those deadlocks, this patch brings a number of
improvements that all together allow to run networks of 100+ P4Runtime
devices on a single ONOS instance (before only ~20 devices)
Includes:
- Asynchrounous mastership handling in DevicHandshaker (as defined in
the P4Runtime and OpenFlow spec)
- Refactored arbitration handling in the P4RuntimeClient
to be consistent with the P4Runtime spec
- Report suspect deadlocks in P4RuntimeClientImpl
- Exploit write errors in P4RuntimeClient to quickly report
channel/mastership errors to upper layers
- Complete all futures with deadlines in P4Runtime driver
- Dump all tables in one request
- Re-purposed ChannelEvent to DeviceAgentEvent to carry also mastership
response events
- Fixed IntelliJ warnings
- Various code and log clean-ups
Change-Id: I9376793a9fe69d8eddf7e8ac2ef0ee4c14fbd198
- Move netconf rpc envelope processing common across secure transport implementation
to AbstractNetconfSession
work by: Palash Kala <palash.kala@samsung.com>
Change-Id: I5f0d6adecf6224ae44f224291f645725b3c87739
Includes:
- Use new P4Runtime "v1" package names
- Removed VALID match
- New table entry priority spec (1 is min priority, not 0)
- Fixed p4c-bm2-ss to include arch flag
- Re-compiled P4 programs with more recent p4c (with updated p4info)
Change-Id: I05908f40eda0f0c755009268fd261fb8bcc9be35
- renamed the .bzl file to match the accepted snake case naming standard
- removed an uneccesary veneer method inside the rule implementation
Change-Id: I1e0f5aecf1d4b7b73e7376c1bb4c296960aaa5fc
- Moving TLS related config to separate config object
- Added support for adding/removing OF ports without restarting channel group
Change-Id: I79552334519434780d9174a1a9ff4eebc0d17194
Denial of Service, Improper Authentication and Authorization,
and Covert Channel in the OpenFlow 1.0+ handshake
Change-Id: Ifd285208266a1f331f3b802cb656349aad1782a9
reconnect in support of ONOS-7645 (device driver change)
- added device listener to OpenFlowDeviceProvider to properly disconnect switch
- removed device listener from OpenFlowControllerImpl
- augmented DriverManager to consult NetworkConfigService as a primary source
Change-Id: I1aa8e9cc7e81ff3af7a72145f4e51f3e32022806
With current implementation, OVSDB is always running as hybrid
mode which is running both server and client.
In case, ONOS and OVS run in the same machine, we encounter
port conflict issues. To resolve this issue, we would like to
add a configurable parameter to enforce ONOS only runs as OVSDB
client without listening port 6640. Note that, by default ONOS
will be still running as hybrid mode.
Change-Id: I8c1d310335c0a0a661e9011905c00456baec309f
Includes fixes for:
- ONOS-7593: Support for indirect resource Index type
- ONOS-7595: Removed ID from direct resources
- P4Runtime requires unset bits to be 0 in ternary field matches
- Incorrect parsing of flow rule byte counters
- Full entity names in P4Info with top-level control block (fixed only
for basic.p4, other programs need to be re-compiled and PI IDs in
respective pipeconf changed)
Change-Id: Ia19aa949c02e363a550e692915c6d6516a2d13d7