projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
meta-flow: Split ICMP into ICMPv4 and ICMPv6.
[openvswitch]
/
lib
/
meta-flow.h
diff --git
a/lib/meta-flow.h
b/lib/meta-flow.h
index 1242f9ff3f81641c12f41ac658908c5b7d8b40dd..799071320072c8aeeaf123e5d410f19840783e64 100644
(file)
--- a/
lib/meta-flow.h
+++ b/
lib/meta-flow.h
@@
-67,9
+67,12
@@
enum mf_field_id {
MFF_IPV6_SRC, /* ipv6 */
MFF_IPV6_DST, /* ipv6 */
MFF_IPV6_SRC, /* ipv6 */
MFF_IPV6_DST, /* ipv6 */
+ MFF_IPV6_LABEL, /* be32 */
MFF_IP_PROTO, /* u8 (used for IPv4 or IPv6) */
MFF_IP_PROTO, /* u8 (used for IPv4 or IPv6) */
- MFF_IP_TOS, /* u8 (used for IPv4 or IPv6) */
+ MFF_IP_DSCP, /* u8 (used for IPv4 or IPv6) */
+ MFF_IP_ECN, /* u8 (used for IPv4 or IPv6) */
+ MFF_IP_TTL, /* u8 (used for IPv4 or IPv6) */
MFF_IP_FRAG, /* u8 (used for IPv4 or IPv6) */
MFF_ARP_OP, /* be16 */
MFF_IP_FRAG, /* u8 (used for IPv4 or IPv6) */
MFF_ARP_OP, /* be16 */
@@
-85,8
+88,11
@@
enum mf_field_id {
MFF_UDP_SRC, /* be16 (used for IPv4 or IPv6) */
MFF_UDP_DST, /* be16 (used for IPv4 or IPv6) */
MFF_UDP_SRC, /* be16 (used for IPv4 or IPv6) */
MFF_UDP_DST, /* be16 (used for IPv4 or IPv6) */
- MFF_ICMP_TYPE, /* u8 (used for IPv4 or IPv6) */
- MFF_ICMP_CODE, /* u8 (used for IPv4 or IPv6) */
+ MFF_ICMPV4_TYPE, /* u8 */
+ MFF_ICMPV4_CODE, /* u8 */
+
+ MFF_ICMPV6_TYPE, /* u8 */
+ MFF_ICMPV6_CODE, /* u8 */
/* ICMPv6 Neighbor Discovery. */
MFF_ND_TARGET, /* ipv6 */
/* ICMPv6 Neighbor Discovery. */
MFF_ND_TARGET, /* ipv6 */
@@
-113,8
+119,8
@@
enum mf_prereqs {
/* L2+L3 requirements. */
MFP_TCP, /* On IPv4 or IPv6. */
MFP_UDP, /* On IPv4 or IPv6. */
/* L2+L3 requirements. */
MFP_TCP, /* On IPv4 or IPv6. */
MFP_UDP, /* On IPv4 or IPv6. */
+ MFP_ICMPV4,
MFP_ICMPV6,
MFP_ICMPV6,
- MFP_ICMP_ANY,
/* L2+L3+L4 requirements. */
MFP_ND,
/* L2+L3+L4 requirements. */
MFP_ND,
@@
-157,9
+163,13
@@
struct mf_field {
/* Size.
*
/* Size.
*
- * Most fields have n_bytes * 8 == n_bits. There are only two exceptions
- * currently: "dl_vlan" is 2 bytes but only 12 bits, and "dl_vlan_pcp" is
- * 1 byte but only 3 bits. */
+ * Most fields have n_bytes * 8 == n_bits. There are a few exceptions:
+ *
+ * - "dl_vlan" is 2 bytes but only 12 bits.
+ * - "dl_vlan_pcp" is 1 byte but only 3 bits.
+ * - "is_frag" is 1 byte but only 2 bits.
+ * - "ipv6_label" is 4 bytes but only 20 bits.
+ */
unsigned int n_bytes; /* Width of the field in bytes. */
unsigned int n_bits; /* Number of significant bits in field. */
unsigned int n_bytes; /* Width of the field in bytes. */
unsigned int n_bits; /* Number of significant bits in field. */