]> git.proxmox.com Git - mirror_ovs.git/blobdiff - ofproto/ofproto-dpif-ipfix.h
dpif-netlink: Fix issues of the offloaded flows counter.
[mirror_ovs.git] / ofproto / ofproto-dpif-ipfix.h
index 2bb0e43ff9ffa192aad346fe50e3b5cdf70c389e..1f42cd5275e93022c536abcbf7564baec6112d78 100644 (file)
@@ -29,31 +29,48 @@ struct ofproto_ipfix_flow_exporter_options;
 struct flow_tnl;
 struct ofport;
 
+struct dpif_ipfix_actions {
+    bool output_action;     /* Set to true if packet has at least one
+                               OVS_ACTION_ATTR_OUTPUT action. */
+};
+
 struct dpif_ipfix *dpif_ipfix_create(void);
 struct dpif_ipfix *dpif_ipfix_ref(const struct dpif_ipfix *);
 void dpif_ipfix_unref(struct dpif_ipfix *);
 
-void dpif_ipfix_add_tunnel_port(struct dpif_ipfix *, struct ofport *, odp_port_t);
-void dpif_ipfix_del_tunnel_port(struct dpif_ipfix *, odp_port_t);
+void dpif_ipfix_add_port(struct dpif_ipfix *, struct ofport *, odp_port_t);
+void dpif_ipfix_del_port(struct dpif_ipfix *, odp_port_t);
 
 uint32_t dpif_ipfix_get_bridge_exporter_probability(const struct dpif_ipfix *);
 bool dpif_ipfix_get_bridge_exporter_tunnel_sampling(const struct dpif_ipfix *);
 bool dpif_ipfix_get_bridge_exporter_input_sampling(const struct dpif_ipfix *);
 bool dpif_ipfix_get_bridge_exporter_output_sampling(const struct dpif_ipfix *);
-bool dpif_ipfix_get_tunnel_port(const struct dpif_ipfix *, odp_port_t);
+bool dpif_ipfix_get_flow_exporter_tunnel_sampling(const struct dpif_ipfix *,
+                                                  const uint32_t);
+bool dpif_ipfix_is_tunnel_port(const struct dpif_ipfix *, odp_port_t);
 void dpif_ipfix_set_options(
     struct dpif_ipfix *,
     const struct ofproto_ipfix_bridge_exporter_options *,
     const struct ofproto_ipfix_flow_exporter_options *, size_t);
 
+int dpif_ipfix_get_stats(const struct dpif_ipfix *, bool, struct ovs_list *);
+
 void dpif_ipfix_bridge_sample(struct dpif_ipfix *, const struct dp_packet *,
                               const struct flow *,
-                              odp_port_t, odp_port_t, const struct flow_tnl *);
+                              odp_port_t, odp_port_t, const struct flow_tnl *,
+                              const struct dpif_ipfix_actions *);
 void dpif_ipfix_flow_sample(struct dpif_ipfix *, const struct dp_packet *,
-                            const struct flow *, uint32_t, uint16_t, uint32_t,
-                            uint32_t);
+                            const struct flow *,
+                            const struct user_action_cookie *,
+                            odp_port_t, const struct flow_tnl *,
+                            const struct dpif_ipfix_actions *);
 
 void dpif_ipfix_run(struct dpif_ipfix *);
 void dpif_ipfix_wait(struct dpif_ipfix *);
 
+void dpif_ipfix_read_actions(const struct flow *flow,
+                             const struct nlattr *actions,
+                             size_t actions_len,
+                             struct dpif_ipfix_actions *ipfix_actions);
+
 #endif /* ofproto/ofproto-dpif-ipfix.h */