On 1 Dec 2023, at 20:14, Adrian Moreno wrote:

> This series introduces a python utility called ovs-flowviz.
>
> The goal of this utility is to read both datapath and Openflow flows
> (using the flow library already available) and print them in different
> formats and styles to make it easier to understand them and troubleshoot
> issues.
>
> The formats are quite opinionated and so are the colors chosen so I'm
> eager to hear what is the impression caused to the community.
>
> Here is a summary of the formats and features supported:
>
> - Openflow
>    - Console: Prints flows back to the console allowing filtering and
>      extensive formatting.
>    - Cookie: Arranges flows based on cookie (instead of table) to ease
>      visualization of OVN-generated flows.
>    - HTML: Prints an HTML file that shows the flows arranged by tables.
>      resubmit actions have a hyperlinke to the target table to ease
>      navegation.
>    - Logic: Many times OVN generates many "logically-equivalent" flows.
>      These are flows that have the same structure: match on the same
>      values and have the same actions. The only thing that changes is
>      the actual value they match against and maybe the arguments of the
>      actions. This format collapses these flows so you can visualize the
>      logical pipeline easier.
>    - JSON: JSON format.
>
> More OpenFlow features:
>    - OVN metadata: Both the "cookie" and the "logic" format allow to
>      connect to a running OVN NB/SB databases and enrich the flows with
>      OVN context based on the flow's cookie.
>
> - Datapath:
>    - Console: Prints flows back to the console allowing filtering and
>      extensive formatting.
>    - Tree: Datapath flows use recirculation to further execute
>      additional actions. This format builds a tree of flows following
>      the recirculation identifiers and prints it in the console.
>    - HTML: Prints the datapath flow tree in HTML. It includes some
>      minimal JS to support expanding and collapsing of entire branches.
>    - Graph: Following the "tree" format, this one prints the tree in
>      graphviz format.
>    - JSON: JSON format.
>
> Additional datapath features:
>    - Many datapath formats are based on the tree flow hierarchy. An
>      interesting feature of this structure is that filtering is done at
>      the branch level. This means that when a flow satisfies the filter,
>      the entire sub-tree leading to that flow is shown.
>
> Additional common features:
>    - Styling: Styles for both console and HTML formats can be defined
>      using a configuration file.
>    - Heat maps: Some formats support heat-maps. A color pallete ranging
>      from blue (cold) to red (hot) is used to print the number of
>      packets and bytes of the flows. That way, the flows that are
>      handling more traffic are much easier to spot
>
> I know this is a long series, so it's OK if it takes time to review. I'm
> specially interested to know what is found useful and what is worth
> removing (if any).

Thanks Adrian, for submitting the series and I think the quality of the code is 
good enough to submit it as a non-RFC. Most of the comments I have are style 
nits.

The only main thing missing is some documentation/man pages for the tool.

I’ll reply to the individual patches with comments.

Cheers,

Eelco

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to