vpp hash源码分析

本文详细介绍了vpp的哈希结构,包括hash_header、桶及桶下元素的内存分布。讨论了动态扩容机制、无冲突和冲突时的处理方式,并通过hash_set、hash_unset、hash_get等关键函数阐述了操作流程。同时,文章提供了实例分析冲突解决过程,帮助读者深入理解vpp的哈希实现。
  • 概述

vpp的hash结构分为hash头、桶(_hash_create或hash_resize申请)和桶下元素(clib_mem_realloc申请),总共3个部分组成。

根据元素key的hash值不同,分配到不同的桶下,与其他hash表原理相同。

vpp的hash结构默认是支持动态扩容的,即当hash表存放键值对大于3/4哈希桶的个数时,会2倍扩容。

哈希冲突时,vector长度认为是没有限制的。

如非特殊说明,以存储key和value来进行介绍,即log2_pair_size > 0。

(免费订阅,永久学习)学习地址: Dpdk/网络协议栈/vpp/OvS/DDos/NFV/虚拟化/高性能专家-学习视频教程-腾讯课堂

更多DPDK相关学习资料有需要的可以自行报名学习,免费订阅,永久学习,或点击这里加qun免费
领取,关注我持续更新哦! ! 

 

  • hash结构图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值