ovn: Connect to remote lports through localnet port.
[cascardo/ovs.git] / ovn / controller / physical.h
1 /* Copyright (c) 2015 Nicira, Inc.
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at:
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15
16 #ifndef OVN_PHYSICAL_H
17 #define OVN_PHYSICAL_H 1
18
19 /* Logical/Physical Translation
20  * ============================
21  *
22  * This module implements physical-to-logical and logical-to-physical
23  * translation as separate OpenFlow tables that run before the ingress pipeline
24  * and after the egress pipeline, respectively, as well as to connect the
25  * two pipelines.
26  */
27
28 #include "meta-flow.h"
29
30 struct controller_ctx;
31 struct hmap;
32 struct ovsdb_idl;
33 struct ovsrec_bridge;
34 struct simap;
35
36 /* OVN Geneve option information.
37  *
38  * Keep these in sync with the documentation in ovn-architecture(7). */
39 #define OVN_GENEVE_CLASS 0x0102  /* Assigned Geneve class for OVN. */
40 #define OVN_GENEVE_TYPE 0
41 #define OVN_GENEVE_LEN 4
42
43 void physical_register_ovs_idl(struct ovsdb_idl *);
44 void physical_run(struct controller_ctx *, enum mf_field_id mff_ovn_geneve,
45                   const struct ovsrec_bridge *br_int, const char *chassis_id,
46                   const struct simap *ct_zones, struct hmap *flow_table,
47                   struct hmap *local_datapaths);
48
49 #endif /* ovn/physical.h */