gpt4 book ai didi

c - sk_buff 复制 & sk_buff 克隆

转载 作者:可可西里 更新时间:2023-11-01 11:49:56 27 4
gpt4 key购买 nike

我正在为 Linux 内核编写一个模块,它试图窃取数据包及其相关的 sk_buff。为此,我想使用 struct sk_buff *skb_copy(const struct sk_buff *skb, gfp_t gfp_mask) & 然后在数据包被丢弃时将返回类型传递给内核。

因此,当内核获取有关丢包的信息时,它会尝试释放 sk_buff。我的问题来了,它会影响我新复制的 skb 及其数据包的指向数据吗?或者现在我可以玩我的新 sk_buff 了?

或者是否可以使用 skb_clone() 并使用数据包数据部分而不删除旧 sk_buff 引用的数据,因为它会减少数据包的复制成本。

最佳答案

使用skb_copy 会将sk_buff 和数据包复制到新内存中。这意味着当内核释放另一个时,副本不会受到影响。

skb_clone 在另一方面将 sk_buff 结构复制到新内存,但不是数据包。这意味着当旧的被释放时,您的副本也会释放数据包。

以下是一些链接:

关于c - sk_buff 复制 & sk_buff 克隆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13248209/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com