Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
gre: multipoint ingress lookup fix
[vpp.git]
/
src
/
vnet
/
ipfix-export
/
flow_report_classify.c
diff --git
a/src/vnet/ipfix-export/flow_report_classify.c
b/src/vnet/ipfix-export/flow_report_classify.c
index
46813ee
..
15118f9
100644
(file)
--- a/
src/vnet/ipfix-export/flow_report_classify.c
+++ b/
src/vnet/ipfix-export/flow_report_classify.c
@@
-30,7
+30,9
@@
ipfix_classify_template_rewrite (flow_report_main_t * frm,
flow_report_t * fr,
ip4_address_t * collector_address,
ip4_address_t * src_address,
flow_report_t * fr,
ip4_address_t * collector_address,
ip4_address_t * src_address,
- u16 collector_port)
+ u16 collector_port,
+ ipfix_report_element_t * elts,
+ u32 n_elts, u32 * stream_index)
{
flow_report_classify_main_t *fcm = &flow_report_classify_main;
vnet_classify_table_t *tblp;
{
flow_report_classify_main_t *fcm = &flow_report_classify_main;
vnet_classify_table_t *tblp;
@@
-195,8
+197,7
@@
ipfix_classify_send_flows (flow_report_main_t * frm,
t = pool_elt_at_index (vcm->tables, table->classify_table_index);
t = pool_elt_at_index (vcm->tables, table->classify_table_index);
- while (__sync_lock_test_and_set (t->writer_lock, 1))
- ;
+ clib_spinlock_lock (&t->writer_lock);
for (i = 0; i < t->nbuckets; i++)
{
for (i = 0; i < t->nbuckets; i++)
{
@@
-224,7
+225,7
@@
ipfix_classify_send_flows (flow_report_main_t * frm,
u32 copy_len = sizeof (ip4_header_t) +
sizeof (udp_header_t) + sizeof (ipfix_message_header_t);
u32 copy_len = sizeof (ip4_header_t) +
sizeof (udp_header_t) + sizeof (ipfix_message_header_t);
- clib_memcpy (b0->data, fr->rewrite, copy_len);
+ clib_memcpy
_fast
(b0->data, fr->rewrite, copy_len);
b0->current_data = 0;
b0->current_length = copy_len;
b0->flags |= VLIB_BUFFER_TOTAL_LENGTH_VALID;
b0->current_data = 0;
b0->current_length = copy_len;
b0->flags |= VLIB_BUFFER_TOTAL_LENGTH_VALID;
@@
-259,7
+260,7
@@
ipfix_classify_send_flows (flow_report_main_t * frm,
#define _(field,mask,item,length) \
if (clib_bitmap_get (fr->fields_to_send, field_index)) \
{ \
#define _(field,mask,item,length) \
if (clib_bitmap_get (fr->fields_to_send, field_index)) \
{ \
- clib_memcpy (b0->data + next_offset, &field, \
+ clib_memcpy
_fast
(b0->data + next_offset, &field, \
length); \
next_offset += length; \
} \
length); \
next_offset += length; \
} \
@@
-270,8
+271,8
@@
ipfix_classify_send_flows (flow_report_main_t * frm,
/* Add packetTotalCount manually */
{
u64 packets = clib_host_to_net_u64 (v->hits);
/* Add packetTotalCount manually */
{
u64 packets = clib_host_to_net_u64 (v->hits);
- clib_memcpy (b0->data + next_offset, &packets,
- sizeof (packets));
+ clib_memcpy
_fast
(b0->data + next_offset, &packets,
+
sizeof (packets));
next_offset += sizeof (packets);
}
records_this_buffer++;
next_offset += sizeof (packets);
}
records_this_buffer++;
@@
-383,7
+384,7
@@
flush:
bi0 = ~0;
}
bi0 = ~0;
}
-
*(t->writer_lock) = 0
;
+
clib_spinlock_unlock (&t->writer_lock)
;
return f;
}
return f;
}
@@
-406,7
+407,7
@@
ipfix_classify_table_add_del_command_fn (vlib_main_t * vm,
if (fcm->src_port == 0)
clib_error_return (0, "call 'set ipfix classify stream' first");
if (fcm->src_port == 0)
clib_error_return (0, "call 'set ipfix classify stream' first");
- memset (&args, 0, sizeof (args));
+
clib_
memset (&args, 0, sizeof (args));
while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT)
{
while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT)
{