Mark一下~

作者在cnblogs上开通了个人博客,并回顾了上半年的工作进展——完成了Rebase阶段的任务,期待下半年Promotion阶段能取得更多成就,同时也希望能撰写出更多有价值的博客文章。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在cnblogs开通了博客,mark一下~

上半年的Rebase阶段已经完成,希望下半年的Promotion阶段能收获满满,也希望自己能写出高质量的博客。

转载于:https://www.cnblogs.com/pedlar/p/9292133.html

根据以下源码,分别详细分析BCM6756和BCM6764方案下,skb->mark和ct->mark的赋值逻辑 (1)举例,说明BCM6756和BCM6764下,mark的赋值逻辑 (2)判断BCM6756和BCM6764方案mark赋值是否相同?能够合并为一个方案? #define QOS_LAN_MARK_HIGH (0x3) #define QOS_WAN_MARK_HIGH (0x18000010) #define QOS_LAN_MARK_LOW (0x5) #define QOS_WAN_MARK_LOW (0x08000010) #define QOS_LAN_CT_MARK_HIGH (0X0030) #define QOS_LAN_CT_MARK_LOW (0X0020) BCM6756方案: static void set_qos_mark(struct sk_buff *skb, struct nf_conn *ct, u_int32_t mark) { #if CONFIG_BCM6756 u_int32_t mask = 0xFFFF; #else u_int32_t mask = 0xFFF0; #endif /*1. ct and skb use the same mark; */ /*2. --set-mark: */ /* mark = (mark AND NOT mask) OR value */ if (skb) { if (skb->mark != QOS_LAN_MARK_LOW && skb->mark > 0) { return; } else { skb->mark = (skb->mark & ~mask) | mark; } } if (ct) { if (ct->mark != QOS_LAN_CT_MARK_LOW && ct->mark > 0) { return; } else { #if CONFIG_BCM6756 ct->mark = (ct->mark & ~mask) | (mark == QOS_LAN_MARK_LOW ? QOS_LAN_CT_MARK_LOW: QOS_LAN_CT_MARK_HIGH); #else ct->mark = (ct->mark & ~mask) | mark; #endif } } /*now let TC queue do the rest*/ return; } BCM6764方案: static void set_qos_mark(struct sk_buff *skb, struct nf_conn *ct, u_int32_t mark) { u_int32_t mask = 0xFFF0; #if CONFIG_BCM6764 u_int32_t skb_mask = 0x7; #endif if (skb) { if (skb->mark != GAMING_QOS_LAN_MARK_LOW && skb->mark > 0) { return; } else { #if CONFIG_BCM6764 skb->mark = (skb->mark & ~skb_mask) | mark; #else skb->mark = (skb->mark & ~mask) | mark; #endif } } if (ct) { if (ct->mark != QOS_LAN_CT_MARK_LOW && ct->mark > 0) { return; } else { <<<<<<< HEAD #if CONFIG_BCM6764 ct->mark = (ct->mark & ~mask) | (mark == QOS_LAN_MARK_LOW ? QOS_LAN_CT_MARK_LOW: QOS_LAN_CT_MARK_HIGH); #else ct->mark = (ct->mark & ~mask) | mark; #endif } }
07-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值