On 9 March 2017 at 04:23, Yang, Yi Y <yi.y.y...@intel.com> wrote: > Hi, all > > I'm testing GTP-U header parsing by adding pure userspace support code, now I > can "ovs-ofctl -Oopenflow13 add-flows" and "ovs-ofctl -Oopenflow13 dump-flows" > > $ sudo ovs-ofctl -Oopenflow13 dump-flows br-int > OFPST_FLOW reply (OF1.3) (xid=0x2): > cookie=0x0, duration=2930.079s, table=0, n_packets=4, n_bytes=432, > udp,gtp_teid=1234 actions=drop > cookie=0x0, duration=3028.156s, table=0, n_packets=22, n_bytes=2376, > priority=0 actions=NORMAL > > I can see some packets matched and dropped, but when I use "ovs-appctl > dpif/dump-flows br-int" to check this, I can't see key gtp_teid. > > $sudo ovs-appctl dpif/dump-flows br-int > recirc_id(0),in_port(2),eth_type(0x0800),ipv4(proto=17,frag=no), packets:1, > bytes:108, used:4.137s, actions:drop > > Anyboby knows how I add a new key/match field in order that "ovs-appctl > dpif/dump-flows" can show it correctly, I don't think I need to add netlink > key for this because this is pure userspace code, I don't use kernel > datapath. It'll be great if you can point out an existing match field example > which is just for pure userspace.
Hi, ovs-appctl dpctl/dump-flows calls into the common library function dpctl_dump_flows(), which uses the dpif_flow_dump_next() API to fetch flows. These flows are dumped from the datapath in netlink format, no matter which datapath you use. Even if you are purely trying out a userspace implementation for now, then you'll still need to extend the datapath/linux/compat/include/linux/openvswitch.h header with the KEY_ATTR for your GTP field and handle all of the netlink marshalling to be able to dump the flows from the datapath layer via this mechanism. _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev