projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tunneling: Avoid extra copying if expanding headroom.
[openvswitch]
/
lib
/
ofp-print.c
diff --git
a/lib/ofp-print.c
b/lib/ofp-print.c
index 25258665f77da09e3c93037d673c2c404358f2b0..7b5e456fd8f58c1a7a689713672237d0fa140ed6 100644
(file)
--- a/
lib/ofp-print.c
+++ b/
lib/ofp-print.c
@@
-210,8
+210,7
@@
nx_action_len(enum nx_action_subtype subtype)
case NXAST_SNAT__OBSOLETE: return -1;
case NXAST_RESUBMIT: return sizeof(struct nx_action_resubmit);
case NXAST_SET_TUNNEL: return sizeof(struct nx_action_set_tunnel);
case NXAST_SNAT__OBSOLETE: return -1;
case NXAST_RESUBMIT: return sizeof(struct nx_action_resubmit);
case NXAST_SET_TUNNEL: return sizeof(struct nx_action_set_tunnel);
- case NXAST_DROP_SPOOFED_ARP:
- return sizeof(struct nx_action_drop_spoofed_arp);
+ case NXAST_DROP_SPOOFED_ARP__OBSOLETE: return -1;
case NXAST_SET_QUEUE: return sizeof(struct nx_action_set_queue);
case NXAST_POP_QUEUE: return sizeof(struct nx_action_pop_queue);
case NXAST_REG_MOVE: return sizeof(struct nx_action_reg_move);
case NXAST_SET_QUEUE: return sizeof(struct nx_action_set_queue);
case NXAST_POP_QUEUE: return sizeof(struct nx_action_pop_queue);
case NXAST_REG_MOVE: return sizeof(struct nx_action_reg_move);
@@
-259,10
+258,6
@@
ofp_print_nx_action(struct ds *string, const struct nx_action_header *nah)
ds_put_format(string, "set_tunnel:%#"PRIx32, ntohl(nast->tun_id));
return;
ds_put_format(string, "set_tunnel:%#"PRIx32, ntohl(nast->tun_id));
return;
- case NXAST_DROP_SPOOFED_ARP:
- ds_put_cstr(string, "drop_spoofed_arp");
- return;
-
case NXAST_SET_QUEUE:
nasq = (struct nx_action_set_queue *)nah;
ds_put_format(string, "set_queue:%u", ntohl(nasq->queue_id));
case NXAST_SET_QUEUE:
nasq = (struct nx_action_set_queue *)nah;
ds_put_format(string, "set_queue:%u", ntohl(nasq->queue_id));
@@
-307,6
+302,7
@@
ofp_print_nx_action(struct ds *string, const struct nx_action_header *nah)
return;
case NXAST_SNAT__OBSOLETE:
return;
case NXAST_SNAT__OBSOLETE:
+ case NXAST_DROP_SPOOFED_ARP__OBSOLETE:
default:
break;
}
default:
break;
}
@@
-834,7
+830,7
@@
ofp_print_flow_mod(struct ds *s, const struct ofp_header *oh,
bool need_priority;
int error;
bool need_priority;
int error;
- error = ofputil_decode_flow_mod(&fm, oh);
+ error = ofputil_decode_flow_mod(&fm, oh
, true
);
if (error) {
ofp_print_error(s, error);
return;
if (error) {
ofp_print_error(s, error);
return;
@@
-860,6
+856,9
@@
ofp_print_flow_mod(struct ds *s, const struct ofp_header *oh,
default:
ds_put_format(s, "cmd:%d", fm.command);
}
default:
ds_put_format(s, "cmd:%d", fm.command);
}
+ if (fm.table_id != 0) {
+ ds_put_format(s, " table:%d", fm.table_id);
+ }
ds_put_char(s, ' ');
if (verbosity >= 3 && code == OFPUTIL_OFPT_FLOW_MOD) {
ds_put_char(s, ' ');
if (verbosity >= 3 && code == OFPUTIL_OFPT_FLOW_MOD) {
@@
-1044,10
+1043,8
@@
ofp_print_port_status(struct ds *string, const struct ofp_port_status *ops)
}
static void
}
static void
-ofp_print_ofpst_desc_reply(struct ds *string, const struct ofp_
header *oh
)
+ofp_print_ofpst_desc_reply(struct ds *string, const struct ofp_
desc_stats *ods
)
{
{
- const struct ofp_desc_stats *ods = ofputil_stats_body(oh);
-
ds_put_char(string, '\n');
ds_put_format(string, "Manufacturer: %.*s\n",
(int) sizeof ods->mfr_desc, ods->mfr_desc);
ds_put_char(string, '\n');
ds_put_format(string, "Manufacturer: %.*s\n",
(int) sizeof ods->mfr_desc, ods->mfr_desc);
@@
-1062,19
+1059,20
@@
ofp_print_ofpst_desc_reply(struct ds *string, const struct ofp_header *oh)
}
static void
}
static void
-ofp_print_flow_stats_request(struct ds *string, const struct ofp_header *oh)
+ofp_print_flow_stats_request(struct ds *string,
+ const struct ofp_stats_msg *osm)
{
struct flow_stats_request fsr;
int error;
{
struct flow_stats_request fsr;
int error;
- error = ofputil_decode_flow_stats_request(&fsr,
oh
);
+ error = ofputil_decode_flow_stats_request(&fsr,
&osm->header
);
if (error) {
ofp_print_error(string, error);
return;
}
if (fsr.table_id != 0xff) {
if (error) {
ofp_print_error(string, error);
return;
}
if (fsr.table_id != 0xff) {
- ds_put_format(string, " table
_id
=%"PRIu8, fsr.table_id);
+ ds_put_format(string, " table=%"PRIu8, fsr.table_id);
}
if (fsr.out_port != OFPP_NONE) {
}
if (fsr.out_port != OFPP_NONE) {
@@
-1113,7
+1111,7
@@
ofp_print_flow_stats_reply(struct ds *string, const struct ofp_header *oh)
ds_put_format(string, " cookie=0x%"PRIx64", duration=",
ntohll(fs.cookie));
ofp_print_duration(string, fs.duration_sec, fs.duration_nsec);
ds_put_format(string, " cookie=0x%"PRIx64", duration=",
ntohll(fs.cookie));
ofp_print_duration(string, fs.duration_sec, fs.duration_nsec);
- ds_put_format(string, ", table
_id
=%"PRIu8", ", fs.table_id);
+ ds_put_format(string, ", table=%"PRIu8", ", fs.table_id);
ds_put_format(string, "n_packets=%"PRIu64", ", fs.packet_count);
ds_put_format(string, "n_bytes=%"PRIu64", ", fs.byte_count);
if (fs.idle_timeout != OFP_FLOW_PERMANENT) {
ds_put_format(string, "n_packets=%"PRIu64", ", fs.packet_count);
ds_put_format(string, "n_bytes=%"PRIu64", ", fs.byte_count);
if (fs.idle_timeout != OFP_FLOW_PERMANENT) {
@@
-1132,8
+1130,8
@@
ofp_print_flow_stats_reply(struct ds *string, const struct ofp_header *oh)
}
static void
}
static void
-ofp_print_ofp
_aggregate_stats_reply (
-
struct ds *string,
const struct ofp_aggregate_stats_reply *asr)
+ofp_print_ofp
st_aggregate_reply(struct ds *string,
+
const struct ofp_aggregate_stats_reply *asr)
{
ds_put_format(string, " packet_count=%"PRIu64,
ntohll(get_32aligned_be64(&asr->packet_count)));
{
ds_put_format(string, " packet_count=%"PRIu64,
ntohll(get_32aligned_be64(&asr->packet_count)));
@@
-1142,17
+1140,13
@@
ofp_print_ofp_aggregate_stats_reply (
ds_put_format(string, " flow_count=%"PRIu32, ntohl(asr->flow_count));
}
ds_put_format(string, " flow_count=%"PRIu32, ntohl(asr->flow_count));
}
-static void
-ofp_print_ofpst_aggregate_reply(struct ds *string, const struct ofp_header *oh)
-{
- ofp_print_ofp_aggregate_stats_reply(string, ofputil_stats_body(oh));
-}
-
static void
ofp_print_nxst_aggregate_reply(struct ds *string,
const struct nx_aggregate_stats_reply *nasr)
{
static void
ofp_print_nxst_aggregate_reply(struct ds *string,
const struct nx_aggregate_stats_reply *nasr)
{
- ofp_print_ofp_aggregate_stats_reply(string, &nasr->asr);
+ ds_put_format(string, " packet_count=%"PRIu64, ntohll(nasr->packet_count));
+ ds_put_format(string, " byte_count=%"PRIu64, ntohll(nasr->byte_count));
+ ds_put_format(string, " flow_count=%"PRIu32, ntohl(nasr->flow_count));
}
static void print_port_stat(struct ds *string, const char *leader,
}
static void print_port_stat(struct ds *string, const char *leader,
@@
-1174,9
+1168,9
@@
static void print_port_stat(struct ds *string, const char *leader,
}
static void
}
static void
-ofp_print_ofpst_port_request(struct ds *string, const struct ofp_header *oh)
+ofp_print_ofpst_port_request(struct ds *string,
+ const struct ofp_port_stats_request *psr)
{
{
- const struct ofp_port_stats_request *psr = ofputil_stats_body(oh);
ds_put_format(string, " port_no=%"PRIu16, ntohs(psr->port_no));
}
ds_put_format(string, " port_no=%"PRIu16, ntohs(psr->port_no));
}
@@
-1250,10
+1244,9
@@
ofp_print_queue_name(struct ds *string, uint32_t queue_id)
}
static void
}
static void
-ofp_print_ofpst_queue_request(struct ds *string, const struct ofp_header *oh)
+ofp_print_ofpst_queue_request(struct ds *string,
+ const struct ofp_queue_stats_request *qsr)
{
{
- const struct ofp_queue_stats_request *qsr = ofputil_stats_body(oh);
-
ds_put_cstr(string, "port=");
ofp_print_port_name(string, ntohs(qsr->port_no));
ds_put_cstr(string, "port=");
ofp_print_port_name(string, ntohs(qsr->port_no));
@@
-1288,8
+1281,7
@@
ofp_print_ofpst_queue_reply(struct ds *string, const struct ofp_header *oh,
static void
ofp_print_stats_request(struct ds *string, const struct ofp_header *oh)
{
static void
ofp_print_stats_request(struct ds *string, const struct ofp_header *oh)
{
- const struct ofp_stats_request *srq
- = (const struct ofp_stats_request *) oh;
+ const struct ofp_stats_msg *srq = (const struct ofp_stats_msg *) oh;
if (srq->flags) {
ds_put_format(string, " ***unknown flags 0x%04"PRIx16"***",
if (srq->flags) {
ds_put_format(string, " ***unknown flags 0x%04"PRIx16"***",
@@
-1300,7
+1292,7
@@
ofp_print_stats_request(struct ds *string, const struct ofp_header *oh)
static void
ofp_print_stats_reply(struct ds *string, const struct ofp_header *oh)
{
static void
ofp_print_stats_reply(struct ds *string, const struct ofp_header *oh)
{
- const struct ofp_stats_
reply *srp = (const struct ofp_stats_reply
*) oh;
+ const struct ofp_stats_
msg *srp = (const struct ofp_stats_msg
*) oh;
if (srp->flags) {
uint16_t flags = ntohs(srp->flags);
if (srp->flags) {
uint16_t flags = ntohs(srp->flags);
@@
-1346,6
+1338,13
@@
ofp_print_nxt_role_message(struct ds *string,
}
}
}
}
+static void
+ofp_print_nxt_flow_mod_table_id(struct ds *string,
+ const struct nxt_flow_mod_table_id *nfmti)
+{
+ ds_put_format(string, " %s", nfmti->set ? "enable" : "disable");
+}
+
static void
ofp_print_nxt_set_flow_format(struct ds *string,
const struct nxt_set_flow_format *nsff)
static void
ofp_print_nxt_set_flow_format(struct ds *string,
const struct nxt_set_flow_format *nsff)
@@
-1449,7
+1448,7
@@
ofp_to_string__(const struct ofp_header *oh,
case OFPUTIL_OFPST_AGGREGATE_REQUEST:
case OFPUTIL_NXST_AGGREGATE_REQUEST:
ofp_print_stats_request(string, oh);
case OFPUTIL_OFPST_AGGREGATE_REQUEST:
case OFPUTIL_NXST_AGGREGATE_REQUEST:
ofp_print_stats_request(string, oh);
- ofp_print_flow_stats_request(string,
oh
);
+ ofp_print_flow_stats_request(string,
msg
);
break;
case OFPUTIL_OFPST_TABLE_REQUEST:
break;
case OFPUTIL_OFPST_TABLE_REQUEST:
@@
-1458,17
+1457,17
@@
ofp_to_string__(const struct ofp_header *oh,
case OFPUTIL_OFPST_PORT_REQUEST:
ofp_print_stats_request(string, oh);
case OFPUTIL_OFPST_PORT_REQUEST:
ofp_print_stats_request(string, oh);
- ofp_print_ofpst_port_request(string,
oh
);
+ ofp_print_ofpst_port_request(string,
msg
);
break;
case OFPUTIL_OFPST_QUEUE_REQUEST:
ofp_print_stats_request(string, oh);
break;
case OFPUTIL_OFPST_QUEUE_REQUEST:
ofp_print_stats_request(string, oh);
- ofp_print_ofpst_queue_request(string,
oh
);
+ ofp_print_ofpst_queue_request(string,
msg
);
break;
case OFPUTIL_OFPST_DESC_REPLY:
ofp_print_stats_reply(string, oh);
break;
case OFPUTIL_OFPST_DESC_REPLY:
ofp_print_stats_reply(string, oh);
- ofp_print_ofpst_desc_reply(string,
oh
);
+ ofp_print_ofpst_desc_reply(string,
msg
);
break;
case OFPUTIL_OFPST_FLOW_REPLY:
break;
case OFPUTIL_OFPST_FLOW_REPLY:
@@
-1494,7
+1493,7
@@
ofp_to_string__(const struct ofp_header *oh,
case OFPUTIL_OFPST_AGGREGATE_REPLY:
ofp_print_stats_reply(string, oh);
case OFPUTIL_OFPST_AGGREGATE_REPLY:
ofp_print_stats_reply(string, oh);
- ofp_print_ofpst_aggregate_reply(string,
oh
);
+ ofp_print_ofpst_aggregate_reply(string,
msg
);
break;
case OFPUTIL_NXT_ROLE_REQUEST:
break;
case OFPUTIL_NXT_ROLE_REQUEST:
@@
-1502,6
+1501,10
@@
ofp_to_string__(const struct ofp_header *oh,
ofp_print_nxt_role_message(string, msg);
break;
ofp_print_nxt_role_message(string, msg);
break;
+ case OFPUTIL_NXT_FLOW_MOD_TABLE_ID:
+ ofp_print_nxt_flow_mod_table_id(string, msg);
+ break;
+
case OFPUTIL_NXT_SET_FLOW_FORMAT:
ofp_print_nxt_set_flow_format(string, msg);
break;
case OFPUTIL_NXT_SET_FLOW_FORMAT:
ofp_print_nxt_set_flow_format(string, msg);
break;