xt_TRACE.c 852 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /* This is a module which is used to mark packets for tracing.
  2. */
  3. #include <linux/module.h>
  4. #include <linux/skbuff.h>
  5. #include <linux/netfilter/x_tables.h>
  6. MODULE_DESCRIPTION("Xtables: packet flow tracing");
  7. MODULE_LICENSE("GPL");
  8. MODULE_ALIAS("ipt_TRACE");
  9. MODULE_ALIAS("ip6t_TRACE");
  10. static unsigned int
  11. trace_tg(struct sk_buff *skb, const struct xt_action_param *par)
  12. {
  13. skb->nf_trace = 1;
  14. return XT_CONTINUE;
  15. }
  16. static struct xt_target trace_tg_reg __read_mostly = {
  17. .name = "TRACE",
  18. .revision = 0,
  19. .family = NFPROTO_UNSPEC,
  20. .table = "raw",
  21. .target = trace_tg,
  22. .me = THIS_MODULE,
  23. };
  24. static int __init trace_tg_init(void)
  25. {
  26. return xt_register_target(&trace_tg_reg);
  27. }
  28. static void __exit trace_tg_exit(void)
  29. {
  30. xt_unregister_target(&trace_tg_reg);
  31. }
  32. module_init(trace_tg_init);
  33. module_exit(trace_tg_exit);