diff options
author | rrs <rrs@FreeBSD.org> | 2007-03-19 11:11:16 +0000 |
---|---|---|
committer | rrs <rrs@FreeBSD.org> | 2007-03-19 11:11:16 +0000 |
commit | 56faff0a7452b39fd328d13e20d96518124918ad (patch) | |
tree | a8df83dcc65a165ded6c77be172e14119f46ab38 /sys/netinet/sctp_pcb.h | |
parent | d9b60cf6fa9667eb83a9934de16d3be1db0033a4 (diff) | |
download | FreeBSD-src-56faff0a7452b39fd328d13e20d96518124918ad.zip FreeBSD-src-56faff0a7452b39fd328d13e20d96518124918ad.tar.gz |
Adds a hash table to speed local address lookup
on a per VRF basis (BSD has only one VRF currently).
Hash table is sized to 16 but may need to be adjusted
for machines with large numbers of addresses.
Reviewed by: gnn
Diffstat (limited to 'sys/netinet/sctp_pcb.h')
-rw-r--r-- | sys/netinet/sctp_pcb.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/netinet/sctp_pcb.h b/sys/netinet/sctp_pcb.h index 0f90503..16d03de 100644 --- a/sys/netinet/sctp_pcb.h +++ b/sys/netinet/sctp_pcb.h @@ -112,9 +112,11 @@ TAILQ_HEAD(sctp_streamhead, sctp_stream_queue_pending); struct sctp_vrf { LIST_ENTRY(sctp_vrf) next_vrf; + struct sctp_ifalist *vrf_addr_hash; struct sctp_ifnlist ifnlist; uint32_t vrf_id; uint32_t total_ifa_count; + u_long vrf_hashmark; }; struct sctp_ifn { @@ -144,6 +146,7 @@ struct sctp_ifn { struct sctp_ifa { LIST_ENTRY(sctp_ifa) next_ifa; + LIST_ENTRY(sctp_ifa) next_bucket; struct sctp_ifn *ifn_p; /* back pointer to parent ifn */ void *ifa; /* pointer to ifa, needed for flag update for * that we MUST lock appropriate locks. This |