pkt_cls.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. #ifndef __LINUX_PKT_CLS_H
  2. #define __LINUX_PKT_CLS_H
  3. struct tc_police
  4. {
  5. __u32 index;
  6. int action;
  7. #define TC_POLICE_UNSPEC (-1)
  8. #define TC_POLICE_OK 0
  9. #define TC_POLICE_RECLASSIFY 1
  10. #define TC_POLICE_SHOT 2
  11. __u32 limit;
  12. __u32 burst;
  13. __u32 mtu;
  14. struct tc_ratespec rate;
  15. struct tc_ratespec peakrate;
  16. };
  17. enum
  18. {
  19. TCA_POLICE_UNSPEC,
  20. TCA_POLICE_TBF,
  21. TCA_POLICE_RATE,
  22. TCA_POLICE_PEAKRATE,
  23. TCA_POLICE_AVRATE,
  24. TCA_POLICE_RESULT
  25. #define TCA_POLICE_RESULT TCA_POLICE_RESULT
  26. };
  27. #define TCA_POLICE_MAX TCA_POLICE_RESULT
  28. /* U32 filters */
  29. #define TC_U32_HTID(h) ((h)&0xFFF00000)
  30. #define TC_U32_USERHTID(h) (TC_U32_HTID(h)>>20)
  31. #define TC_U32_HASH(h) (((h)>>12)&0xFF)
  32. #define TC_U32_NODE(h) ((h)&0xFFF)
  33. #define TC_U32_KEY(h) ((h)&0xFFFFF)
  34. #define TC_U32_UNSPEC 0
  35. #define TC_U32_ROOT (0xFFF00000)
  36. enum
  37. {
  38. TCA_U32_UNSPEC,
  39. TCA_U32_CLASSID,
  40. TCA_U32_HASH,
  41. TCA_U32_LINK,
  42. TCA_U32_DIVISOR,
  43. TCA_U32_SEL,
  44. TCA_U32_POLICE,
  45. };
  46. #define TCA_U32_MAX TCA_U32_POLICE
  47. struct tc_u32_key
  48. {
  49. __u32 mask;
  50. __u32 val;
  51. int off;
  52. int offmask;
  53. };
  54. struct tc_u32_sel
  55. {
  56. unsigned char flags;
  57. unsigned char offshift;
  58. unsigned char nkeys;
  59. __u16 offmask;
  60. __u16 off;
  61. short offoff;
  62. short hoff;
  63. __u32 hmask;
  64. struct tc_u32_key keys[0];
  65. };
  66. /* Flags */
  67. #define TC_U32_TERMINAL 1
  68. #define TC_U32_OFFSET 2
  69. #define TC_U32_VAROFFSET 4
  70. #define TC_U32_EAT 8
  71. #define TC_U32_MAXDEPTH 8
  72. /* RSVP filter */
  73. enum
  74. {
  75. TCA_RSVP_UNSPEC,
  76. TCA_RSVP_CLASSID,
  77. TCA_RSVP_DST,
  78. TCA_RSVP_SRC,
  79. TCA_RSVP_PINFO,
  80. TCA_RSVP_POLICE,
  81. };
  82. #define TCA_RSVP_MAX TCA_RSVP_POLICE
  83. struct tc_rsvp_gpi
  84. {
  85. __u32 key;
  86. __u32 mask;
  87. int offset;
  88. };
  89. struct tc_rsvp_pinfo
  90. {
  91. struct tc_rsvp_gpi dpi;
  92. struct tc_rsvp_gpi spi;
  93. __u8 protocol;
  94. __u8 tunnelid;
  95. __u8 tunnelhdr;
  96. };
  97. /* ROUTE filter */
  98. enum
  99. {
  100. TCA_ROUTE4_UNSPEC,
  101. TCA_ROUTE4_CLASSID,
  102. TCA_ROUTE4_TO,
  103. TCA_ROUTE4_FROM,
  104. TCA_ROUTE4_IIF,
  105. TCA_ROUTE4_POLICE,
  106. };
  107. #define TCA_ROUTE4_MAX TCA_ROUTE4_POLICE
  108. /* FW filter */
  109. enum
  110. {
  111. TCA_FW_UNSPEC,
  112. TCA_FW_CLASSID,
  113. TCA_FW_POLICE,
  114. };
  115. #define TCA_FW_MAX TCA_FW_POLICE
  116. /* TC index filter */
  117. enum
  118. {
  119. TCA_TCINDEX_UNSPEC,
  120. TCA_TCINDEX_HASH,
  121. TCA_TCINDEX_MASK,
  122. TCA_TCINDEX_SHIFT,
  123. TCA_TCINDEX_FALL_THROUGH,
  124. TCA_TCINDEX_CLASSID,
  125. TCA_TCINDEX_POLICE,
  126. };
  127. #define TCA_TCINDEX_MAX        TCA_TCINDEX_POLICE
  128. #endif