从零开始学习VPP
文章平均质量分 94
VPP(Vector Packet Processor,向量数据包处理器),国内少有的关于vpp的学习资源
Henry Zhu123
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
VPP中DHCP插件源码深度解析第八篇:CLI与API命令以及实践、调试、改进
第一部分:DHCP协议基础知识 - 系统介绍DHCP协议的基本概念、DORA交互流程、DHCPv4/v6协议差异以及协议在网络中的角色定位,为理解VPP实现奠定理论基础。第二部分:VPP DHCP插件功能概述 - 全面介绍VPP DHCP插件的功能特性、架构定位、API/CLI支持能力以及多线程处理机制,帮助读者建立对插件的整体认知。第三部分:源码目录结构与模块划分 - 详细解析DHCP插件的源码文件组织方式、各模块职责划分、控制平面与数据平面分离设计,以及模块间的依赖关系。第四部分:DHCPv4客户端实现原创 2025-12-25 17:17:11 · 709 阅读 · 0 评论 -
VPP中DHCP插件源码深度解析第七篇:DHCP Proxy实现详解(下)
全面介绍VPP DHCP插件的功能特性、架构定位、API/CLI支持能力以及多线程处理机制,帮助读者建立对插件的整体认知。原创 2025-12-25 17:12:40 · 696 阅读 · 0 评论 -
VPP中DHCP插件源码深度解析第六篇:DHCP Proxy实现详解(上)
DHCP Proxy在DHCP协议中扮演"中继代理"的角色,负责在不同网络段之间转发DHCP报文。当客户端和服务器不在同一个广播域时,Proxy接收客户端的DHCP请求,将其转发给远程的DHCP服务器,并将服务器的回复转发回客户端。这一节详细讲解DHCP Proxy的角色、多服务器支持策略、VRF隔离支持等核心功能。功能说明错误代码定义用于标识DHCP Proxy处理过程中可能出现的各种错误情况。VPP使用宏定义机制自动生成错误代码枚举和错误消息字符串,支持IPv4和IPv6两种协议。原创 2025-12-25 17:10:43 · 773 阅读 · 0 评论 -
VPP中DHCP插件源码深度解析第五篇:DHCPv6客户端实现详解(下)
功能说明PD控制平面需要维护客户端状态、前缀信息、前缀组、地址配置等,这些信息通过多个结构体组织。理解这些数据结构是理解整个控制平面实现的基础。前缀信息结构体/* 前缀组索引,标识此前缀属于哪个前缀组 *//* 不透明数据,用于前缀发布者,存储sw_if_index(前缀所属的接口) *//* IPv6地址前缀,128位地址(但只有前prefix_length位有效) *//* 前缀长度(位数),范围通常为32-64,表示前缀的有效位数 */原创 2025-12-25 17:06:52 · 798 阅读 · 0 评论 -
VPP中DHCP插件源码深度解析第四篇:DHCPv6客户端实现详解(上)
第一部分:DHCP协议基础知识 - 系统介绍DHCP协议的基本概念、DORA交互流程、DHCPv4/v6协议差异以及协议在网络中的角色定位,为理解VPP实现奠定理论基础。第二部分:VPP DHCP插件功能概述 - 全面介绍VPP DHCP插件的功能特性、架构定位、API/CLI支持能力以及多线程处理机制,帮助读者建立对插件的整体认知。第三部分:源码目录结构与模块划分 - 详细解析DHCP插件的源码文件组织方式、各模块职责划分、控制平面与数据平面分离设计,以及模块间的依赖关系。第四部分:DHCPv4客户端实现原创 2025-12-25 17:04:32 · 534 阅读 · 0 评论 -
VPP中DHCP插件源码深度解析第二篇:DHCPv4客户端实现详解(下)
第一部分:DHCP协议基础知识 - 系统介绍DHCP协议的基本概念、DORA交互流程、DHCPv4/v6协议差异以及协议在网络中的角色定位,为理解VPP实现奠定理论基础。第二部分:VPP DHCP插件功能概述 - 全面介绍VPP DHCP插件的功能特性、架构定位、API/CLI支持能力以及多线程处理机制,帮助读者建立对插件的整体认知。第三部分:源码目录结构与模块划分 - 详细解析DHCP插件的源码文件组织方式、各模块职责划分、控制平面与数据平面分离设计,以及模块间的依赖关系。第四部分:DHCPv4客户端实现原创 2025-12-25 16:59:23 · 992 阅读 · 0 评论 -
VPP中DHCP插件源码深度解析第二篇:DHCPv4客户端实现详解(上)
第一部分:DHCP协议基础知识 - 系统介绍DHCP协议的基本概念、DORA交互流程、DHCPv4/v6协议差异以及协议在网络中的角色定位,为理解VPP实现奠定理论基础。第二部分:VPP DHCP插件功能概述 - 全面介绍VPP DHCP插件的功能特性、架构定位、API/CLI支持能力以及多线程处理机制,帮助读者建立对插件的整体认知。第三部分:源码目录结构与模块划分 - 详细解析DHCP插件的源码文件组织方式、各模块职责划分、控制平面与数据平面分离设计,以及模块间的依赖关系。第四部分:DHCPv4客户端实现原创 2025-12-25 16:58:30 · 791 阅读 · 0 评论 -
VPP中DHCP插件源码深度解析第一篇:DHCP功能了解以及源码结构初识
第一部分:DHCP协议基础知识 - 系统介绍DHCP协议的基本概念、DORA交互流程、DHCPv4/v6协议差异以及协议在网络中的角色定位,为理解VPP实现奠定理论基础。第二部分:VPP DHCP插件功能概述 - 全面介绍VPP DHCP插件的功能特性、架构定位、API/CLI支持能力以及多线程处理机制,帮助读者建立对插件的整体认知。第三部分:源码目录结构与模块划分 - 详细解析DHCP插件的源码文件组织方式、各模块职责划分、控制平面与数据平面分离设计,以及模块间的依赖关系。第四部分:DHCPv4客户端实现原创 2025-12-25 16:46:18 · 613 阅读 · 0 评论 -
VPP中ACL源码详解第七篇:综合案例实践与总结
本文聚焦VPP中的ACL插件实现,分为五个部分:首先介绍ACL插件的基本概念和作用,类比门禁系统说明其访问控制功能;其次剖析插件的整体架构,包括文件组织、核心数据结构及模块关系;第三部分详细阐述控制平面实现,包括初始化、规则管理、接口绑定等流程;第四部分深入数据平面处理机制,包括ACL匹配、会话管理和Hash查找引擎;最后探讨ACL作为服务的扩展机制及性能优化技术。文章通过"门禁系统"的生动类比,系统讲解了ACL插件从规则配置到数据包处理的完整生命周期。原创 2025-12-18 18:50:11 · 958 阅读 · 0 评论 -
VPP中ACL源码详解第六篇:多核和性能优化实现以及调试与观测
本文是VPP ACL插件系列文章的第六和第七部分,主要讲解多核性能优化和可观测性调试相关内容。文章首先介绍了多核环境下的性能优化技术,包括批量处理、预取优化和流水线处理等方法。随后详细讲解了ACL插件的调试工具和方法,包括会话表监控、性能指标收集和CLI命令等调试手段。这两部分内容从实践角度出发,帮助开发者优化ACL插件在多核环境下的性能表现,并提供有效的调试工具链来诊断和解决实际问题。原创 2025-12-18 18:46:47 · 922 阅读 · 0 评论 -
VPP中ACL源码详解第五篇:ACL是如何以统一的接口来为其他插件服务(下)
本文聚焦VPP ACL插件的第五部分"ACL作为服务与内部机制扩展",重点介绍第19-20小节内容。该部分详细解析了ACL-as-a-service机制,包括如何让其他插件调用ACL引擎、Lookup Context创建与管理、ACL规则应用流程等核心功能实现。同时深入探讨了会话表管理机制,涵盖会话表初始化、容量管理、性能优化及监控调试等关键技术。文章通过"门禁系统"类比,将复杂的技术概念形象化,帮助读者理解VPP ACL插件作为服务提供者的架构设计和实现原理。原创 2025-12-18 18:40:14 · 963 阅读 · 0 评论 -
VPP中ACL源码详解第四篇:ACL是如何以统一的接口来为其他插件服务(中)
本文摘要主要聚焦VPP ACL插件的第五部分(ACL作为服务与内部机制扩展),包含三个核心章节:第11章介绍ACL-as-a-service机制,详述如何让其他插件使用ACL引擎;第12章解析会话表管理,包括会话表初始化、容量管理和性能优化;第13章探讨ACL性能优化技术,如批量处理、预取优化等。文章采用"门禁系统"类比,系统讲解ACL插件作为服务的注册机制、上下文管理以及数据包匹配流程,并提供了详细的性能调优建议和监控方法。原创 2025-12-18 18:36:49 · 631 阅读 · 0 评论 -
VPP中ACL源码详解第三篇:ACL是如何以统一的接口来为其他插件服务(上)
本文介绍了VPP(Vector Packet Processing)中ACL插件的架构与实现,重点解析了第五部分"ACL作为服务与内部机制扩展"的前4小节内容。文章详细阐述了ACL-as-a-service机制,包括如何让其他插件使用ACL引擎、会话表管理以及性能优化技术。通过"安检系统"类比,解释了ACL规则管理、接口绑定、MACIP绑定等核心概念,并深入分析了数据平面ACL匹配流程、Flow-aware ACL实现和Hash匹配引擎等关键技术。文章还涵盖了ACL插原创 2025-12-18 18:30:26 · 558 阅读 · 0 评论 -
VPP中ACL源码详解第二篇:ACL数据平面处理
本文聚焦VPP数据平面ACL处理机制,详细解析数据包如何通过ACL安全检查。主要内容包括:1)数据平面ACL匹配流程,涵盖5-tuple提取、多ACL匹配和会话管理;2)Flow-aware ACL实现,阐述会话创建、查找、跟踪和超时处理等状态管理机制;3)高性能Hash匹配引擎,介绍规则索引构建和TupleMerge优化算法。文章采用"安检系统"类比,系统性地呈现了VPP ACL插件从数据包处理到规则匹配的完整技术实现,同时分析了关键性能优化技术,为网络数据平面安全策略实现提供参考。原创 2025-12-18 18:18:50 · 935 阅读 · 0 评论 -
VPP中ACL源码详解第一篇:ACL插件概念以及整体概念与框架
本文介绍了VPP中ACL插件的核心功能和实现架构。第一部分阐述了ACL插件的作用,将其类比为网络数据包的"门禁系统",负责流量过滤和访问控制。第二部分详细解析了插件的整体架构,包括文件组织结构、核心数据结构(如acl_rule_t、acl_list_t等)及其相互关系。第三部分重点讲解了插件的初始化流程和控制平面管理,涵盖模块注册、规则管理、接口绑定等关键机制,以及MACIP ACL的特殊处理方式。全文通过生活化类比,系统性地呈现了ACL插件从设计理念到具体实现的完整技术体系。原创 2025-12-18 17:47:47 · 608 阅读 · 0 评论 -
VPP中ACL实战配置指南与VPP的API使用初探
⚠️ 强烈建议:所有文件路径和目录名使用纯ASCII字符(英文字母、数字、下划线、连字符),不要使用中文或其他非ASCII字符!原因:正确示例:错误示例:本文详细介绍如何在VMware虚拟机环境中配置VPP的ACL(访问控制列表)插件,实现基于IP地址和端口的访问控制。通过实际的操作步骤和原理说明,帮助读者理解ACL的工作机制和配置方法。实验目标:网口2:eno2np1(Linux测试机器网卡)网络拓扑:vmware开启一个主机模式的虚拟网络开启两个网卡设置Windows主机的VMware网卡原创 2025-12-12 21:31:42 · 977 阅读 · 0 评论 -
VPP中的DPDK插件源码详解第四篇:DPDK插件高级功能以及控制接口总结
第26章:DPDK插件总结26.1 DPDK插件的关键特点26.2 在VPP数据包转发中的作用26.3 性能优化要点26.4 与其他模块的关系26.5 最佳实践和注意事项关键要点规则转换将VPP流规则转换为DPDK流规则延迟回收:删除流表时,lookup entry延迟回收,避免in-flight数据包访问已释放内存动态启用:首次创建流规则时,动态启用设备的Flow Offload功能相关源码文件函数函数(规则转换)- 流表条目结构定义关键要点增量更新。原创 2025-12-11 15:32:00 · 698 阅读 · 0 评论 -
VPP中的DPDK插件源码详解第三篇:DPDK插件的数据接收和发送
第2章:模块架构和文件组织第3章:核心数据结构第4章:模块初始化第5章:DPDK设备管理第6章:驱动管理第7章:缓冲区管理第8章:dpdk-input节点核心处理第9章:数据包接收处理第10章:硬件卸载处理(接收侧)第11章:多段数据包处理第12章:流表处理(Flow Offload)第13章:LRO处理(Large Receive Offload)第14章:数据包分发和下一跳选择第15章:dpdk-output节点核心处理第16章:数据包发送处理第17章:硬件卸载处理(发送侧)第18章:发送队列管理第19原创 2025-12-11 15:27:54 · 731 阅读 · 0 评论 -
VPP中的DPDK插件源码详解第二篇:DPDK插件初始化和内部管理流程
第2章:模块架构和文件组织第3章:核心数据结构第4章:模块初始化第5章:DPDK设备管理第6章:驱动管理第7章:缓冲区管理第8章:dpdk-input节点核心处理第9章:数据包接收处理第10章:硬件卸载处理(接收侧)第11章:多段数据包处理第12章:流表处理(Flow Offload)第13章:LRO处理(Large Receive Offload)第14章:数据包分发和下一跳选择第15章:dpdk-output节点核心处理第16章:数据包发送处理第17章:硬件卸载处理(发送侧)第18章:发送队列管理第19原创 2025-12-11 15:24:42 · 916 阅读 · 0 评论 -
VPP中的DPDK插件源码详解第一篇:DPDK插件的作用和意义以及整体架构
第26章:DPDK插件总结26.1 DPDK插件的关键特点26.2 在VPP数据包转发中的作用26.3 性能优化要点26.4 与其他模块的关系26.5 最佳实践和注意事项作用和实现原理DPDK插件是VPP中负责与DPDK(Data Plane Development Kit)库集成的核心插件,它充当了VPP与物理网卡之间的"桥梁"。原创 2025-12-11 15:20:07 · 975 阅读 · 0 评论 -
VPP中ARP实现第三章:ARP模块详解
本章介绍ARP模块的整体定位、功能和特性,为后续深入分析奠定基础。ARP模块是VPP网络栈中连接L2(以太网)和L3(IP)的关键桥梁,负责将IP地址解析为MAC地址,使得IP数据包能够在以太网上正确传输。ARP_ERROR_REPLIES_SENT, // 已发送响应(正常情况)ARP_ERROR_DISABLED, // ARP已禁用ARP_ERROR_L2_TYPE_NOT_ETHERNET, // L2类型不是以太网。原创 2025-12-09 11:57:01 · 801 阅读 · 0 评论 -
VPP中ARP实现第一章:Adjacency(邻接)模块详解
通俗理解:Adjacency(邻接)就像"下一跳的详细地址"一样。当你需要发送数据包到某个邻居时,Adjacency告诉你:官方定义():Adjacency的核心属性():主要作用:在VPP中的位置:1.3 Adj状态:Complete vs IncompleteComplete Adjacency(完整邻接):Incomplete Adjacency(不完整邻接):状态转换:2. Adj数据结构2.1 ip_adjacency_t结构体详解源码位置:通俗理解:就像"快递单"一样,包含了发送数据原创 2025-12-09 11:45:56 · 759 阅读 · 0 评论 -
VPP中ARP实现第二章:IP Neighbor(IP邻居)模块详解
IP Neighbor模块是VPP中负责管理IP邻居表的核心模块,它的主要作用是:通俗理解:IP Neighbor模块就像是VPP的"通讯录",记录着"谁(IP地址)住在哪里(MAC地址)"。当VPP需要发送数据包时,它会先查这个"通讯录"找到目标的MAC地址,如果找不到,就会主动询问(发送ARP/ND请求)。IP Neighbor模块采用分层架构:IPv4转发路径中的邻居相关节点:节点说明:节点:节点:IPv6转发路径中的邻居相关节点:节点说明:源码位置:、源码位置:通俗理解:就像"通讯录条目"一样,原创 2025-12-09 11:47:34 · 913 阅读 · 0 评论 -
VPP中进程同步模块:RPC机制详解
*RPC(Remote Procedure Call,远程过程调用)**是一种通信机制,允许一个程序调用另一个程序(通常在不同的地址空间或线程)中的函数,就像调用本地函数一样。生活化理解传统方式(本地调用):- 你在办公室(线程1)需要打印文件- 直接走到打印机(同一线程)打印- 简单直接,但只能在自己的办公室打印RPC方式(远程调用):- 你在办公室(worker线程)需要打印文件- 但打印机在另一个办公室(主线程)- 你发送打印请求(RPC消息)给打印机办公室。原创 2025-12-08 19:37:52 · 758 阅读 · 0 评论 -
NAT44-ED 与 NAT44-EI 源码对比分析
NAT44-ED(Endpoint Dependent NAT44)的设计目标是实现高安全性、严格控制和便于审计的NAT功能。端点相关映射:每个目标地址/端口组合都有独立的映射,提供更严格的端口控制完整的连接跟踪:实现完整的TCP状态机,支持会话重开和状态转换详细的审计日志:记录完整的会话信息,包括源地址、目标地址、端口等VRF会话跟踪:按VRF跟踪会话,便于管理和审计NAT44-ED的安全优势安全特性NAT44-EDNAT44-EI说明端口可预测性❌ 不可预测✅ 可预测。原创 2025-12-08 11:41:38 · 608 阅读 · 0 评论 -
进阶:VPP NAT44-EI 全面源码解析
NAT 技术全景解析:从入门到精通VPP的NAT插件: NAT44-EI 实战配置指南VPP中FIB(转发信息库)和VRF(虚拟路由转发)详解:从设计理念到实际应用VPP API生成器详解:从API文件到多平台代码的完整流程VPP中Frame Queue无锁MPSC队列详解:从原理到实现NAT44-EI(Endpoint Independent NAT44)是VPP中实现端点无关NAT的核心插件。该插件采用模块化设计,通过多个文件协同工作,实现了高性能、可扩展的NAT功能。NAT44-EI插件包含以下文件:原创 2025-12-06 20:05:38 · 1064 阅读 · 0 评论 -
内存屏障、内存顺序、CAS详解:从CPU运行机制到C语言实现
禁止重排序:确保某些操作必须按顺序执行强制刷新:确保写操作真正写入内存强制同步:确保所有CPU看到一致的数据防止指令重排序:确保屏障前后的指令不会跨过屏障重排序强制内存可见性:确保写操作对其他CPU可见强制缓存同步:确保缓存与内存同步场景:两个司机同时想停车车位状态:空(0)司机A:想停车,检查车位是否为空(0)司机B:想停车,检查车位是否为空(0)CAS操作:1. 读取当前值:车位 = 02. 比较:当前值是否等于期望值(0)?3. 如果相等:设置为新值(1),返回成功。原创 2025-12-06 19:57:23 · 635 阅读 · 0 评论 -
VPP中Frame Queue无锁MPSC队列详解:从原理到实现
传统队列:需要加锁,就像需要钥匙的箱子(慢)无锁队列:使用原子操作,就像不需要钥匙的箱子(快)不使用锁:通过原子操作和内存屏障实现线程安全CAS操作:Compare-And-Swap,原子地比较和交换内存屏障:确保操作顺序和可见性CPU缓存结构:│ 缓存行(64字节) ││ tail(8字节)│ head(8字节)│ ... │ ← 同一缓存行问题:- Worker 1写入tail → 缓存行失效- Worker 2读取head → 缓存行失效- 频繁的缓存失效 → 性能下降无锁设计。原创 2025-12-06 19:55:42 · 648 阅读 · 0 评论 -
VPP API生成器详解:从API文件到多平台代码的完整流程
** \brief 消息描述@param client_index - 客户端索引(自动填充)@param context - 上下文(用于匹配请求/回复)@param field_name - 字段描述// 必需:所有请求消息必须包含 u32 context;// 必需:所有请求消息必须包含 u32 field_name;// 自定义字段 // 更多字段... };u8 is_add;// 必需:用于匹配请求 i32 retval;// 必需:返回值(0=成功) };原创 2025-12-06 19:53:23 · 812 阅读 · 0 评论 -
VPP中FIB(转发信息库)和VRF(虚拟路由转发)详解:从设计理念到实际应用
本文系统介绍了FIB(转发信息库)和VRF(虚拟路由转发)的核心概念与应用。通过企业网络管理的类比,形象解释了VRF如何实现多部门网络隔离(类似"虚拟路由器")和FIB如何高效路由(类似"地址簿")。重点分析了二者的设计理念:FIB采用最长前缀匹配、转发表/非转发表分离、统一数据平面对象等机制实现高性能路由;VRF通过表ID、接口绑定实现多租户网络隔离与地址复用。文章还对比了业界多VRF实现方案,并提供了VPP中的代码实现案例,为网络虚拟化技术提供了全面的技术解析。原创 2025-12-06 09:24:16 · 789 阅读 · 0 评论 -
VPP的NAT插件: NAT44-EI 实战配置指南
本文详细介绍了在VMware虚拟机中配置VPP的NAT44-EI插件的全过程。首先通过桥接模式和主机模式配置双网卡环境,搭建内部网络与外部网络连接。然后进行VPP基础配置,包括接口设置、路由添加和网络连通性测试。重点讲解了NAT44-EI插件的启用、地址池配置和接口方向设置。最后通过从内部网络访问外网的测试验证了NAT功能,并对比分析了数据流向和TTL变化,证实NAT44-EI成功实现了地址转换功能。整个过程包含了详细的操作步骤和原理说明,为理解NAT44-EI工作机制提供了实践参考。原创 2025-12-06 09:21:03 · 1171 阅读 · 0 评论 -
NAT 技术全景解析:从入门到精通
网络地址转换生活化理解:NAT 就像一个"邮局中转站"你的家(内部网络):- 地址:192.168.1.100(内部地址,外人不知道)- 想给朋友寄信(访问互联网)邮局(NAT设备):- 接收你的信- 把发件人地址改成:160.100.32.48(公网地址)- 记录:192.168.1.100 → 160.100.32.48- 转发给朋友朋友回信:- 地址:160.100.32.48(公网地址)- 邮局查记录,知道是给你的- 改成:192.168.1.100- 送到你家。原创 2025-12-05 09:21:21 · 529 阅读 · 0 评论 -
一篇文章完全剖析VPP核心源码
基于 VPP 25.02 源码和 NAT44 插件深度剖析站在 VPP 整体架构的高度,理解插件如何融入数据包处理流程文章中只是根据VPP主要的核心内容讲解,具体一些细节可以参以下文章:DPDK 技术深度解析:从原理到 VPP 应用VPP 内存精髓:从大页分配到零拷贝VPP 天才的宏命令设计:从零理解VPP插件机制VPP学习之万里长征第一步:学会制作第一个 VPP 插件注意:关于 VPP 内存架构的详细讲解,请参考《VPP内存精髓-从大页分配到零拷贝.md》阅读提示:本章节介绍了 VPP 的整体架原创 2025-12-05 09:20:10 · 1110 阅读 · 0 评论 -
VPP学习之万里长征第一步:学会制作第一个 VPP 插件
VPP (Vector Packet Processing) 是思科开源的高性能数据平面框架,广泛应用于网络功能虚拟化 (NFV) 和软件定义网络 (SDN) 场景。本文将带你从零开始,创建你的第一个 VPP 插件,在数据包处理路径中插入自定义逻辑。恭喜!你已经成功创建并运行了你的第一个 VPP 插件。环境配置:如何配置 VPP 运行环境网络设置:如何在 VPP 中配置网卡和 IP 地址数据流分析:如何理解 VPP 的数据包处理流程插件开发:如何创建、编译和启用 VPP 插件功能实现。原创 2025-12-04 09:15:16 · 1151 阅读 · 0 评论 -
DPDK 技术深度解析:从原理到 VPP 应用
性能突破吞吐量提升 100 倍以上延迟降低 10 倍以上CPU 利用率降低 10 倍以上架构创新用户态驱动零拷贝技术大页内存生态建设开源社区活跃广泛的应用场景持续的技术创新。原创 2025-12-04 09:14:17 · 939 阅读 · 0 评论 -
计算机底层内存与CPU机制深度解析:从硬件原理到 VPP 优化
问题:什么是内存对齐?答案:内存对齐是指数据在内存中的地址是数据大小的整数倍。对齐示例对齐的数据(4 字节整数):地址 0x1000: [整数 1] ← 对齐(0x1000 % 4 == 0)地址 0x1004: [整数 2] ← 对齐(0x1004 % 4 == 0)地址 0x1008: [整数 3] ← 对齐(0x1008 % 4 == 0)未对齐的数据(4 字节整数):地址 0x1001: [整数 1] ← 未对齐(0x1001 % 4!= 0)原创 2025-12-03 00:29:48 · 823 阅读 · 0 评论 -
VSCode/Cursor 远程调试、代码内联完整指南
本指南介绍如何在 VSCode/Cursor 中通过 Remote SSH 连接 Linux 服务器(或嵌入式开发板)进行 C/C++ 代码调试,远程代码内联,包括普通调试和需要 root 权限的调试场景。原创 2025-12-01 00:33:23 · 652 阅读 · 0 评论 -
VPP 编译目录下工具说明文档
类别工具主要用途核心VPP 主程序和命令行控制API 测试测试和调用 VPP API主机栈测试测试主机栈功能统计监控监控和统计系统管理进程管理内存管理共享内存管理测试框架test_*自动化测试。原创 2025-11-26 13:24:34 · 575 阅读 · 0 评论 -
VPP Git 仓库迁移指南
当你需要将 VPP 源码迁移到自己的 Git 仓库时,需要注意一些关键步骤,否则会导致编译失败。✅ 删除原有的.git目录✅ 初始化新的 Git 仓库✅必须创建以v开头的 Git 标签(如v25.02-rc✅ 确保所有使用的插件都包含了遵循以上步骤,可以成功将 VPP 迁移到自己的 Git 仓库而不会影响编译。原创 2025-11-30 20:13:16 · 361 阅读 · 0 评论 -
VPP 天才的宏命令设计:从零理解VPP插件机制
你写的代码宏的定义(来自进一步展开(来自visibilitysection最终展开结果这是什么?:一个结构体类型(定义在:一个全局变量名类比理解// 普通变量定义// 定义一个整数变量// 定义一个字符串变量// VPP 插件变量定义// 定义一个结构体变量结构体的定义// 是否默认禁用(1位)// 是否深度绑定(1位)// 版本号(64字节)// 要求的版本(64字节)// 覆盖的插件列表(256字节)// 早期初始化函数名// 插件描述你写的代码宏的定义(来自。原创 2025-12-02 00:10:58 · 629 阅读 · 0 评论
分享