summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Tu <u9012063@gmail.com>2018-03-09 13:02:23 -0800
committerBen Pfaff <blp@ovn.org>2018-05-21 20:33:30 -0700
commit754f8acb458532108c93eeb123481fc036c96073 (patch)
tree3fcc8041c01c54c97f99435af35d557f29315fc0
parent320326e9b33aeac9c0d6250c4d1c3ad6df471514 (diff)
downloadopenvswitch-754f8acb458532108c93eeb123481fc036c96073.tar.gz
netdev-native-tnl: refactor the tunnel push header.
The patch adds additional 'struct netdev *' to the native tunnel's push_header() interface. This is used for later GRE sequence number support. Signed-off-by: William Tu <u9012063@gmail.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
-rw-r--r--lib/netdev-native-tnl.c6
-rw-r--r--lib/netdev-native-tnl.h6
-rw-r--r--lib/netdev-provider.h3
-rw-r--r--lib/netdev.c2
4 files changed, 11 insertions, 6 deletions
diff --git a/lib/netdev-native-tnl.c b/lib/netdev-native-tnl.c
index c3e698d2e..5eb3d22cd 100644
--- a/lib/netdev-native-tnl.c
+++ b/lib/netdev-native-tnl.c
@@ -215,7 +215,8 @@ udp_extract_tnl_md(struct dp_packet *packet, struct flow_tnl *tnl,
void
-netdev_tnl_push_udp_header(struct dp_packet *packet,
+netdev_tnl_push_udp_header(const struct netdev *netdev OVS_UNUSED,
+ struct dp_packet *packet,
const struct ovs_action_push_tnl *data)
{
struct udp_header *udp;
@@ -435,7 +436,8 @@ err:
}
void
-netdev_gre_push_header(struct dp_packet *packet,
+netdev_gre_push_header(const struct netdev *netdev OVS_UNUSED,
+ struct dp_packet *packet,
const struct ovs_action_push_tnl *data)
{
struct gre_base_hdr *greh;
diff --git a/lib/netdev-native-tnl.h b/lib/netdev-native-tnl.h
index a912ce916..5012b2dba 100644
--- a/lib/netdev-native-tnl.h
+++ b/lib/netdev-native-tnl.h
@@ -34,13 +34,15 @@ netdev_gre_build_header(const struct netdev *netdev,
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);
struct dp_packet *
netdev_gre_pop_header(struct dp_packet *packet);
void
-netdev_tnl_push_udp_header(struct dp_packet *packet,
+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,
diff --git a/lib/netdev-provider.h b/lib/netdev-provider.h
index 6e8ae4f42..5503b79c7 100644
--- a/lib/netdev-provider.h
+++ b/lib/netdev-provider.h
@@ -314,7 +314,8 @@ struct netdev_class {
* flow. Push header is called for packet to build header specific to
* a packet on actual transmit. It uses partial header build by
* build_header() which is passed as data. */
- void (*push_header)(struct dp_packet *packet,
+ void (*push_header)(const struct netdev *,
+ struct dp_packet *packet,
const struct ovs_action_push_tnl *data);
/* Pop tunnel header from packet, build tunnel metadata and resize packet
diff --git a/lib/netdev.c b/lib/netdev.c
index a1ac1b5b2..dec35de25 100644
--- a/lib/netdev.c
+++ b/lib/netdev.c
@@ -858,7 +858,7 @@ netdev_push_header(const struct netdev *netdev,
{
struct dp_packet *packet;
DP_PACKET_BATCH_FOR_EACH (i, packet, batch) {
- netdev->netdev_class->push_header(packet, data);
+ netdev->netdev_class->push_header(netdev, packet, data);
pkt_metadata_init(&packet->md, data->out_port);
}