On 09/19/14 06:49, Jiri Pirko wrote:
This patch adds basic support for flows. The infrastructure is prepared
to easily add another flow matching types. So far, only the key one is
implemented.

Signed-off-by: Jiri Pirko <j...@resnulli.us>
---

[snip]


+struct swdev_flow_match_key {
+       struct {
+               u32     priority;       /* Packet QoS priority. */
+               u32     in_port_ifindex; /* Input switch port ifindex (or 0). */
+       } phy;
+       struct {
+               u8     src[ETH_ALEN];   /* Ethernet source address. */
+               u8     dst[ETH_ALEN];   /* Ethernet destination address. */
+               __be16 tci;             /* 0 if no VLAN, VLAN_TAG_PRESENT set 
otherwise. */

Humm, how about QinQ here? I would provision two more 16 bits fields so we can do all sorts of VLAN matching.

You might want to allow for a 4 to 8 bytes hardware switch tag as well.

+               __be16 type;            /* Ethernet frame type. */
+       } eth;
+       struct {
+               u8     proto;           /* IP protocol or lower 8 bits of ARP 
opcode. */
+               u8     tos;             /* IP ToS. */
+               u8     ttl;             /* IP TTL/hop limit. */
+               u8     frag;            /* One of OVS_FRAG_TYPE_*. */

Options might be missing?

[snip]

+
+static void print_flow(const struct swdev_flow *flow, struct net_device *dev,
+                      const char *comment)
+{
+       pr_debug("%s flow %s:\n", dev->name, comment);
+       print_flow_match(&flow->match);
+       print_flow_actions(flow->action, flow->action_count);
+}

I am really not sure how much of this valuable besides early (as in, right now) debugging, don't we rather want a generic way to dump a given flow under a its native netlink format, does that code has to be here in the first place?
--
Florian
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to