On Oct 8, 2013, at 1:12 PM, Ben Pfaff <[email protected]> wrote:
> On Tue, Oct 08, 2013 at 11:37:02AM -0700, Jarno Rajahalme wrote:
>> tcp_flags=flags/mask
>> Bitwise match on TCP flags. The flags and mask are 16-bit num???
>> bers written in decimal or in hexadecimal prefixed by 0x. Each
>> 1-bit in mask requires that the corresponding bit in port must
>> match. Each 0-bit in mask causes the corresponding bit to be
>> ignored.
>>
>> TCP protocol currently defines 9 flag bits, and additional 3
>> bits are reserved (must be transmitted as zero), see RFCs 793,
>> 3168, and 3540. The flag bits are, numbering from the least
>> significant bit:
>>
>> 0: FIN No more data from sender.
>>
>> 1: SYN Synchronize sequence numbers.
>>
>> 2: RST Reset the connection.
>>
>> 3: PSH Push function.
>>
>> 4: ACK Acknowledgement field significant.
>>
>> 5: URG Urgent pointer field significant.
>>
>> 6: ECE ECN Echo.
>>
>> 7: CWR Congestion Windows Reduced.
>>
>> 8: NS Nonce Sum.
>>
>> 9-11: Reserved.
>>
>> 12-15: Not matchable, must be zero.
>>
>> Signed-off-by: Jarno Rajahalme <[email protected]>
>
> I get numerous build assertion failures in flow.h, on both of these:
>
> BUILD_ASSERT_DECL(sizeof(struct flow) % 4 == 0);
> BUILD_ASSERT_DECL(sizeof(struct flow) == sizeof(struct flow_tnl) + 160 &&
> FLOW_WC_SEQ == 22);
>
> The only slightly unusual part of my setup is that I build for 32-bit
> instead of 64-bit userspace.
This incremental should work, I'll send a new patch:
diff --git a/lib/flow.h b/lib/flow.h
index b1487c1..f1d3aad 100644
--- a/lib/flow.h
+++ b/lib/flow.h
@@ -112,7 +112,7 @@ struct flow {
uint8_t arp_tha[6]; /* ARP/ND target hardware address. */
uint8_t nw_ttl; /* IP TTL/Hop Limit. */
uint8_t nw_frag; /* FLOW_FRAG_* flags. */
- uint8_t zeros[2];
+ uint8_t zeros[6];
};
BUILD_ASSERT_DECL(sizeof(struct flow) % 4 == 0);
Jarno
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev