diff options
author | glebius <glebius@FreeBSD.org> | 2005-03-20 21:03:43 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2005-03-20 21:03:43 +0000 |
commit | c24d32c62d679248ab249e702db03abd3ff41642 (patch) | |
tree | eed93196e64f11e3e22b53d9493f2899e668fa06 /sys/netgraph/netflow/netflow.c | |
parent | c74d7d94bd5054d27537ed5fd287ecc20172149b (diff) | |
download | FreeBSD-src-c24d32c62d679248ab249e702db03abd3ff41642.zip FreeBSD-src-c24d32c62d679248ab249e702db03abd3ff41642.tar.gz |
- Don't lose TCP flags of the first packet in a flow.
- Don't account length of the first packet in a flow twice.
Diffstat (limited to 'sys/netgraph/netflow/netflow.c')
-rw-r--r-- | sys/netgraph/netflow/netflow.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/netgraph/netflow/netflow.c b/sys/netgraph/netflow/netflow.c index 6011e38..3d1d62a 100644 --- a/sys/netgraph/netflow/netflow.c +++ b/sys/netgraph/netflow/netflow.c @@ -220,7 +220,8 @@ bit_count(uint32_t v) * and insert flow entry. */ static __inline int -hash_insert(priv_p priv, int slot, struct flow_rec *r, int plen) +hash_insert(priv_p priv, int slot, struct flow_rec *r, int plen, + uint8_t tcp_flags) { struct flow_hash_entry *h = priv->hash; struct flow_entry *fle; @@ -239,8 +240,7 @@ hash_insert(priv_p priv, int slot, struct flow_rec *r, int plen) bcopy(r, &fle->f.r, sizeof(struct flow_rec)); fle->f.bytes = plen; fle->f.packets = 1; - - priv->info.nfinfo_bytes += plen; + fle->f.tcp_flags = tcp_flags; fle->f.first = fle->f.last = time_uptime; @@ -521,7 +521,7 @@ ng_netflow_flow_add(priv_p priv, struct mbuf **m, iface_p iface) } else { /* a new flow entry */ mtx_unlock(&priv->work_mtx); - return hash_insert(priv, slot, &r, plen); + return hash_insert(priv, slot, &r, plen, tcp_flags); } |