作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
int udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb) {
struct udp_sock *up = udp_sk(sk);
int rc;
int is_udplite = IS_UDPLITE(sk);
/*
* Charge it to the socket, dropping if the queue is full.
*/
if (!xfrm4_policy_check(sk, XFRM_POLICY_IN, skb))
goto drop;
nf_reset(skb);
我正在阅读 Linux net/ipv4/udp.c 中的代码。谁能向我解释一下为什么UDP数据包需要通过xfrm_policy_check()运行?
据我所知,函数返回:
我可能误解了函数的返回值,因为不完全理解源代码。
最佳答案
xfrm4_policy_check
函数根据 IPsec 检查数据包政策。如果允许处理数据包,则该函数的返回值为 1;如果不允许,则返回值为 0。例如,如果 skb->ip_summed
未设置为 CHECKSUM_UNNECESSASRY
并且数据包校验和失败,IPsec 可能会决定丢弃数据包。
关于c - 在Linux的net/ipv4/udp.c中,为什么UDP数据包需要通过xfrm4_policy_check()来处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7933347/
我是一名优秀的程序员,十分优秀!