pcap_set_protocol_linux.3pcap 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. .\" Copyright (c) 1994, 1996, 1997
  2. .\" The Regents of the University of California. All rights reserved.
  3. .\"
  4. .\" Redistribution and use in source and binary forms, with or without
  5. .\" modification, are permitted provided that: (1) source code distributions
  6. .\" retain the above copyright notice and this paragraph in its entirety, (2)
  7. .\" distributions including binary code include the above copyright notice and
  8. .\" this paragraph in its entirety in the documentation or other materials
  9. .\" provided with the distribution, and (3) all advertising materials mentioning
  10. .\" features or use of this software display the following acknowledgement:
  11. .\" ``This product includes software developed by the University of California,
  12. .\" Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
  13. .\" the University nor the names of its contributors may be used to endorse
  14. .\" or promote products derived from this software without specific prior
  15. .\" written permission.
  16. .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
  17. .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
  18. .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  19. .\"
  20. .TH PCAP_SET_PROTOCOL_LINUX 3PCAP "24 August 2017"
  21. .SH NAME
  22. pcap_set_protocol_linux \- set capture protocol for a not-yet-activated
  23. capture handle
  24. .SH SYNOPSIS
  25. .nf
  26. .ft B
  27. #include <pcap/pcap.h>
  28. .LP
  29. .ft B
  30. int pcap_set_protocol_linux(pcap_t *p, int protocol);
  31. .ft
  32. .fi
  33. .SH DESCRIPTION
  34. On network interface devices on Linux,
  35. .B pcap_set_protocol_linux()
  36. sets the protocol to be used in the
  37. .BR socket (2)
  38. call to create a capture socket when the handle is activated. The
  39. argument is a link-layer protocol value, such as the values in the
  40. .B <linux/if_ether.h>
  41. header file, specified in host byte order.
  42. If
  43. .I protocol
  44. is non-zero, packets of that protocol will be captured when the
  45. handle is activated, otherwise, all packets will be captured. This
  46. function is only provided on Linux, and, if it is used on any device
  47. other than a network interface, it will have no effect.
  48. .LP
  49. It should not be used in portable code; instead, a filter should be
  50. specified with
  51. .BR pcap_setfilter() .
  52. .LP
  53. If a given network interface provides a standard link-layer header, with
  54. a standard packet type, but provides some packet types with a different
  55. socket-layer protocol type from the one in the link-layer header, that
  56. packet type cannot be filtered with a filter specified with
  57. .B pcap_setfilter()
  58. but can be filtered by specifying the socket-layer protocol type using
  59. .BR pcap_set_protocol_linux() .
  60. .SH RETURN VALUE
  61. .B pcap_set_protocol_linux()
  62. returns 0 on success or
  63. .B PCAP_ERROR_ACTIVATED
  64. if called on a capture handle that has been activated.
  65. .SH SEE ALSO
  66. pcap(3PCAP), pcap_create(3PCAP), pcap_activate(3PCAP), socket(2),
  67. pcap_setfilter(3PCAP)