summaryrefslogtreecommitdiff
path: root/lib/packets.h
diff options
context:
space:
mode:
authorPravin B Shelar <pshelar@ovn.org>2016-05-17 17:35:28 -0700
committerPravin B Shelar <pshelar@ovn.org>2016-05-18 19:39:18 -0700
commit1bc3f0ed2615aa2475e4c92339253a6092746ad4 (patch)
treeee1beb41b3919466a114e45b8c81804208af1888 /lib/packets.h
parent66525ef3b8d604e47ca0bd1a7510b1ae9f3eb5ba (diff)
downloadopenvswitch-1bc3f0ed2615aa2475e4c92339253a6092746ad4.tar.gz
tunnel: Add IP ECN related functions.
Set and get functions for IP explicit congestion notification flag. These function would be used by STT reassembly code. Signed-off-by: Pravin B Shelar <pshelar@ovn.org> Acked-by: Jesse Gross <jesse@kernel.org>
Diffstat (limited to 'lib/packets.h')
-rw-r--r--lib/packets.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/packets.h b/lib/packets.h
index 2bc85ae8f..594594053 100644
--- a/lib/packets.h
+++ b/lib/packets.h
@@ -584,6 +584,12 @@ char *ip_parse_cidr_len(const char *s, int *n, ovs_be32 *ip,
#define IP_ECN_MASK 0x03
#define IP_DSCP_MASK 0xfc
+static inline int
+IP_ECN_is_ce(uint8_t dsfield)
+{
+ return (dsfield & IP_ECN_MASK) == IP_ECN_CE;
+}
+
#define IP_VERSION 4
#define IP_DONT_FRAGMENT 0x4000 /* Don't fragment. */
@@ -1064,5 +1070,6 @@ void compose_arp(struct dp_packet *, uint16_t arp_op,
void compose_nd(struct dp_packet *, const struct eth_addr eth_src,
struct in6_addr *, struct in6_addr *);
uint32_t packet_csum_pseudoheader(const struct ip_header *);
+void IP_ECN_set_ce(struct dp_packet *pkt, bool is_ipv6);
#endif /* packets.h */