~ubuntu-branches/ubuntu/wily/openvswitch/wily

« back to all changes in this revision

Viewing changes to tests/test-odp.c

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2015-08-10 11:35:15 UTC
  • mfrom: (1.1.30)
  • Revision ID: package-import@ubuntu.com-20150810113515-575vj06oq29emxsn
Tags: 2.4.0~git20150810.97bab95-0ubuntu1
* New upstream snapshot from 2.4 branch:
  - d/*: Align any relevant packaging changes with upstream.
* d/*: wrap-and-sort.
* d/openvswitch-{common,vswitch}.install: Correct install location for
  bash completion files.
* d/tests/openflow.py: Explicitly use ovs-testcontroller as provided
  by 2.4.0 release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
 */
16
16
 
17
17
#include <config.h>
18
 
 
 
18
#undef NDEBUG
 
19
#include "odp-util.h"
19
20
#include <stdio.h>
20
 
 
21
21
#include "dynamic-string.h"
22
22
#include "flow.h"
23
23
#include "match.h"
24
 
#include "odp-util.h"
25
24
#include "ofp-parse.h"
26
25
#include "ofpbuf.h"
 
26
#include "ovstest.h"
27
27
#include "util.h"
28
 
#include "vlog.h"
29
 
#include "ovstest.h"
 
28
#include "openvswitch/vlog.h"
30
29
 
31
30
static int
32
31
parse_keys(bool wc_keys)
56
55
 
57
56
        if (!wc_keys) {
58
57
            /* Convert odp_key to flow. */
59
 
            fitness = odp_flow_key_to_flow(ofpbuf_data(&odp_key), ofpbuf_size(&odp_key), &flow);
 
58
            fitness = odp_flow_key_to_flow(odp_key.data, odp_key.size, &flow);
60
59
            switch (fitness) {
61
60
                case ODP_FIT_PERFECT:
62
61
                    break;
77
76
            ofpbuf_uninit(&odp_key);
78
77
            ofpbuf_init(&odp_key, 0);
79
78
            odp_flow_key_from_flow(&odp_key, &flow, NULL,
80
 
                                   flow.in_port.odp_port);
 
79
                                   flow.in_port.odp_port, true);
81
80
 
82
 
            if (ofpbuf_size(&odp_key) > ODPUTIL_FLOW_KEY_BYTES) {
 
81
            if (odp_key.size > ODPUTIL_FLOW_KEY_BYTES) {
83
82
                printf ("too long: %"PRIu32" > %d\n",
84
 
                        ofpbuf_size(&odp_key), ODPUTIL_FLOW_KEY_BYTES);
 
83
                        odp_key.size, ODPUTIL_FLOW_KEY_BYTES);
85
84
                exit_code = 1;
86
85
            }
87
86
        }
89
88
        /* Convert odp_key to string. */
90
89
        ds_init(&out);
91
90
        if (wc_keys) {
92
 
            odp_flow_format(ofpbuf_data(&odp_key), ofpbuf_size(&odp_key),
93
 
                            ofpbuf_data(&odp_mask), ofpbuf_size(&odp_mask), NULL, &out, false);
 
91
            odp_flow_format(odp_key.data, odp_key.size,
 
92
                            odp_mask.data, odp_mask.size, NULL, &out, false);
94
93
        } else {
95
 
            odp_flow_key_format(ofpbuf_data(&odp_key), ofpbuf_size(&odp_key), &out);
 
94
            odp_flow_key_format(odp_key.data, odp_key.size, &out);
96
95
        }
97
96
        puts(ds_cstr(&out));
98
97
        ds_destroy(&out);
127
126
 
128
127
        /* Convert odp_actions back to string. */
129
128
        ds_init(&out);
130
 
        format_odp_actions(&out, ofpbuf_data(&odp_actions), ofpbuf_size(&odp_actions));
 
129
        format_odp_actions(&out, odp_actions.data, odp_actions.size);
131
130
        puts(ds_cstr(&out));
132
131
        ds_destroy(&out);
133
132
 
149
148
 
150
149
    vlog_set_levels_from_string_assert("odp_util:console:dbg");
151
150
    if (filter_parse && !strncmp(filter_parse, "filter=", 7)) {
152
 
        filter = strdup(filter_parse+7);
 
151
        filter = xstrdup(filter_parse + 7);
153
152
        memset(&flow_filter, 0, sizeof(flow_filter));
154
153
        memset(&wc_filter, 0, sizeof(wc_filter));
155
154
 
185
184
            struct match match, match_filter;
186
185
            struct minimatch minimatch;
187
186
 
188
 
            odp_flow_key_to_flow(ofpbuf_data(&odp_key), ofpbuf_size(&odp_key), &flow);
189
 
            odp_flow_key_to_mask(ofpbuf_data(&odp_mask), ofpbuf_size(&odp_mask), &wc.masks,
 
187
            odp_flow_key_to_flow(odp_key.data, odp_key.size, &flow);
 
188
            odp_flow_key_to_mask(odp_mask.data, odp_mask.size, &wc.masks,
190
189
                                 &flow);
191
190
            match_init(&match, &flow, &wc);
192
191
 
202
201
        }
203
202
        /* Convert odp_key to string. */
204
203
        ds_init(&out);
205
 
        odp_flow_format(ofpbuf_data(&odp_key), ofpbuf_size(&odp_key),
206
 
                        ofpbuf_data(&odp_mask), ofpbuf_size(&odp_mask), NULL, &out, false);
 
204
        odp_flow_format(odp_key.data, odp_key.size,
 
205
                        odp_mask.data, odp_mask.size, NULL, &out, false);
207
206
        puts(ds_cstr(&out));
208
207
        ds_destroy(&out);
209
208