当前位置: 首页 > news >正文

Linux: network :创建raw socket的时候

创建socket的函数packet_create,会注册一个 packet_rcv相关的回调函数。
这个函数负责将packet,skb的对象,放到socket queue里。在BPF过滤之后。

/*
 * This function makes lazy skb cloning in hope that most of packets
 * are discarded by BPF.
 *
 * Note tricky part: we DO mangle shared skb! skb->data, skb->len
 * and skb->cb are mangled. It works because (and until) packets
 * falling here are owned by current CPU. Output packets are cloned
 * by dev_queue_xmit_nit(), input packets are processed by net_bh
 * sequencially, so that if we return skb to original state on exit,
 * we will not harm anyone.
 */

如果注册的是arp层的raw socket,最终二层ARP的处理是通过遍历ptype,会顺序调用arp_rcv/arp_process来完成neigbor的更新等操作ÿ

http://www.dtcms.com/a/120496.html

相关文章:

  • [GN] sigrokdecode 模块
  • 【Java面试系列】Spring Boot中自动配置原理与自定义Starter开发实践详解 - 3-5年Java开发必备知识
  • Python第七章10:异常、模块、包的综合案例
  • 【组件封装-优化】vue+element plus:二次封装select组件,实现下拉列表有分页、自定义是否可搜索的一系列功能
  • Apache Airflow开源程序是一个以编程方式编写、计划和监控工作流程的平台
  • 苹果内购支付 Java 接口
  • 蓝桥杯:日期统计
  • 基于STM32、HAL库的CH224K 快充协议芯片简介及驱动程序设计
  • AI平台如何实现推理?数算岛是一个开源的AI平台(主要用于管理和调度分布式AI训练和推理任务。)
  • 【Java设计模式】第7章 建造者模式讲解
  • class与构造函数
  • Podman配置
  • AI在未来会不会代替人工???
  • Redis中AOF的实现方式和AOF重写
  • 运动规划实战案例 | 基于可视图的路径规划算法(附ROS C++/Python仿真)
  • 动态列表的数据渲染、新增、编辑等功能开发及数据处理
  • MySQL安装与基础配置(Windows版以及linux版)
  • RISCV GCC 4 后端优化
  • 国产数据库 YanshanDB 和 达梦数据库 的选型
  • PHP MySQL 创建数据库
  • 4S店汽车维修保养管理系统 (源码+lw+部署文档+讲解),源码可白嫖!
  • Spring MVC 操作会话属性详解(@SessionAttributes 与 @SessionAttribute)
  • 第二十五章:Python-pyecharts 库实现 3D 地图绘制
  • css单位
  • 通信协议详解(十):PSI5 —— 汽车安全传感器的“抗干扰狙击手”
  • el-input 中 select 方法使用报错:属性“select”在类型“HTMLElement”上不存在
  • Redis 下载 — Ubuntu22.04稳定版,配置
  • SvelteKit 最新中文文档教程(18)—— 浅层路由和 Packaging
  • 图形化编程语言:低代码赛道的技术革命与范式突破
  • TypeScript 泛型详解及应用场景