10784fc54e7a721db207dcb56f72d91c8042b580
[sliver-openvswitch.git] / lib / ofp-version-opt.c
1 #include <config.h>
2 #include "dynamic-string.h"
3 #include "ofp-util.h"
4 #include "ofp-version-opt.h"
5 #include "ovs-thread.h"
6
7 static uint32_t allowed_versions = 0;
8
9 uint32_t
10 get_allowed_ofp_versions(void)
11 {
12     return allowed_versions ? allowed_versions : OFPUTIL_DEFAULT_VERSIONS;
13 }
14
15 void
16 set_allowed_ofp_versions(const char *string)
17 {
18     assert_single_threaded();
19     allowed_versions = ofputil_versions_from_string(string);
20 }
21
22 void
23 mask_allowed_ofp_versions(uint32_t bitmap)
24 {
25     assert_single_threaded();
26     allowed_versions &= bitmap;
27 }
28
29 void
30 ofp_version_usage(void)
31 {
32     struct ds msg = DS_EMPTY_INITIALIZER;
33
34     ofputil_format_version_bitmap_names(&msg, OFPUTIL_DEFAULT_VERSIONS);
35     printf(
36         "\nOpen Flow Version options:\n"
37         "  -V, --version           display version information\n"
38         "  -O, --protocols         set allowed Open Flow versions\n"
39         "                          (default: %s)\n",
40         ds_cstr(&msg));
41     ds_destroy(&msg);
42 }