x25.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. /*
  2. * These are the public elements of the Linux kernel X.25 implementation.
  3. *
  4. * History
  5. * mar/20/00 Daniela Squassoni Disabling/enabling of facilities
  6. * negotiation.
  7. * apr/02/05 Shaun Pereira Selective sub address matching with
  8. * call user data
  9. */
  10. #ifndef X25_KERNEL_H
  11. #define X25_KERNEL_H
  12. #define SIOCX25GSUBSCRIP (SIOCPROTOPRIVATE + 0)
  13. #define SIOCX25SSUBSCRIP (SIOCPROTOPRIVATE + 1)
  14. #define SIOCX25GFACILITIES (SIOCPROTOPRIVATE + 2)
  15. #define SIOCX25SFACILITIES (SIOCPROTOPRIVATE + 3)
  16. #define SIOCX25GCALLUSERDATA (SIOCPROTOPRIVATE + 4)
  17. #define SIOCX25SCALLUSERDATA (SIOCPROTOPRIVATE + 5)
  18. #define SIOCX25GCAUSEDIAG (SIOCPROTOPRIVATE + 6)
  19. #define SIOCX25SCUDMATCHLEN (SIOCPROTOPRIVATE + 7)
  20. /*
  21. * Values for {get,set}sockopt.
  22. */
  23. #define X25_QBITINCL 1
  24. /*
  25. * X.25 Packet Size values.
  26. */
  27. #define X25_PS16 4
  28. #define X25_PS32 5
  29. #define X25_PS64 6
  30. #define X25_PS128 7
  31. #define X25_PS256 8
  32. #define X25_PS512 9
  33. #define X25_PS1024 10
  34. #define X25_PS2048 11
  35. #define X25_PS4096 12
  36. /*
  37. * An X.121 address, it is held as ASCII text, null terminated, up to 15
  38. * digits and a null terminator.
  39. */
  40. struct x25_address {
  41. char x25_addr[16];
  42. };
  43. /*
  44. * Linux X.25 Address structure, used for bind, and connect mostly.
  45. */
  46. struct sockaddr_x25 {
  47. sa_family_t sx25_family; /* Must be AF_X25 */
  48. struct x25_address sx25_addr; /* X.121 Address */
  49. };
  50. /*
  51. * DTE/DCE subscription options.
  52. *
  53. * As this is missing lots of options, user should expect major
  54. * changes of this structure in 2.5.x which might break compatibilty.
  55. * The somewhat ugly dimension 200-sizeof() is needed to maintain
  56. * backward compatibility.
  57. */
  58. struct x25_subscrip_struct {
  59. char device[200-sizeof(unsigned long)];
  60. unsigned long global_facil_mask; /* 0 to disable negotiation */
  61. unsigned int extended;
  62. };
  63. /* values for above global_facil_mask */
  64. #define X25_MASK_REVERSE 0x01
  65. #define X25_MASK_THROUGHPUT 0x02
  66. #define X25_MASK_PACKET_SIZE 0x04
  67. #define X25_MASK_WINDOW_SIZE 0x08
  68. /*
  69. * Routing table control structure.
  70. */
  71. struct x25_route_struct {
  72. struct x25_address address;
  73. unsigned int sigdigits;
  74. char device[200];
  75. };
  76. /*
  77. * Facilities structure.
  78. */
  79. struct x25_facilities {
  80. unsigned int winsize_in, winsize_out;
  81. unsigned int pacsize_in, pacsize_out;
  82. unsigned int throughput;
  83. unsigned int reverse;
  84. };
  85. /*
  86. * Call User Data structure.
  87. */
  88. struct x25_calluserdata {
  89. unsigned int cudlength;
  90. unsigned char cuddata[128];
  91. };
  92. /*
  93. * Call clearing Cause and Diagnostic structure.
  94. */
  95. struct x25_causediag {
  96. unsigned char cause;
  97. unsigned char diagnostic;
  98. };
  99. /*
  100. * Further optional call user data match length selection
  101. */
  102. struct x25_subaddr {
  103. unsigned int cudmatchlength;
  104. };
  105. #endif