mirror of
https://github.com/opennetworkinglab/onos.git
synced 2025-10-19 19:32:05 +02:00
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
28 lines
724 B
Python
28 lines
724 B
Python
GRPC_VER = '1.3.1'
|
|
PROTOBUF_VER = '3.2.0'
|
|
|
|
COMPILE_DEPS = [
|
|
'//lib:CORE_DEPS',
|
|
'//lib:KRYO',
|
|
'//protocols/grpc/api:onos-protocols-grpc-api',
|
|
'//protocols/p4runtime/api:onos-protocols-p4runtime-api',
|
|
'//protocols/p4runtime/proto:onos-protocols-p4runtime-proto',
|
|
'//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
|
|
'//lib:grpc-stub-' + GRPC_VER,
|
|
'//lib:grpc-netty-' + GRPC_VER,
|
|
'//lib:protobuf-java-' + PROTOBUF_VER,
|
|
'//core/store/serializers:onos-core-serializers',
|
|
]
|
|
|
|
TEST_DEPS = [
|
|
'//lib:TEST',
|
|
'//lib:GRPC_TEST_1.3',
|
|
'//lib:minimal-json',
|
|
'//lib:grpc-protobuf-lite-' + GRPC_VER,
|
|
]
|
|
|
|
osgi_jar_with_tests(
|
|
deps = COMPILE_DEPS,
|
|
test_deps = TEST_DEPS,
|
|
)
|