Similarly to ONOS-4206, due to a bug in kryo, a non-registered class
(Date in this case) was causing such a problem.
Change-Id: I993f4b41d4deaa617065b29086a49d834832eca8
- Implemented a non-blocking Thrift server for the controller (before it
was limiting the number of active connections)
- Improved configuration swap times by forcing it
- Minor bugfixes and polishing
- Update onos-bmv2 repo URL in thrift-api pom.xml
Change-Id: I13b61f5aa22558c395768e3b445f302b20c5bd33
treatments.
Match and action parameters can now be built from primitive data types
(short, int, long or byte[]) which are then casted automatically
according to a given BMv2 configuration. Also, simplified demo
applications code / structure.
Change-Id: Ia5bebf62301c73c0b20cf6a4ddfb74165889106f
No need for internet connectivity after the first maven build.
Also switched to rawgit.com hosting (no throttling of requests). Minor
polishing of the patch script and module structure.
Change-Id: I065a62bddc779c698f4b76865525bf4d973ad2ab
Most notably:
- Updated repo URL and commit ID to official onos-bmv2 fork
- Removed ugly string-based table dump parser, now there's
a proper API to retrieve table entries (added support in
Bmv2DeviceAgent)
- Removed unused arguments in packet-in API
Change-Id: I5ff0948eb8fec5283a085913496c187e7b278d8d
- Created 3 separate sub-modules: API (doesn't depend on
Thrift), CTL (depends on Thrift), THRIFT-API (to generate Thrift
sources)
- Implemented 2 new services (for device configuration swapping and
table entry management) needed to distribute BMv2-specific state
among ONOS instances.
- Implemented a BMv2 controller (previously other modules where
using separately a Thrift client and a server)
- Added a default BMv2 JSON configuration (default.json) and interpreter
to be used for devices that connect for the first time to ONOS.
This allows for basic services to work (i.e. LLDP link discovery,
ARP proxy. etc.).
- Changed behavior of the flow rule translator and extension selector,
now it allows extension to specify only some of the match parameters
(before extension selectors were expected to describe the whole
match key, i.e. all fields)
- Various renaming to better represent the API
- Various java doc fixes / improvements
Change-Id: Ida4b5e546b0def97c3552a6c05f7bce76fd32c28
This was due to the fact that multiple clients were instantiated over
the same tranposrt. Now SafeThriftClient locks over the transport.
Also fixed a bug where some exceptions where uncaught in
SafeThriftClient.
Change-Id: I841ef64e64c28fc78016a0e0dc33e59052cd983e
improvements
- Added listener for hello messages received from Bmv2 devices
- Added a periodic poller task to check device reachability and port
information updates
- Avoids periodically re-connecting the device if it is already
available in the core
- Fixed minor bug in Bmv2ThriftClient
Change-Id: I416d1880773e11b2ac6fa062d8be2b8f280786fb
Due to the multi-threaded nature of drivers, calls to a Bmv2ThriftClient
could result in a race condition if not properly synchronized. Also,
once open, transport session might close due to several reasons. Now the
client calls are synchronized and automatically wrapped in a try/catch
that tries to re-open the session for fixed number of times before
giving up.
Change-Id: I5dcdd5a6304406dc6d9d3a0ccf7f16cdbf3b9573
translator (ONOS-4044)
- Added new classes for different match parameters (exact, ternary, lpm,
valid)
- Divided api package in two sub-packages, model (previously under
drivers) and runtime (old api package)
- Improved Bmv2ThriftClient caching and table entry handling
Change-Id: I23c174cf3e8f9f6ecddb99c2d09dc531e8f1c73f