vtep: Initial checkin of vtep schema.
[cascardo/ovs.git] / vtep / vtep.ovsschema
1 {
2   "name": "hardware_vtep",
3   "cksum": "825115144 5318",
4   "tables": {
5     "Global": {
6       "columns": {
7         "managers": {
8           "type": {"key": {"type": "uuid",
9                            "refTable": "Manager"},
10                    "min": 0, "max": "unlimited"}},
11         "switches": {
12           "type": {"key": {"type": "uuid", "refTable": "Physical_Switch"},
13                    "min": 0, "max": "unlimited"}}
14       },
15       "maxRows": 1,
16       "isRoot": true},
17     "Physical_Switch": {
18       "columns": {
19         "ports": {
20           "type": {"key": {"type": "uuid", "refTable": "Physical_Port"},
21                    "min": 0, "max": "unlimited"}},
22         "name": {"type": "string"},
23         "description": {"type": "string"},
24         "management_ips": {
25           "type": {"key": {"type": "string"}, "min": 0, "max": "unlimited"}},
26         "tunnel_ips": {
27           "type": {"key": {"type": "string"}, "min": 0, "max": "unlimited"}}},
28       "indexes": [["name"]]},
29     "Physical_Port": {
30       "columns": {
31         "name": {"type": "string"},
32         "description": {"type": "string"},
33         "vlan_bindings": {
34           "type": {"key": {"type": "integer",
35                            "minInteger": 0, "maxInteger": 4095},
36                    "value": {"type": "uuid", "refTable": "Logical_Switch"},
37                    "min": 0, "max": "unlimited"}},
38         "vlan_stats": {
39           "type": {"key": {"type": "integer",
40                            "minInteger": 0, "maxInteger": 4095},
41                    "value": {"type": "uuid",
42                              "refTable": "Logical_Binding_Stats"},
43                    "min": 0, "max": "unlimited"}}}},
44     "Logical_Binding_Stats": {
45       "columns": {
46         "bytes_from_local": {"type": "integer"},
47         "packets_from_local": {"type": "integer"},
48         "bytes_to_local": {"type": "integer"},
49         "packets_to_local": {"type": "integer"}}},
50     "Logical_Switch": {
51       "columns": {
52         "name": {"type": "string"},
53         "description": {"type": "string"},
54         "tunnel_key": {"type": {"key": "integer", "min": 0, "max": 1}}},
55       "isRoot": true,
56       "indexes": [["name"]]},
57     "Ucast_Macs_Local": {
58       "columns": {
59         "MAC": {"type": "string"},
60         "logical_switch": {
61           "type": {"key": {"type": "uuid",
62                            "refTable": "Logical_Switch"}}},
63         "locator": {
64           "type": {"key": {"type": "uuid",
65                            "refTable": "Physical_Locator"}}},
66         "ipaddr": {"type": "string"}},
67       "isRoot": true},
68     "Ucast_Macs_Remote": {
69       "columns": {
70         "MAC": {"type": "string"},
71         "logical_switch": {
72           "type": {"key": {"type": "uuid",
73                            "refTable": "Logical_Switch"}}},
74         "locator": {
75           "type": {"key": {"type": "uuid",
76                            "refTable": "Physical_Locator"}}},
77         "ipaddr": {"type": "string"}},
78       "isRoot": true},
79     "Mcast_Macs_Local": {
80       "columns": {
81         "MAC": {"type": "string"},
82         "logical_switch": {
83           "type": {"key": {"type": "uuid",
84                            "refTable": "Logical_Switch"}}},
85         "locator_set": {
86           "type": {"key": {"type": "uuid",
87                            "refTable": "Physical_Locator_Set"}}},
88         "ipaddr": {"type": "string"}},
89       "isRoot": true},
90     "Mcast_Macs_Remote": {
91       "columns": {
92         "MAC": {"type": "string"},
93         "logical_switch": {
94           "type": {"key": {"type": "uuid",
95                            "refTable": "Logical_Switch"}}},
96         "locator_set": {
97           "type": {"key": {"type": "uuid",
98                            "refTable": "Physical_Locator_Set"}}},
99         "ipaddr": {"type": "string"}},
100       "isRoot": true},
101     "Logical_Router": {
102       "columns": {
103         "name": {"type": "string"},
104         "description": {"type": "string"},
105         "switch_binding": {
106           "type": {"key": {"type": "string"},
107                    "value": {"type": "uuid",
108                              "refTable": "Logical_Switch"},
109                    "min": 0, "max": "unlimited"}},
110         "static_routes": {
111           "type": {"key": {"type": "string"},
112                    "value": {"type" : "string"},
113                    "min": 0, "max": "unlimited"}}},
114       "isRoot": true,
115       "indexes": [["name"]]},
116     "Physical_Locator_Set": {
117       "columns": {
118         "locators": {
119           "type": {"key": {"type": "uuid", "refTable": "Physical_Locator"},
120                    "min": 1, "max": "unlimited"},
121                    "mutable": false}}},
122     "Physical_Locator": {
123       "columns": {
124         "encapsulation_type": {
125           "type": {
126             "key": {
127               "enum": ["set", ["vxlan_over_ipv4"]],
128               "type": "string"}},
129           "mutable": false},
130         "dst_ip": {"type": "string", "mutable": false},
131         "bfd": {
132           "type": {"key": "string", "value": "string",
133               "min": 0, "max": "unlimited"}},
134         "bfd_status": {
135           "type": {"key": "string", "value": "string",
136               "min": 0, "max": "unlimited"}}},
137       "indexes": [["encapsulation_type", "dst_ip"]]},
138     "Manager": {
139       "columns": {
140         "target": {"type": "string"},
141         "max_backoff": {
142           "type": {"key": {"type": "integer",
143                            "minInteger": 1000},
144                    "min": 0, "max": 1}},
145         "inactivity_probe": {
146           "type": {"key": "integer", "min": 0, "max": 1}},
147         "other_config": {
148           "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
149         "is_connected": {
150           "type": "boolean",
151           "ephemeral": true},
152         "status": {
153           "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
154           "ephemeral": true}},
155       "indexes": [["target"]],
156       "isRoot": false}},
157   "version": "1.0.0"}