[ovs-dev] [PATCH v8] Extend OVS IPFIX exporter to export tunnel headers

Ben Pfaff blp at nicira.com
Wed Aug 13 17:14:17 UTC 2014


On Fri, Aug 08, 2014 at 04:02:24AM -0700, Wenyu Zhang wrote:
> Extend IPFIX exporter to export tunnel headers when both input and output
> of the port.
> Add three other_config options in IPFIX table: enable-input-sampling,
> enable-output-sampling and enable-tunnel-sampling, to control whether
> sampling tunnel info, on which direction (input or output).
> Insert sampling action before output action and the output tunnel port
> is sent to datapath in the sampling action.
> Make datapath collect output tunnel info and send it back to userpace
> in upcall message with a new additional optional attribute.
> Add a tunnel ports map to make the tunnel port lookup faster in sampling
> upcalls in IPFIX exporter. Make the IPFIX exporter generate IPFIX template
> sets with enterprise elements for the tunnel info, save the tunnel info
> in IPFIX cache entries, and send IPFIX DATA with tunnel info.
> Add flowDirection element in IPFIX templates.
> 
> Signed-off-by: Wenyu Zhang <wenyuz at vmware.com>
> Acked-by: Romain Lenglet <rlenglet at vmware.com>

Clang says:

    ../ofproto/ofproto-dpif-ipfix.c:1141:43: error: sizeof on array function
          parameter will return size of 'uint64_t *' (aka 'unsigned long long *')
          instead of 'uint64_t []' [-Werror,-Wsizeof-array-argument]
        ofpbuf_use_stub(msg, msg_stub, sizeof msg_stub);
                                              ^
    ../ofproto/ofproto-dpif-ipfix.c:1135:34: note: declared here
    ipfix_init_template_msg(uint64_t msg_stub[], uint32_t export_time_sec,
                                     ^
sparse says:

    ../lib/odp-util.c:596:42: warning: incorrect type in assignment (different base types)
    ../lib/odp-util.c:596:42:    expected unsigned int [unsigned] [addressable] [assigned] [usertype] output_odp_port
    ../lib/odp-util.c:596:42:    got restricted odp_port_t
    ../lib/odp-util.c:619:71: warning: incorrect type in argument 4 (different base types)
    ../lib/odp-util.c:619:71:    expected unsigned int const [usertype] *tunnel_out_pid
    ../lib/odp-util.c:619:71:    got restricted odp_port_t *<noident>
    ../lib/odp-util.c:3581:73: warning: incorrect type in argument 3 (different base types)
    ../lib/odp-util.c:3581:73:    expected unsigned int [unsigned] [usertype] value
    ../lib/odp-util.c:3581:73:    got restricted odp_port_t const [usertype] <noident>
    ../lib/odp-util.c:3551:1: error: symbol 'odp_put_userspace_action' redeclared with different type (originally declared at ../lib/odp-util.h:238) - incompatible argument 4 (different base types)
    ../ofproto/ofproto-dpif-upcall.c:919:50: warning: incorrect type in argument 5 (different base types)
    ../ofproto/ofproto-dpif-upcall.c:919:50:    expected restricted odp_port_t [usertype] <noident>
    ../ofproto/ofproto-dpif-upcall.c:919:50:    got unsigned int [unsigned] [addressable] [usertype] output_odp_port
    ../ofproto/ofproto-dpif-xlate.c:2174:46: warning: incorrect type in argument 4 (different base types)
    ../ofproto/ofproto-dpif-xlate.c:2174:46:    expected unsigned int const [usertype] *tunnel_out_pid
    ../ofproto/ofproto-dpif-xlate.c:2174:46:    got restricted odp_port_t const [usertype] *tunnel_out_port
    ../ofproto/ofproto-dpif-xlate.c:2252:35: warning: incorrect type in assignment (different base types)
    ../ofproto/ofproto-dpif-xlate.c:2252:35:    expected unsigned int [unsigned] [usertype] output_odp_port
    ../ofproto/ofproto-dpif-xlate.c:2252:35:    got restricted odp_port_t [usertype] output_odp_port

Please fix all of these problems, then I'll take a final look.

Thanks,

Ben.



More information about the dev mailing list