Difference between revisions of "VPP/Java API/Plugin support"
From fd.io
(Created page with "This page is a design proposal for Java API to support VPP plugins.") |
(→Problems needs to be solved) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
This page is a design proposal for Java API to support VPP plugins. | This page is a design proposal for Java API to support VPP plugins. | ||
+ | |||
+ | == Architecture == | ||
+ | |||
+ | [[File:JVPP Architecture.png|http://yuml.me/edit/cf23df5c]] | ||
+ | |||
+ | == Main assumptions == | ||
+ | |||
+ | * JVppRegistry holds a map of callback interfaces for JVppCore and plugins (generated together with JNI implementations based on provided api files). | ||
+ | |||
+ | * when API user sends a message, JVppRegistry delegates the call to JNI implementation provided by the particular plugin | ||
+ | |||
+ | * when JNI code receives reply, it asks the registry for appropriate callback interface and invokes callback method that corresponds to the received message reply | ||
+ | |||
+ | == TODO == | ||
+ | |||
+ | * util.py stores workarounds for messages that are not following vpe.api naming conventions. It needs to be extensible, just in case vpp plugins have their own peculiarities | ||
+ | * test jvpp_gen package installation on centos7 |
Latest revision as of 15:00, 16 August 2016
This page is a design proposal for Java API to support VPP plugins.
Architecture
Main assumptions
- JVppRegistry holds a map of callback interfaces for JVppCore and plugins (generated together with JNI implementations based on provided api files).
- when API user sends a message, JVppRegistry delegates the call to JNI implementation provided by the particular plugin
- when JNI code receives reply, it asks the registry for appropriate callback interface and invokes callback method that corresponds to the received message reply
TODO
- util.py stores workarounds for messages that are not following vpe.api naming conventions. It needs to be extensible, just in case vpp plugins have their own peculiarities
- test jvpp_gen package installation on centos7