ip_conntrack_proto_generic.c 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /* (C) 1999-2001 Paul `Rusty' Russell
  2. * (C) 2002-2004 Netfilter Core Team <coreteam@netfilter.org>
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License version 2 as
  6. * published by the Free Software Foundation.
  7. */
  8. #include <linux/types.h>
  9. #include <linux/timer.h>
  10. #include <linux/netfilter.h>
  11. #include <linux/netfilter_ipv4/ip_conntrack_protocol.h>
  12. unsigned int ip_ct_generic_timeout __read_mostly = 600*HZ;
  13. static int generic_pkt_to_tuple(const struct sk_buff *skb,
  14. unsigned int dataoff,
  15. struct ip_conntrack_tuple *tuple)
  16. {
  17. tuple->src.u.all = 0;
  18. tuple->dst.u.all = 0;
  19. return 1;
  20. }
  21. static int generic_invert_tuple(struct ip_conntrack_tuple *tuple,
  22. const struct ip_conntrack_tuple *orig)
  23. {
  24. tuple->src.u.all = 0;
  25. tuple->dst.u.all = 0;
  26. return 1;
  27. }
  28. /* Print out the per-protocol part of the tuple. */
  29. static int generic_print_tuple(struct seq_file *s,
  30. const struct ip_conntrack_tuple *tuple)
  31. {
  32. return 0;
  33. }
  34. /* Print out the private part of the conntrack. */
  35. static int generic_print_conntrack(struct seq_file *s,
  36. const struct ip_conntrack *state)
  37. {
  38. return 0;
  39. }
  40. /* Returns verdict for packet, or -1 for invalid. */
  41. static int packet(struct ip_conntrack *conntrack,
  42. const struct sk_buff *skb,
  43. enum ip_conntrack_info ctinfo)
  44. {
  45. ip_ct_refresh_acct(conntrack, ctinfo, skb, ip_ct_generic_timeout);
  46. return NF_ACCEPT;
  47. }
  48. /* Called when a new connection for this protocol found. */
  49. static int new(struct ip_conntrack *conntrack, const struct sk_buff *skb)
  50. {
  51. return 1;
  52. }
  53. struct ip_conntrack_protocol ip_conntrack_generic_protocol =
  54. {
  55. .proto = 0,
  56. .name = "unknown",
  57. .pkt_to_tuple = generic_pkt_to_tuple,
  58. .invert_tuple = generic_invert_tuple,
  59. .print_tuple = generic_print_tuple,
  60. .print_conntrack = generic_print_conntrack,
  61. .packet = packet,
  62. .new = new,
  63. };