[ovs-dev] [PATCH] odp-util: Fix a bug in parse_flag().
Ben Pfaff
blp at nicira.com
Sat May 2 21:29:45 UTC 2015
OK, I understand the question now.
When + or - is used, it's supposed to work as documented for tcp_flags
in ovs-ofctl(8), quoted below. We don't really document the odp format
anywhere; maybe we should.
tcp_flags=flags/mask
tcp_flags=[+flag...][-flag...]
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 flags must
match. Each 0-bit in mask causes the corresponding bit to be
ignored.
Alternatively, the flags can be specified by their symbolic names
(listed below), each preceded by either + for a flag that must be
set, or - for a flag that must be unset, without any other delim‐
iters between the flags. Flags not mentioned are wildcarded.
For example, tcp,tcp_flags=+syn-ack matches TCP SYNs that are not
ACKs.
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 signifi‐
cant 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.
On Sat, May 02, 2015 at 02:15:48PM -0700, Alex Wang wrote:
> in the parse_flag() function in odp_util, it seems that we can mask the
> flag.
> Also, the parsing is different for masked flag and unmasked flag.
> (e.g., the masked flag parsing uses + and - as delimiter, while the unmasked
> flag parsing use , as delimiter)
>
> Thanks,
> Alex Wang,
>
> On Sat, May 2, 2015 at 11:47 AM, Ben Pfaff <blp at nicira.com> wrote:
>
> > I don't understand the question yet, can you rephrase it?
> >
> > Thanks,
> >
> > Ben.
> >
> > On Sat, May 02, 2015 at 11:21:13AM -0700, Alex Wang wrote:
> > > Thx for pointing me to the example~
> > >
> > > After check the tests, want to ask what is the difference between masked
> > > flag and unmasked flag? especially for tunnel,
> > >
> > > Thanks,
> > > Alex Wang,
> > >
> > > On Sat, May 2, 2015 at 10:55 AM, Ben Pfaff <blp at nicira.com> wrote:
> > >
> > > > Can we just add an example to tests/odp.at?
> > > >
> > > > On Sat, May 02, 2015 at 10:51:30AM -0700, Alex Wang wrote:
> > > > > Thx, I'll apply this first, trying to think of a good way to test it~
> > > > >
> > > > > On Sat, May 2, 2015 at 10:13 AM, Ben Pfaff <blp at nicira.com> wrote:
> > > > >
> > > > > > On Fri, May 01, 2015 at 08:58:57PM -0700, Alex Wang wrote:
> > > > > > > This commit fixes a bug in the parse_flag() function which causes
> > > > > > > failure of parsing tunnel flags like:
> > > > > > >
> > > > > > >
> > > > > >
> > > >
> > tunnel(tun_id=0x0,src=1.2.3.4,dst=1.2.3.5,tos=0,ttl=64,flags(-df+csum+key))
> > > > > > >
> > > > > > > Reported-by: Jacob Cherkas <jcherkas at nicira.com>
> > > > > > > Signed-off-by: Alex Wang <alexw at nicira.com>
> > > > > >
> > > > > > Fantastic, thank you--I noticed the same problem a few days ago
> > testing
> > > > > > OVN but hadn't had time to follow up yet.
> > > > > >
> > > > > > Can you add a test?
> > > > > >
> > > > > > Thanks,
> > > > > >
> > > > > > Ben.
> > > > > >
> > > >
> >
More information about the dev
mailing list