Skip to content

Commit 79d9fe5

Browse files
committed
Print flow updats
1 parent 1f544b8 commit 79d9fe5

File tree

2 files changed

+37
-14
lines changed

2 files changed

+37
-14
lines changed

kernel/linux/pf_ring.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -724,16 +724,16 @@ typedef struct {
724724
#define PF_RING_FLOW_UPDATE_CAUSE_PROBE 4
725725
#define PF_RING_FLOW_UPDATE_CAUSE_UNKNOWN 5
726726
u_int8_t cause;
727-
u_int8_t reserved0;
728-
u_int16_t reserved1;
727+
u_int8_t padding_0;
728+
u_int16_t padding_1;
729729

730-
u_int16_t flags_a;
731-
u_int16_t flags_b;
730+
u_int16_t flags_out;
731+
u_int16_t flags_in;
732732

733-
u_int32_t packets_a;
734-
u_int32_t packets_b;
735-
u_int64_t bytes_a;
736-
u_int64_t bytes_b;
733+
u_int32_t packets_out;
734+
u_int32_t packets_in;
735+
u_int64_t bytes_out;
736+
u_int64_t bytes_in;
737737

738738
struct pfring_timespec last_seen;
739739
} __attribute__((packed))

userland/examples/pfflow_offload.c

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -176,28 +176,51 @@ void sigproc(int sig) {
176176
/* ******************************** */
177177

178178
void processFlow(pfring_flow_update *flow){
179+
180+
printf("Flow #%lu ", flow->flow_id);
181+
179182
switch (flow->cause) {
180183
/* Flow stats update (periodic) */
181184
case PF_RING_FLOW_UPDATE_CAUSE_PERIODIC:
182-
printf("Flow #%lu periodic update\n", flow->flow_id);
185+
printf("periodic update");
183186
break;
184187
/* Flow unlearned */
185188
case PF_RING_FLOW_UPDATE_CAUSE_SW:
186-
printf("Flow #%lu removed (by FlowWrite)\n", flow->flow_id);
189+
printf("removed (by FlowWrite)");
187190
break;
188191
case PF_RING_FLOW_UPDATE_CAUSE_TIMEOUT:
189-
printf("Flow #%lu removed (timeout)\n", flow->flow_id);
192+
printf("removed (timeout)");
190193
break;
191194
case PF_RING_FLOW_UPDATE_CAUSE_TCP_TERM:
192-
printf("Flow #%lu removed (TCP termination)\n", flow->flow_id);
195+
printf("removed (TCP termination)");
196+
break;
197+
case PF_RING_FLOW_UPDATE_CAUSE_PROBE:
198+
printf("removed (Software probe?)");
193199
break;
200+
default:
201+
printf("(Unknown cause)");
202+
break;
203+
}
204+
205+
switch (flow->cause) {
206+
case PF_RING_FLOW_UPDATE_CAUSE_PERIODIC:
207+
case PF_RING_FLOW_UPDATE_CAUSE_SW:
208+
case PF_RING_FLOW_UPDATE_CAUSE_TIMEOUT:
209+
case PF_RING_FLOW_UPDATE_CAUSE_TCP_TERM:
194210
case PF_RING_FLOW_UPDATE_CAUSE_PROBE:
195-
printf("Flow #%lu removed (Software probe?)\n", flow->flow_id);
211+
printf(" flags=%02x/%02x packets=%u/%u bytes=%ju/%ju",
212+
flow->flags_out,
213+
flow->flags_in,
214+
flow->packets_out,
215+
flow->packets_in,
216+
flow->bytes_out,
217+
flow->bytes_in);
196218
break;
197219
default:
198-
printf("Flow #%lu removed: unknown cause\n", flow->flow_id);
199220
break;
200221
}
222+
223+
printf("\n");
201224
}
202225

203226
/* ******************************** */

0 commit comments

Comments
 (0)