Skip to content

Commit 5edbea6

Browse files
akodanevdavem330
authored andcommitted
geneve: cleanup hard coded value for Ethernet header length
Use ETH_HLEN instead and introduce two new macros: GENEVE_IPV4_HLEN and GENEVE_IPV6_HLEN that include Ethernet header length, corresponded IP header length and GENEVE_BASE_HLEN. Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 4c52a88 commit 5edbea6

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

drivers/net/geneve.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ MODULE_PARM_DESC(log_ecn_error, "Log packets received with corrupted ECN");
3636

3737
#define GENEVE_VER 0
3838
#define GENEVE_BASE_HLEN (sizeof(struct udphdr) + sizeof(struct genevehdr))
39+
#define GENEVE_IPV4_HLEN (ETH_HLEN + sizeof(struct iphdr) + GENEVE_BASE_HLEN)
40+
#define GENEVE_IPV6_HLEN (ETH_HLEN + sizeof(struct ipv6hdr) + GENEVE_BASE_HLEN)
3941

4042
/* per-network namespace private data for this module */
4143
struct geneve_net {
@@ -826,8 +828,8 @@ static int geneve_xmit_skb(struct sk_buff *skb, struct net_device *dev,
826828
return PTR_ERR(rt);
827829

828830
if (skb_dst(skb)) {
829-
int mtu = dst_mtu(&rt->dst) - sizeof(struct iphdr) -
830-
GENEVE_BASE_HLEN - info->options_len - 14;
831+
int mtu = dst_mtu(&rt->dst) - GENEVE_IPV4_HLEN -
832+
info->options_len;
831833

832834
skb_dst_update_pmtu(skb, mtu);
833835
}
@@ -872,8 +874,7 @@ static int geneve6_xmit_skb(struct sk_buff *skb, struct net_device *dev,
872874
return PTR_ERR(dst);
873875

874876
if (skb_dst(skb)) {
875-
int mtu = dst_mtu(dst) - sizeof(struct ipv6hdr) -
876-
GENEVE_BASE_HLEN - info->options_len - 14;
877+
int mtu = dst_mtu(dst) - GENEVE_IPV6_HLEN - info->options_len;
877878

878879
skb_dst_update_pmtu(skb, mtu);
879880
}

0 commit comments

Comments
 (0)