From: Artur Twardowski <arturx.twardow...@intel.com>

Replaced variable names "hlen", "ulen", "gnh" with longer ones to make
the code analysis easier. Additionally, UDP header len is no longer
accumulated into GENEVE header length, additions are used in the places
where the sum of both headers is used.

Signed-off-by: Artur Twardowski <arturx.twardow...@intel.com>
---
 lib/netdev-native-tnl.c | 36 +++++++++++++++++++-----------------
 1 file changed, 19 insertions(+), 17 deletions(-)

diff --git a/lib/netdev-native-tnl.c b/lib/netdev-native-tnl.c
index 54ed0e9..d0ea3d5 100644
--- a/lib/netdev-native-tnl.c
+++ b/lib/netdev-native-tnl.c
@@ -837,8 +837,8 @@ netdev_geneve_pop_header(struct dp_packet *packet)
 {
     struct pkt_metadata *md = &packet->md;
     struct flow_tnl *tnl = &md->tunnel;
-    struct genevehdr *gnh;
-    unsigned int hlen, opts_len, ulen;
+    struct genevehdr *geneve_hdr;
+    unsigned int geneve_hdr_len, opts_len, udp_hdr_len;
 
     pkt_metadata_init_tnl(md);
     if (!dp_packet_may_pull(packet, packet->l4_ofs, GENEVE_BASE_HLEN)) {
@@ -847,40 +847,42 @@ netdev_geneve_pop_header(struct dp_packet *packet)
         goto err;
     }
 
-    gnh = udp_extract_tnl_md(packet, tnl, &ulen);
-    if (!gnh) {
+    geneve_hdr = udp_extract_tnl_md(packet, tnl, &udp_hdr_len);
+    if (!geneve_hdr) {
         goto err;
     }
 
-    opts_len = gnh->opt_len * 4;
-    hlen = ulen + GENEVE_BASE_HLEN + opts_len;
-    if (!dp_packet_may_pull(packet, packet->l4_ofs, hlen - ulen)) {
-        VLOG_WARN_RL(&err_rl, "geneve packet too small: header len=%u packet 
size=%u\n",
-                     hlen, dp_packet_size(packet));
+    opts_len = geneve_hdr->opt_len * 4;
+    geneve_hdr_len = GENEVE_BASE_HLEN + opts_len;
+    if (!dp_packet_may_pull(packet, udp_hdr_len, geneve_hdr_len)) {
+        VLOG_WARN_RL(&err_rl, "geneve packet too small: "
+                              "wanted headers=%u, but packet size=%u\n",
+                              geneve_hdr_len + udp_hdr_len,
+                              dp_packet_size(packet));
         goto err;
     }
 
-    if (gnh->ver != 0) {
-        VLOG_WARN_RL(&err_rl, "unknown geneve version: %"PRIu8"\n", gnh->ver);
+    if (geneve_hdr->ver != 0) {
+        VLOG_WARN_RL(&err_rl, "unknown geneve version: %"PRIu8"\n", 
geneve_hdr->ver);
         goto err;
     }
 
-    if (gnh->proto_type != htons(ETH_TYPE_TEB)) {
+    if (geneve_hdr->proto_type != htons(ETH_TYPE_TEB)) {
         VLOG_WARN_RL(&err_rl, "unknown geneve encapsulated protocol: %#x\n",
-                     ntohs(gnh->proto_type));
+                     ntohs(geneve_hdr->proto_type));
         goto err;
     }
 
-    tnl->flags |= gnh->oam ? FLOW_TNL_F_OAM : 0;
-    tnl->tun_id = htonll(ntohl(get_16aligned_be32(&gnh->vni)) >> 8);
+    tnl->flags |= geneve_hdr->oam ? FLOW_TNL_F_OAM : 0;
+    tnl->tun_id = htonll(ntohl(get_16aligned_be32(&geneve_hdr->vni)) >> 8);
     tnl->flags |= FLOW_TNL_F_KEY;
 
-    memcpy(tnl->metadata.opts.gnv, gnh->options, opts_len);
+    memcpy(tnl->metadata.opts.gnv, geneve_hdr->options, opts_len);
     tnl->metadata.present.len = opts_len;
     tnl->flags |= FLOW_TNL_F_UDPIF;
 
     packet->packet_type = htonl(PT_ETH);
-    dp_packet_reset_packet(packet, hlen);
+    dp_packet_reset_packet(packet, geneve_hdr_len + udp_hdr_len);
 
     return packet;
 err:
-- 
2.7.4

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to