java_gen: separate VlanVid and OFVlanVidMatch + push version to 0.3.1

OF1.3 specifies the concept of a 'PRESENT' bit (0x1000) that gets
added to the 12 bit VlanVid to indicate presence of a tagged vlan.

While the standard is unclear, our reading is that this is only
relevant for use in match fields/oxms (not in actions).

This commit accordingly splits up VlanVid into
 - a new VlanVid class (which just represents the concept of a 12-bit
    VLAN tag, as specified by 802.1Q), and
  - OFVlanVidMatch (which represents the concepts of an OF1.3 VlanTag
    + Presence Bit, as spec'ed in OF1.3 for matches).

As this is an API-incompatible change, the artifact version has
been pushed to 0.3.1
9 files changed
tree: a034d955ed2f8fb3e3297f3d69e26b99ab5f9781
  1. .abat-automerge
  2. .gitignore
  3. .hooks/
  4. AUTHORS
  5. INTERNALS
  6. LoxiGen.mk
  7. Makefile
  8. README.md
  9. TODO
  10. c_gen/
  11. generic_utils.py
  12. java_gen/
  13. lang_c.py
  14. lang_java.py
  15. lang_python.py
  16. lang_wireshark.py
  17. loxi_front_end/
  18. loxi_ir.py
  19. loxi_utils/
  20. loxigen.py
  21. of_g.py
  22. openflow_input/
  23. py_gen/
  24. pyparsing.py
  25. tenjin.py
  26. test_data/
  27. utest/
  28. wireshark_gen/
README.md

Introduction

LoxiGen is a tool that generates OpenFlow protocol libraries for a number of languages. It is composed of a frontend that parses wire protocol descriptions and a backend for each supported language (currently C and Python, with Java on the way).

Usage

You can run LoxiGen directly from the repository. There's no need to install it, and it has no dependencies beyond Python 2.7+.

To generate the libraries for all languages:

make

To generate the library for a single language:

make c

The currently supported languages are c and python.

The generated libraries will be under the loxi_output directory. This can be changed with the LOXI_OUTPUT_DIR environment variable when using the Makefile.

Each generated library comes with its own set of documentation in the standard format for that language. Please see that documentation for more details on using the generated libraries.

Contributing

Please fork the repository on GitHub and send us a pull request. You might also be interested in the INTERNALS file which has notes about how LoxiGen works.