On Mon, Jul 25, 2016 at 05:26:32PM +0900, Nam Bong Ha wrote: > i want to modify Flow table in Openvswitch. > > i know that there are two types of Flow table. > (ex. hash-based flow table, wildcard-aware flow table) > > i want to change the Matching filed in Flow table > (ex. existing Matching filed = src ip, dst ip, vlan, etc... > changed Matching filed = *index*, src ip, dst ip, vlan, etc... -> i > inserted the *index* in there) > > i saw lib/classifier.c and lib/hash.c > > should i modify these sources?
The FAQ says: ### Q: How do I add support for a new field or header? A: Add new members for your field to "struct flow" in lib/flow.h, and add new enumerations for your new field to "enum mf_field_id" in lib/meta-flow.h, following the existing pattern. Also, add support to miniflow_extract() in lib/flow.c for extracting your new field from a packet into struct miniflow, and to nx_put_raw() in lib/nx-match.c to output your new field in OXM matches. Then recompile and fix all of the new warnings, implementing new functionality for the new field or header as needed. (If you configure with --enable-Werror, as described in [INSTALL.md], then it is impossible to miss any warnings.) If you want kernel datapath support for your new field, you also need to modify the kernel module for the operating systems you are interested in. This isn't mandatory, since fields understood only by userspace work too (with a performance penalty), so it's reasonable to start development without it. If you implement kernel module support for Linux, then the Linux kernel "netdev" mailing list is the place to submit that support first; please read up on the Linux kernel development process separately. The Windows datapath kernel module support, on the other hand, is maintained within the OVS tree, so patches for that can go directly to ovs-dev. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev