定义新的套接字选项以在 TCP 内核代码中使用

2024-04-03

我正在尝试向 TCP 内核代码添加一些功能(在tcp_input.c)。我希望我实现的代码仅在某些情况下运行。我想添加一个控制标志,可以从用户空间应用程序设置它。

我(认为我)需要添加一个新的套接字选项,以便我可以完成以下操作setsockopt().

内核空间:

if(tcp_flags.simulate_ecn_signal) {
  // run code for simulating ecn signal
}

用户空间:

if(tcp_info.tcpi_retransmits > LIMIT) {
  u8 simulate_ecn_signal = 1;

  // set the flag, so that the kernel code runs
  if (setsockopt(sock, IPPROTO_TCP, TCP_FLAGS, &simulate_ecn_signal, sizeof(simulate_ecn_signal)) < 0)
    printf("Can't set data with setsockopt.\n");
}

在上面的示例代码中,我添加了一个示例标志 simulate_ecn_signal 我认为它可能是一个名为的(新)套接字选项(结构)的成员 tcp_flags (可能包含多个标志值)。

如何定义新的套接字选项才能实现此目的?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

定义新的套接字选项以在 TCP 内核代码中使用 的相关文章

  • 代码::块 - 警告:GDB:无法设置控制终端:不允许操作

    我已经通过官方存储库在 Ubuntu 14 04 中安装了 Code Blocks 13 12 当我编译时 一切正常 但是当我调试时 shell 中会显示以下消息 警告 GDB 无法设置控制终端 操作不正确 允许的 程序执行到断点 但当我执
  • 在 C 中使用 sqrtf():“未定义对‘sqrtf’的引用”

    我正在使用Linux Ubuntu 12 04 https en wikipedia org wiki Ubuntu version history Ubuntu 12 04 LTS 28Precise Pangolin 29 Precis
  • Linux shell 命令逐块读取/打印文件

    是否有一个标准的 Linux 命令可以用来逐块读取文件 例如 我有一个大小为 6kB 的文件 我想读取 打印第一个 1kB 然后是第二个 1kB 看来猫 头 尾在这种情况下不起作用 非常感谢 你可以这样做read n在循环中 while r
  • 操作系统崩溃的常见原因[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有兴趣了解 操作系统崩溃 不限于Windows崩溃 最常见的技术原因 从操作系统编程的角度 有哪些 我正在寻找一个不像 打开太多应用
  • 如何使用 tmuxinator 在 tmux 中拆分水平窗格内的两个垂直窗格

    目前我的 tmuxinator yml 文件中有这个 windows editor layout main horizontal panes vim server rails s 这给了我两个窗口 一个用于编辑器 另一个用于服务器 在编辑器
  • 在单个命令中使用前缀重命名文件夹中的所有文件

    重命名带有前缀的文件夹中的所有文件 Unix 假设一个文件夹有两个文件 a txt b pdf 那么它们都应该从一个命令重命名为 Unix a txt Unix b pdf 如果您的文件名包含没有空格并且你没有任何子目录 你可以使用一个简单
  • 有关 Linux 内存类型的问题

    关于Linux内存我有以下问题 我知道活动内存是最常访问的内存部分 但是有人可以解释一下 linux 如何考虑将内存位置用于活动内存或非活动内存 主动存储器由哪些部分组成 磁盘 文件缓存是否被视为活动内存的一部分 有什么区别Buffers
  • 跟踪 pthread 调度

    我想做的是创建某种图表 详细说明 Linux 中 两个 线程的执行情况 我不需要查看线程的作用 只需查看它们何时被安排以及持续多长时间 基本上是一条时间线 在过去的几个小时里 我一直在互联网上搜索跟踪 pthread 调度的方法 不幸的是
  • 如何删除树莓派的相机预览

    我在我的 raspberryPi 上安装了 SimpleCv 并安装了用于使用相机板的驱动程序 uv4l 驱动程序 现在我想使用它 当我在 simpleCV shell Camera 0 getImage save foo jpg 上键入时
  • 为什么使用Python的os模块方法而不是直接执行shell命令?

    我试图了解使用Python的库函数执行特定于操作系统的任务 例如创建文件 目录 更改文件属性等 背后的动机是什么 而不是仅仅通过执行这些命令os system or subprocess call 例如 我为什么要使用os chmod而不是
  • jpackage linux 创建的桌面文件不足

    我刚刚开始使用 jpackage 它是一个非常棒的工具 只要迈出一步 我的肩上的工作就减轻了很多 我对看起来硬编码且无法定制的东西越感到惊讶 JPackage 自动生成启动器 lib
  • 原生 Linux 应用程序可像 ResHacker 一样编辑 Win32 PE

    我想运行自动修改 dll服务 用户提交特定的 dll 我在服务器上修改它 然后用户可以下载 dll的修改版本 是否有任何本机 Linux 应用程序提供常见的 Win32 PE 修改功能 例如图标 字符串 加速器 对话等 至少提供命令行或脚本
  • 如何使用 iPhone 将照片上传到服务器?

    我正在编写一个 iPhone 应用程序 它可以拍摄照片然后将其上传到服务器 如何使用 Cocoa 将照片上传到服务器 我想我在某处使用 NSUrl Thanks Header interface EPUploader NSObject NS
  • 如何在Windows Phone 7中获取Wi-Fi和移动网络参数?

    我的应用程序需要以下移动网络参数 MCC 移动国家代码 MNC 移动网络代码 LAC 位置区域代码 CID 小区标识符 细胞信号强度 对于 Wi Fi MAC地址 信号强度 我还需要两个变体的设备 IP 地址 Windows Phone 7
  • Xenomai 中的周期性线程实时失败

    我正在创建一个周期性线程 它在模拟输出上输出方波信号 我正在使用 Xenomai API 中的 Posix Skin 和 Analogy 我使用示波器测试了代码的实时性能 并查看了方波信号 频率为 1kHz 的延迟 我应该实现 250us
  • 如何仅将整个嵌套目录中的头文件复制到另一个目录,在复制到新文件夹后保持相同的层次结构

    我有一个目录 其中有很多头文件 h 和其他 o 和 c 文件以及其他文件 这个目录里面有很多嵌套的目录 我只想将头文件复制到一个单独的目录 并在新目录中保留相同的结构 cp rf oldDirectory newDirectory将复制所有
  • 没有设备的设备驱动程序?

    我正在创建一个需要使用一些内核级模块的应用程序 为此我将应用程序分为 2 个 一个用户级程序和一个内核级程序 在阅读了有关设备驱动程序并浏览一些教程后 我有点困惑 是否可以存在没有任何特定设备与之关联的设备驱动程序 除了设备驱动程序 内核代
  • 如何在 Linux x86_64 上模拟 iret

    我正在编写一个基于 Intel VT 的调试器 由于当 NMI Exiting 1 时 iret 指令在 vmx guest 中的性能发生了变化 所以我应该自己处理vmx主机中的NMI 否则 guest会出现nmi可重入错误 我查了英特尔手
  • sqlite 插入需要很长时间

    我正在将不到 200 000 行插入到 sqlite 数据库表中 我只是在终端中通过 sqlite3 使用一个非常简单的 sql 文件 我打赌它已经运行了至少 30 分钟 这是正常现象还是我应该关闭该过程并尝试不同的方法 sqlite中的插
  • 使用命令行将 MediaWiki 维基文本格式转换为 HTML

    我倾向于编写大量文档 因此 MediaWiki 格式对我来说很容易理解 而且比编写传统 HTML 节省了我很多时间 然而 我也写了一篇博客 发现一直从键盘切换到鼠标来输入正确的 HTML 标签会增加很多时间 我希望能够使用 Mediawik

随机推荐

  • iPhone - 在本地和生产环境设置之间切换

    我正在开发一个 iPhone 应用程序 它使用某处的服务器来获取其数据 在应用程序源代码的某个位置 我对用于连接的 URL 进行了硬编码 这很好 只是我并不总是想使用生产服务器进行测试 我不想弄乱实时数据 只是为了在本地测试一些东西 所以我
  • Modernizr 检查以检测 Firefox [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 使用 Modernizr 可以进行哪些检查来检测 Firefox 功能 即使不建议对功能进行浏览器检测 它也可以用于呈现其他类型的信息
  • 在selenium中使用隐式等待

    我是初学者 我理解等待的基本作用 但我对互联网上不同的教程如何放置和解释它感到困惑 例如 在下面的代码中 它被放置在加载 URL 之前 那么 是否只是等待 URL 加载或查找元素或两者兼而有之 如果我在 try 块中使用隐式等待一次 它是否
  • Console2中使用vim能识别吗?

    With Steven Harman 的 Solarized 调整 https github com stevenharman console2 solarized对于 Console2 我或多或少可以使用晒伤 http ethanscho
  • 使无序列表跨越 div 宽度的 100%

    div ul li First li li Second li li Third li li Fourth li ul div div width 100 li list style none float left 使用CSS 有没有办法让
  • 适用于 Databricks、Synapse 和 ADLS gen2 的数据治理解决方案

    我是数据治理的新手 如果问题缺少一些信息 请原谅我 客观的 我们正在 Azure 平台上为中型电信公司从头开始构建数据湖和企业数据仓库 我们使用 ADLS gen2 Databricks 和 Synapse 进行 ETL 处理 数据科学 M
  • 使用 d3.json() 获取数据不起作用,而使用 JS async wait 则可以。为什么? [复制]

    这个问题在这里已经有答案了 我正在尝试从 url 获取一些数据以在 d3 js 中使用 我无法使用来获取数据d3 json url callback 虽然我使用 ES8 时效果很好async await功能 有人可以帮助我理解为什么吗 我究
  • NSCell 与 NSView:当需要许多控件时

    我知道 Apple 不赞成使用NSCell赞成NSView 请参阅 AppKit 10 10 发行说明 此前曾建议NSCell当需要许多控制时出于性能原因使用 我花了相当多的时间来实现一个需要很多子视图的自定义控件 并且使用 NSView
  • 从 parquet 文件创建 SQL 表

    我正在使用 R 来处理大型数据集 最大数据帧 30 000 000 x 120 这些文件作为 parquet 文件存储在 Azure Datalake 存储中 我们需要每天查询这些文件并将其还原到本地 SQL 数据库中 无需将数据加载到内存
  • “DropDownList.SelectedIndex = -1”问题

    我只想要一个没有选定项目的 ASP NET DropDownList 到目前为止 将 SelectedIndex 设置为 1 没有任何作用 我正在使用 Framework 3 5 和 AJAX 即这个 DropDownList 位于 Upd
  • 通过 Kerberos 使用 Active Directory 进行身份验证

    我正在构建一个需要不同级别身份验证的 Android 应用程序 并且我想使用 Active Directory 来实现这一点 据我所知 使用 Kerberos 是 Microsoft 建议的方式 对于 Android 我该如何执行此操作 我
  • pip 显示错误“lsb_release -a”返回非零退出状态 1

    我正在尝试使用 pip 安装软件包 但它抛出错误 我用过的命令 sudo pip install selenium 它显示的错误 Exception Traceback most recent call last File usr loca
  • 删除或替换 javascript 中模式内的子字符串

    我需要 Javascript 中正则表达式的帮助 我正在寻找一种替换子字符串的方法 仅当它在引号内时 这是我的案例 源字符串 aa aa aa bbb bbb ccc sub string to remove 所需的字符串 aa aa aa
  • Task.IsCancelled 不起作用

    我有以下示例代码 static class Program static void Main var cts new CancellationTokenSource var task Task Factory StartNew gt try
  • 在Javascript中,这个下划线是什么意思?

    var Gallery Backbone Controller extend index null photos null album null subalbums null subphotos null data null photosv
  • scala 列表与泛型的模式匹配[重复]

    这个问题在这里已经有答案了 我有课 case class MyClass T values List T 我正在尝试创建一个函数 它将根据 T 的类型返回一个值 def myFunc T values match case v List B
  • TFS 2017.3.1 合并集合 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们目前使用 TFS 2017 3 1 On Prem 我们有 1 个非常大的收藏和另一个较小的收藏 我们想将较小的收藏移至较大的收藏
  • 使用 clang/g++ 时 __m256i 数组出现分段错误

    我正在尝试生成数组 m256i在另一个计算中重用 当我尝试这样做时 即使使用最小的测试用例 我也会遇到分段错误 但前提是代码是使用 g 或 clang 编译的 如果我使用 Intel 编译器 版本 16 0 编译代码 则不会发生分段错误 这
  • W8 商店应用程序:用 HTML 和 CSS 编写 UI,并使用 C# DLL 来实现域/模型? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 定义新的套接字选项以在 TCP 内核代码中使用

    我正在尝试向 TCP 内核代码添加一些功能 在tcp input c 我希望我实现的代码仅在某些情况下运行 我想添加一个控制标志 可以从用户空间应用程序设置它 我 认为我 需要添加一个新的套接字选项 以便我可以完成以下操作setsockop