2
0
mirror of https://github.com/openvswitch/ovs synced 2025-10-11 13:57:52 +00:00

dp-packet: Add index to DP_PACKET_BATCH_FOR_EACH to prevent shadowing.

Signed-off-by: Justin Pettit <jpettit@ovn.org>
Acked-by: Ben Pfaff <blp@ovn.org>
This commit is contained in:
Justin Pettit
2018-02-27 10:41:30 -08:00
parent ccf690ac37
commit e883448e3f
9 changed files with 40 additions and 42 deletions

View File

@@ -4223,7 +4223,6 @@ dp_netdev_run_meter(struct dp_netdev *dp, struct dp_packet_batch *packets_,
struct dp_packet *packet;
long long int long_delta_t; /* msec */
uint32_t delta_t; /* msec */
int i;
const size_t cnt = dp_packet_batch_size(packets_);
uint32_t bytes, volume;
int exceeded_band[NETDEV_MAX_BURST];
@@ -4257,7 +4256,7 @@ dp_netdev_run_meter(struct dp_netdev *dp, struct dp_packet_batch *packets_,
meter->used = now;
meter->packet_count += cnt;
bytes = 0;
DP_PACKET_BATCH_FOR_EACH (packet, packets_) {
DP_PACKET_BATCH_FOR_EACH (i, packet, packets_) {
bytes += dp_packet_size(packet);
}
meter->byte_count += bytes;
@@ -4299,7 +4298,7 @@ dp_netdev_run_meter(struct dp_netdev *dp, struct dp_packet_batch *packets_,
/* Update the exceeding band for each exceeding packet.
* (Only one band will be fired by a packet, and that
* can be different for each packet.) */
for (i = band_exceeded_pkt; i < cnt; i++) {
for (int i = band_exceeded_pkt; i < cnt; i++) {
if (band->up.rate > exceeded_rate[i]) {
exceeded_rate[i] = band->up.rate;
exceeded_band[i] = m;
@@ -4308,7 +4307,7 @@ dp_netdev_run_meter(struct dp_netdev *dp, struct dp_packet_batch *packets_,
} else {
/* Packet sizes differ, must process one-by-one. */
band_exceeded_pkt = cnt;
DP_PACKET_BATCH_FOR_EACH (packet, packets_) {
DP_PACKET_BATCH_FOR_EACH (i, packet, packets_) {
uint32_t bits = dp_packet_size(packet) * 8;
if (band->bucket >= bits) {
@@ -5147,9 +5146,8 @@ fast_path_processing(struct dp_netdev_pmd_thread *pmd,
int upcall_ok_cnt = 0, upcall_fail_cnt = 0;
int lookup_cnt = 0, add_lookup_cnt;
bool any_miss;
size_t i;
for (i = 0; i < cnt; i++) {
for (size_t i = 0; i < cnt; i++) {
/* Key length is needed in all the cases, hash computed on demand. */
keys[i].len = netdev_flow_key_size(miniflow_n_values(&keys[i].mf));
}
@@ -5168,7 +5166,7 @@ fast_path_processing(struct dp_netdev_pmd_thread *pmd,
ofpbuf_use_stub(&actions, actions_stub, sizeof actions_stub);
ofpbuf_use_stub(&put_actions, slow_stub, sizeof slow_stub);
DP_PACKET_BATCH_FOR_EACH (packet, packets_) {
DP_PACKET_BATCH_FOR_EACH (i, packet, packets_) {
struct dp_netdev_flow *netdev_flow;
if (OVS_LIKELY(rules[i])) {
@@ -5200,7 +5198,7 @@ fast_path_processing(struct dp_netdev_pmd_thread *pmd,
ofpbuf_uninit(&put_actions);
fat_rwlock_unlock(&dp->upcall_rwlock);
} else if (OVS_UNLIKELY(any_miss)) {
DP_PACKET_BATCH_FOR_EACH (packet, packets_) {
DP_PACKET_BATCH_FOR_EACH (i, packet, packets_) {
if (OVS_UNLIKELY(!rules[i])) {
dp_packet_delete(packet);
upcall_fail_cnt++;
@@ -5208,7 +5206,7 @@ fast_path_processing(struct dp_netdev_pmd_thread *pmd,
}
}
DP_PACKET_BATCH_FOR_EACH (packet, packets_) {
DP_PACKET_BATCH_FOR_EACH (i, packet, packets_) {
struct dp_netdev_flow *flow;
if (OVS_UNLIKELY(!rules[i])) {
@@ -5495,7 +5493,7 @@ dp_execute_cb(void *aux_, struct dp_packet_batch *packets_,
pmd->n_output_batches++;
}
DP_PACKET_BATCH_FOR_EACH (packet, packets_) {
DP_PACKET_BATCH_FOR_EACH (i, packet, packets_) {
p->output_pkts_rxqs[dp_packet_batch_size(&p->output_pkts)] =
pmd->ctx.last_rxq;
dp_packet_batch_add(&p->output_pkts, packet);
@@ -5535,7 +5533,7 @@ dp_execute_cb(void *aux_, struct dp_packet_batch *packets_,
}
struct dp_packet *packet;
DP_PACKET_BATCH_FOR_EACH (packet, packets_) {
DP_PACKET_BATCH_FOR_EACH (i, packet, packets_) {
packet->md.in_port.odp_port = portno;
}
@@ -5572,7 +5570,7 @@ dp_execute_cb(void *aux_, struct dp_packet_batch *packets_,
}
struct dp_packet *packet;
DP_PACKET_BATCH_FOR_EACH (packet, packets_) {
DP_PACKET_BATCH_FOR_EACH (i, packet, packets_) {
flow_extract(packet, &flow);
dpif_flow_hash(dp->dpif, &flow, sizeof flow, &ufid);
dp_execute_userspace_action(pmd, packet, may_steal, &flow,
@@ -5600,7 +5598,7 @@ dp_execute_cb(void *aux_, struct dp_packet_batch *packets_,
}
struct dp_packet *packet;
DP_PACKET_BATCH_FOR_EACH (packet, packets_) {
DP_PACKET_BATCH_FOR_EACH (i, packet, packets_) {
packet->md.recirc_id = nl_attr_get_u32(a);
}