summaryrefslogtreecommitdiffstats
path: root/sys/netinet/sctp_pcb.h
diff options
context:
space:
mode:
authorrrs <rrs@FreeBSD.org>2007-03-19 11:11:16 +0000
committerrrs <rrs@FreeBSD.org>2007-03-19 11:11:16 +0000
commit56faff0a7452b39fd328d13e20d96518124918ad (patch)
treea8df83dcc65a165ded6c77be172e14119f46ab38 /sys/netinet/sctp_pcb.h
parentd9b60cf6fa9667eb83a9934de16d3be1db0033a4 (diff)
downloadFreeBSD-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.h3
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
OpenPOWER on IntegriCloud