lib: Add helpers for OpenFlow version command line options
[openvswitch] / lib / ofp-version-opt.c
diff --git a/lib/ofp-version-opt.c b/lib/ofp-version-opt.c
new file mode 100644 (file)
index 0000000..1801e9f
--- /dev/null
@@ -0,0 +1,36 @@
+#include <config.h>
+#include "ofp-util.h"
+#include "ofp-version-opt.h"
+#include "vlog.h"
+#include "dynamic-string.h"
+
+VLOG_DEFINE_THIS_MODULE(ofp_version);
+
+static uint32_t allowed_versions = 0;
+
+uint32_t
+get_allowed_ofp_versions(void)
+{
+    return allowed_versions ? allowed_versions : OFPUTIL_DEFAULT_VERSIONS;
+}
+
+void
+set_allowed_ofp_versions(const char *string)
+{
+    allowed_versions = ofputil_versions_from_string(string);
+}
+
+void
+ofp_version_usage(void)
+{
+    struct ds msg = DS_EMPTY_INITIALIZER;
+
+    ofputil_format_version_bitmap_names(&msg, OFPUTIL_DEFAULT_VERSIONS);
+    printf(
+        "\nOpen Flow Version options:\n"
+        "  -V, --version           display version information\n"
+        "  --allowed-ofp-versions  list of allowed Open Flow versions\n"
+        "                          (default: %s)\n",
+        ds_cstr(&msg));
+    ds_destroy(&msg);
+}