X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=tests%2Ftest-netflow.c;h=a727f53cb485aac560d35ef7d6b1d470b114a040;hb=aaea735bb6dad1b37941bd2de4b61a58af55bcde;hp=921f0fd7708a074e538cf08fbf4dac2af1093798;hpb=07fc4ed3410006950012aef8d78f017c5b833e98;p=sliver-openvswitch.git diff --git a/tests/test-netflow.c b/tests/test-netflow.c index 921f0fd77..a727f53cb 100644 --- a/tests/test-netflow.c +++ b/tests/test-netflow.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2012, 2013 Nicira, Inc. + * Copyright (c) 2011, 2012, 2013, 2014 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,6 +33,7 @@ #include "unixctl.h" #include "util.h" #include "vlog.h" +#include "ovstest.h" static void usage(void) NO_RETURN; static void parse_options(int argc, char *argv[]); @@ -100,6 +101,11 @@ print_netflow(struct ofpbuf *buf) ntohs(rec->src_port), ntohs(rec->dst_port)); break; + case IPPROTO_SCTP: + printf(", SCTP %"PRIu16" > %"PRIu16, + ntohs(rec->src_port), ntohs(rec->dst_port)); + break; + case IPPROTO_ICMP: printf(", ICMP %"PRIu16":%"PRIu16, ntohs(rec->dst_port) >> 8, @@ -120,6 +126,7 @@ print_netflow(struct ofpbuf *buf) if (rec->ip_proto != IPPROTO_TCP && rec->ip_proto != IPPROTO_UDP && + rec->ip_proto != IPPROTO_SCTP && rec->ip_proto != IPPROTO_ICMP) { if (rec->src_port != htons(0)) { printf(", src_port %"PRIu16, ntohs(rec->src_port)); @@ -155,13 +162,13 @@ print_netflow(struct ofpbuf *buf) putchar('\n'); } - if (buf->size) { - printf("%zu extra bytes after last record\n", buf->size); + if (ofpbuf_size(buf)) { + printf("%"PRIu32" extra bytes after last record\n", ofpbuf_size(buf)); } } -int -main(int argc, char *argv[]) +static void +test_netflow_main(int argc, char *argv[]) { struct unixctl_server *server; enum { MAX_RECV = 1500 }; @@ -184,7 +191,7 @@ main(int argc, char *argv[]) sock = inet_open_passive(SOCK_DGRAM, target, 0, NULL, 0); if (sock < 0) { - ovs_fatal(0, "%s: failed to open (%s)", argv[1], strerror(-sock)); + ovs_fatal(0, "%s: failed to open (%s)", argv[1], ovs_strerror(-sock)); } daemon_save_fd(STDOUT_FILENO); @@ -207,7 +214,7 @@ main(int argc, char *argv[]) ofpbuf_clear(&buf); do { - retval = read(sock, buf.data, buf.allocated); + retval = read(sock, ofpbuf_data(&buf), buf.allocated); } while (retval < 0 && errno == EINTR); if (retval > 0) { ofpbuf_put_uninit(&buf, retval); @@ -226,8 +233,6 @@ main(int argc, char *argv[]) unixctl_server_wait(server); poll_block(); } - - return 0; } static void @@ -292,3 +297,5 @@ test_netflow_exit(struct unixctl_conn *conn, *exiting = true; unixctl_command_reply(conn, NULL); } + +OVSTEST_REGISTER("test-netflow", test_netflow_main);