]> git.proxmox.com Git - mirror_ovs.git/blobdiff - lib/netdev-native-tnl.h
dpif-netdev: Fix typo in copyright header.
[mirror_ovs.git] / lib / netdev-native-tnl.h
index e382fa10698952f10ea522d63a05e517a440206b..22ae2ce5369b193268a2ec3ca7e126d7761aa8d9 100644 (file)
 #include <stdbool.h>
 #include <stddef.h>
 #include "compiler.h"
+#include "dp-packet.h"
+#include "packets.h"
 #include "unixctl.h"
 
+struct netdev;
+struct ovs_action_push_tnl;
+struct netdev_tnl_build_header_params;
+
 int
 netdev_gre_build_header(const struct netdev *netdev,
                         struct ovs_action_push_tnl *data,
-                        const struct flow *tnl_flow);
+                        const struct netdev_tnl_build_header_params *params);
+
 void
-netdev_gre_push_header(struct dp_packet *packet,
+netdev_gre_push_header(const struct netdev *netdev,
+                       struct dp_packet *packet,
                        const struct ovs_action_push_tnl *data);
-int
+struct dp_packet *
 netdev_gre_pop_header(struct dp_packet *packet);
 
+int
+netdev_erspan_build_header(const struct netdev *netdev,
+                           struct ovs_action_push_tnl *data,
+                           const struct netdev_tnl_build_header_params *p);
+
 void
-netdev_tnl_push_udp_header(struct dp_packet *packet,
+netdev_erspan_push_header(const struct netdev *netdev,
+                          struct dp_packet *packet,
+                          const struct ovs_action_push_tnl *data);
+struct dp_packet *
+netdev_erspan_pop_header(struct dp_packet *packet);
+
+struct dp_packet *
+netdev_gtpu_pop_header(struct dp_packet *packet);
+
+void
+netdev_gtpu_push_header(const struct netdev *netdev,
+                        struct dp_packet *packet,
+                        const struct ovs_action_push_tnl *data);
+
+int
+netdev_gtpu_build_header(const struct netdev *netdev,
+                         struct ovs_action_push_tnl *data,
+                         const struct netdev_tnl_build_header_params *p);
+
+void
+netdev_tnl_push_udp_header(const struct netdev *netdev,
+                           struct dp_packet *packet,
                            const struct ovs_action_push_tnl *data);
 int
 netdev_geneve_build_header(const struct netdev *netdev,
                            struct ovs_action_push_tnl *data,
-                           const struct flow *tnl_flow);
-int
+                           const struct netdev_tnl_build_header_params *params);
+
+struct dp_packet *
 netdev_geneve_pop_header(struct dp_packet *packet);
 
 int
 netdev_vxlan_build_header(const struct netdev *netdev,
                           struct ovs_action_push_tnl *data,
-                          const struct flow *tnl_flow);
-int
+                          const struct netdev_tnl_build_header_params *params);
+
+struct dp_packet *
 netdev_vxlan_pop_header(struct dp_packet *packet);
 
 static inline bool
@@ -69,6 +105,11 @@ netdev_tnl_ipv6_hdr(void *eth)
     return (void *)((char *)eth + sizeof (struct eth_header));
 }
 
+void *
+netdev_tnl_ip_build_header(struct ovs_action_push_tnl *data,
+                           const struct netdev_tnl_build_header_params *params,
+                           uint8_t next_proto);
+
 extern uint16_t tnl_udp_port_min;
 extern uint16_t tnl_udp_port_max;