On Tue, Mar 21, 2017 at 12:21 PM, Han Zhou <[email protected]> wrote: > > A python script to decode ofproto/trace output to add ovn lflow > information inline. > > Signed-off-by: Han Zhou <[email protected]> > --- > manpages.mk | 4 ++ > ovn/utilities/automake.mk | 15 +++++-- > ovn/utilities/ovn-detrace.1.in | 29 +++++++++++++ > ovn/utilities/ovn-detrace.in | 94 ++++++++++++++++++++++++++++++++++++++++++ > 4 files changed, 138 insertions(+), 4 deletions(-) > create mode 100644 ovn/utilities/ovn-detrace.1.in > create mode 100755 ovn/utilities/ovn-detrace.in > > diff --git a/manpages.mk b/manpages.mk > index 742bd66..ced19c0 100644 > --- a/manpages.mk > +++ b/manpages.mk > @@ -1,5 +1,9 @@ > # Generated automatically -- do not modify! -*- buffer-read-only: t -*- > > +ovn/utilities/ovn-detrace.py: \ > + ovn/utilities/ovn-detrace.py.in > +ovn/utilities/ovn-detrace.py.in: > + > ovn/utilities/ovn-sbctl.8: \ > ovn/utilities/ovn-sbctl.8.in \ > lib/common.man \ > diff --git a/ovn/utilities/automake.mk b/ovn/utilities/automake.mk > index 08e48ea..b96f9bf 100644 > --- a/ovn/utilities/automake.mk > +++ b/ovn/utilities/automake.mk > @@ -6,14 +6,18 @@ man_MANS += \ > ovn/utilities/ovn-ctl.8 \ > ovn/utilities/ovn-nbctl.8 \ > ovn/utilities/ovn-sbctl.8 \ > - ovn/utilities/ovn-trace.8 > + ovn/utilities/ovn-trace.8 \ > + ovn/utilities/ovn-detrace.1 > > -MAN_ROOTS += ovn/utilities/ovn-sbctl.8.in > +MAN_ROOTS += \ > + ovn/utilities/ovn-sbctl.8.in \ > + ovn/utilities/ovn-detrace.1.in > > # Docker drivers > bin_SCRIPTS += \ > ovn/utilities/ovn-docker-overlay-driver \ > - ovn/utilities/ovn-docker-underlay-driver > + ovn/utilities/ovn-docker-underlay-driver \ > + ovn/utilities/ovn-detrace > > EXTRA_DIST += \ > ovn/utilities/ovn-ctl \ > @@ -22,13 +26,16 @@ EXTRA_DIST += \ > ovn/utilities/ovn-docker-underlay-driver \ > ovn/utilities/ovn-nbctl.8.xml \ > ovn/utilities/ovn-trace.8.xml \ > + ovn/utilities/ovn-detrace.in \ > ovn/utilities/ovndb-servers.ocf > > CLEANFILES += \ > ovn/utilities/ovn-ctl.8 \ > ovn/utilities/ovn-nbctl.8 \ > ovn/utilities/ovn-sbctl.8 \ > - ovn/utilities/ovn-trace.8 > + ovn/utilities/ovn-trace.8 \ > + ovn/utilities/ovn-detrace.1 \ > + ovn/utilities/ovn-detrace > > # ovn-nbctl > bin_PROGRAMS += ovn/utilities/ovn-nbctl > diff --git a/ovn/utilities/ovn-detrace.1.in b/ovn/utilities/ ovn-detrace.1.in > new file mode 100644 > index 0000000..2f74fd7 > --- /dev/null > +++ b/ovn/utilities/ovn-detrace.1.in > @@ -0,0 +1,29 @@ > +.TH ovn\-detrace 1 "@VERSION@" "Open vSwitch" "Open vSwitch Manual" > +. > +.SH NAME > +ovn\-detrace \- convert ``ovs\-appctl ofproto/trace'' output to combine > +OVN logical flow information. > +. > +.SH SYNOPSIS > +\fBovn\-detrace < \fIfile\fR > +.so lib/common-syn.man > +. > +.SH DESCRIPTION > +The \fBovn\-detrace\fR program reads \fBovs\-appctl ofproto/trace\fR output on > +stdin, looking for cookies, and expand each cookie with corresponding OVN logical > +flows. > +.PP > +. > +.SH "OPTIONS" > +.so lib/common.man > +. > +.IP "\fB\-\-db=\fIserver\fR" > +The OVSDB database remote to contact. If the \fBOVN_SB_DB\fR > +environment variable is set, its value is used as the default. > +Otherwise, the default is \fBunix:@RUNDIR@/db.sock\fR, but this > +default is unlikely to be useful outside of single-machine OVN test > +environments. > +. > +.SH "SEE ALSO" > +. > +.BR ovs\-appctl (8), ovn\-sbctl (8), ovn\-trace (8) > diff --git a/ovn/utilities/ovn-detrace.in b/ovn/utilities/ovn-detrace.in > new file mode 100755 > index 0000000..ea85484 > --- /dev/null > +++ b/ovn/utilities/ovn-detrace.in > @@ -0,0 +1,94 @@ > +#! /usr/bin/env @PYTHON@ > +# > +# Copyright (c) 2017 eBay Inc. > +# > +# Licensed under the Apache License, Version 2.0 (the "License"); > +# you may not use this file except in compliance with the License. > +# You may obtain a copy of the License at: > +# > +# http://www.apache.org/licenses/LICENSE-2.0 > +# > +# Unless required by applicable law or agreed to in writing, software > +# distributed under the License is distributed on an "AS IS" BASIS, > +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > +# See the License for the specific language governing permissions and > +# limitations under the License. > + > +import getopt > +import re > +import subprocess > +import sys > + > +argv0 = sys.argv[0] > + > + > +def usage(): > + print """\ > +%(argv0)s: > +usage: %(argv0)s < FILE > +where FILE is output from ovs-appctl ofproto/trace. > + > +The following options are also available: > + -h, --help display this help message > + -V, --version display version information > + --db=DATABASE connect to DATABASE\ > +""" % {'argv0': argv0} > + sys.exit(0) > + > + > +def reformat(lflow): > + return re.sub(r'\s+[,\)]', '', lflow, 0) > + > + > +def main(): > + try: > + options, args = getopt.gnu_getopt(sys.argv[1:], 'hV', > + ['help', 'version', 'db=']) > + except getopt.GetoptError, geo: > + sys.stderr.write("%s: %s\n" % (argv0, geo.msg)) > + sys.exit(1) > + > + db_opt = None > + for key, value in options: > + if key in ['-h', '--help']: > + usage() > + elif key in ['-V', '--version']: > + print "%s (Open vSwitch) @VERSION@" % argv0 > + elif key in ['--db']: > + db_opt = key + '=' + value > + else: > + sys.exit(0) > + > + if len(args) != 0: > + sys.stderr.write("%s: non-option argument not supported " > + "(use --help for help)\n" % argv0) > + sys.exit(1) > + > + regex = re.compile(r'^.*cookie 0x([0-9a-fA-F]+)') > + while True: > + line = sys.stdin.readline() > + print line.strip() > + if line == "": > + break > + > + m = regex.match(line) > + if m: > + cookie = m.group(1) > + cmd_args = ['ovn-sbctl'] > + if db_opt: > + cmd_args.append(db_opt) > + cmd_args.extend(['lflow-list', cookie]) > + lflow = subprocess.check_output(cmd_args) > + if lflow: > + for l in lflow.splitlines(): > + l = reformat(l) > + print "\t* " + l > + > + > +if __name__ == "__main__": > + main() > + > + > +# Local variables: > +# mode: python > +# End: > -- > 2.1.0 >
This patch is abandoned and replaced by below patch series, which expand ovs flows not only to logical flows but also to ACLs: https://mail.openvswitch.org/pipermail/ovs-dev/2017-March/330143.html https://mail.openvswitch.org/pipermail/ovs-dev/2017-March/330144.html _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
