X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=ofproto%2Fofproto-dpif-xlate.h;h=4cb8530b2297a2f034120d51a5f94dc37f67050d;hb=aad84c8ef17b0b5237904dd297487db9aae1f539;hp=461a6aa38c2b73202ea1835156ab7470e5aa69f7;hpb=4d0acc70a5416dfc1fa28c50568d4569cfe88969;p=sliver-openvswitch.git diff --git a/ofproto/ofproto-dpif-xlate.h b/ofproto/ofproto-dpif-xlate.h index 461a6aa38..4cb8530b2 100644 --- a/ofproto/ofproto-dpif-xlate.h +++ b/ofproto/ofproto-dpif-xlate.h @@ -19,12 +19,16 @@ #include "meta-flow.h" #include "odp-util.h" #include "ofpbuf.h" +#include "ofproto-dpif-mirror.h" #include "ofproto-dpif.h" #include "tag.h" -/* Maximum depth of flow table recursion (due to resubmit actions) in a - * flow translation. */ -#define MAX_RESUBMIT_RECURSION 64 +struct bfd; +struct bond; +struct lacp; +struct dpif_ipfix; +struct dpif_sflow; +struct mac_learning; struct xlate_out { /* Wildcards relevant in translation. Any fields that were used to @@ -41,7 +45,7 @@ struct xlate_out { bool has_learn; /* Actions include NXAST_LEARN? */ bool has_normal; /* Actions output to OFPP_NORMAL? */ bool has_fin_timeout; /* Actions include NXAST_FIN_TIMEOUT? */ - uint16_t nf_output_iface; /* Output interface index for NetFlow. */ + ofp_port_t nf_output_iface; /* Output interface index for NetFlow. */ mirror_mask_t mirrors; /* Bitmap of associated mirrors. */ uint64_t odp_actions_stub[256 / 8]; @@ -107,6 +111,28 @@ struct xlate_in { const struct dpif_flow_stats *resubmit_stats; }; +void xlate_ofproto_set(struct ofproto_dpif *, const char *name, + const struct mac_learning *, const struct mbridge *, + const struct dpif_sflow *, const struct dpif_ipfix *, + enum ofp_config_flags, bool forward_bpdu, + bool has_in_band, bool has_netflow, bool has_stp); +void xlate_remove_ofproto(struct ofproto_dpif *); + +void xlate_bundle_set(struct ofproto_dpif *, struct ofbundle *, + const char *name, enum port_vlan_mode, int vlan, + unsigned long *trunks, bool use_priority_tags, + const struct bond *, const struct lacp *, + bool floodable); +void xlate_bundle_remove(struct ofbundle *); + +void xlate_ofport_set(struct ofproto_dpif *, struct ofbundle *, + struct ofport_dpif *, ofp_port_t, odp_port_t, + const struct netdev *, const struct cfm *, + const struct bfd *, struct ofport_dpif *peer, + enum ofputil_port_config, enum stp_state, bool is_tunnel, + bool may_enable); +void xlate_ofport_remove(struct ofport_dpif *); + void xlate_actions(struct xlate_in *, struct xlate_out *); void xlate_in_init(struct xlate_in *, struct ofproto_dpif *, const struct flow *, struct rule_dpif *,