Linux认证辅导:Linux内核中流量控制(2)Linux认证考试

文章作者 100test 发表时间 2009:11:11 16:18:35
来源 100Test.Com百考试题网


  2.1.3 输入流控输入流控好象不是必须的,目前内核需要配置CONFIG_NET_CLS_ACT选项才起作用:/* net/core/dev.c */

  int netif_receive_skb(struct sk_buff *skb)

  {

  ......

  #ifdef CONFIG_NET_CLS_ACT

  if (pt_prev) {

  ret = deliver_skb(skb, pt_prev, orig_dev).

  pt_prev = NULL. /* noone else should process this after*/

  } else {

  skb->.tc_verd = SET_TC_OK2MUNGE(skb->.tc_verd).

  }

  ret = ing_filter(skb).

  if (ret == TC_ACT_SHOT || (ret == TC_ACT_STOLEN)) {

  kfree_skb(skb).

  goto out.

  }

  skb->.tc_verd = 0.

  ncls:

  #endif

  ......

  }

  static int ing_filter(struct sk_buff *skb)

  {

  struct Qdisc *q.

  struct net_device *dev = skb->.dev.

  int result = TC_ACT_OK.

  //如果网卡设备有输入流控处理

  if (dev->.qdisc_ingress) {

  __u32 ttl = (__u32) G_TC_RTTL(skb->.tc_verd).

  if (MAX_RED_LOOP %

  s)\n", skb->.input_dev->.name, skb->.dev->.name).

  return TC_ACT_SHOT.

  }

  //设置数据包的TC参数

  skb->.tc_verd = SET_TC_RTTL(skb->.tc_verd,ttl).

  skb->.tc_verd = SET_TC_AT(skb->.tc_verd,AT_INGRESS).

  spin_lock(&.dev->.ingress_lock).

  if ((q = dev->.qdisc_ingress) != NULL)


相关文章


linux下通过串口登陆交换机Linux认证考试
Linux认证辅导:Linux内核中流量控制(5)Linux认证考试
Linux认证辅导:Linux内核中流量控制(4)Linux认证考试
Linux认证辅导:Linux内核中流量控制(3)Linux认证考试
Linux认证辅导:Linux内核中流量控制(2)Linux认证考试
Linux认证辅导:Linux内核中流量控制(1)Linux认证考试
linux传统网络配置命令与ip高级路由命令Linux认证考试
Linux或Unix下如何查看DB2所占用的端口号Linux认证考试
Linux硬盘分区格式化Linux认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛