Hierarchical error messages plus some more tweaks
- hierarchical error messages for different error types
- renamed ofp_stats_types to ofp_stats_type
- renamed OFP_VENDOR to OFP_EXPERIMENTER in OF 1.0 input file
- use ofp_capabilities enum in of_features_reply
- use boolean type for l2_table_enable field in of_bsn_set_l2_table_(request|reply)
- return Set<OFActionType> for actions field in of_features_reply
- added DatapathId class that's returned for datapath_id field of of_features_reply
- removed unused read/write routines from OFBufferId
- added getOFVersioon method to factory classes/interfaces
- renamed OFPT_MULTIPART_(REQUEST|REPLY) to OFPT_STATS_(REQUEST|REPLY) in OF 1.3 input file
- renamed ofp_multipart_types to ofp_stats_type in OF 1.3 input file
- tweaked python backend to work with consistent use of of_stats_xyz vs. of_multipart_xyz in 1.3
diff --git a/java_gen/templates/of_class.java b/java_gen/templates/of_class.java
index aa68d04..00c7019 100644
--- a/java_gen/templates/of_class.java
+++ b/java_gen/templates/of_class.java
@@ -354,6 +354,8 @@
//:: for prop in msg.data_members:
//:: if prop.java_type.pub_type == 'long':
result = prime * (int) (${prop.name} ^ (${prop.name} >>> 32));
+ //:: elif prop.java_type.pub_type == 'boolean':
+ result = prime * result + (${prop.name} ? 1231 : 1237);
//:: elif prop.java_type.is_primitive:
result = prime * result + ${prop.name};
//:: elif prop.java_type.is_array:
diff --git a/java_gen/templates/of_factory_class.java b/java_gen/templates/of_factory_class.java
index 86b092a..7329fc2 100644
--- a/java_gen/templates/of_factory_class.java
+++ b/java_gen/templates/of_factory_class.java
@@ -42,6 +42,10 @@
public final static ${factory.name} INSTANCE = new ${factory.name}();
private ${factory.name}() {}
+ public OFVersion getOFVersion() {
+ return OFVersion.OF_${factory.version.of_version};
+ }
+
//:: for name, clazz in factory.interface.sub_factories.items():
public ${clazz} ${name}() {
return ${clazz}Ver${factory.version.of_version}.INSTANCE;
diff --git a/java_gen/templates/of_factory_interface.java b/java_gen/templates/of_factory_interface.java
index 634362d..5cf4052 100644
--- a/java_gen/templates/of_factory_interface.java
+++ b/java_gen/templates/of_factory_interface.java
@@ -57,9 +57,10 @@
Match.Builder buildMatch();
//:: #endif
+ OFVersion getOFVersion();
OFMessageReader<${factory.base_class}> getReader();
-
//:: if factory.name == 'OFOxms':
+
public <F extends OFValueType<F>> OFOxm<F> fromValue(F value, MatchField<F> field);
public <F extends OFValueType<F>> OFOxm<F> fromValueAndMask(F value, F mask, MatchField<F> field);
public <F extends OFValueType<F>> OFOxm<F> fromMasked(Masked<F> masked, MatchField<F> field);