summaryrefslogtreecommitdiffstats
path: root/include/linux/if_wanpipe.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/if_wanpipe.h')
-rw-r--r--include/linux/if_wanpipe.h124
1 files changed, 124 insertions, 0 deletions
diff --git a/include/linux/if_wanpipe.h b/include/linux/if_wanpipe.h
new file mode 100644
index 00000000000..e594ca6069e
--- /dev/null
+++ b/include/linux/if_wanpipe.h
@@ -0,0 +1,124 @@
+/*****************************************************************************
+* if_wanpipe.h Header file for the Sangoma AF_WANPIPE Socket
+*
+* Author: Nenad Corbic
+*
+* Copyright: (c) 2000 Sangoma Technologies Inc.
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version
+* 2 of the License, or (at your option) any later version.
+* ============================================================================
+*
+* Jan 28, 2000 Nenad Corbic Initial Version
+*
+*****************************************************************************/
+
+#ifndef __LINUX_IF_WAN_PACKET_H
+#define __LINUX_IF_WAN_PACKET_H
+
+struct wan_sockaddr_ll
+{
+ unsigned short sll_family;
+ unsigned short sll_protocol;
+ int sll_ifindex;
+ unsigned short sll_hatype;
+ unsigned char sll_pkttype;
+ unsigned char sll_halen;
+ unsigned char sll_addr[8];
+ unsigned char sll_device[14];
+ unsigned char sll_card[14];
+};
+
+typedef struct
+{
+ unsigned char free;
+ unsigned char state_sk;
+ int rcvbuf;
+ int sndbuf;
+ int rmem;
+ int wmem;
+ int sk_count;
+ unsigned char bound;
+ char name[14];
+ unsigned char d_state;
+ unsigned char svc;
+ unsigned short lcn;
+ unsigned char mbox;
+ unsigned char cmd_busy;
+ unsigned char command;
+ unsigned poll;
+ unsigned poll_cnt;
+ int rblock;
+} wan_debug_hdr_t;
+
+#define MAX_NUM_DEBUG 10
+#define X25_PROT 0x16
+#define PVC_PROT 0x17
+
+typedef struct
+{
+ wan_debug_hdr_t debug[MAX_NUM_DEBUG];
+}wan_debug_t;
+
+#define SIOC_WANPIPE_GET_CALL_DATA (SIOCPROTOPRIVATE + 0)
+#define SIOC_WANPIPE_SET_CALL_DATA (SIOCPROTOPRIVATE + 1)
+#define SIOC_WANPIPE_ACCEPT_CALL (SIOCPROTOPRIVATE + 2)
+#define SIOC_WANPIPE_CLEAR_CALL (SIOCPROTOPRIVATE + 3)
+#define SIOC_WANPIPE_RESET_CALL (SIOCPROTOPRIVATE + 4)
+#define SIOC_WANPIPE_DEBUG (SIOCPROTOPRIVATE + 5)
+#define SIOC_WANPIPE_SET_NONBLOCK (SIOCPROTOPRIVATE + 6)
+#define SIOC_WANPIPE_CHECK_TX (SIOCPROTOPRIVATE + 7)
+#define SIOC_WANPIPE_SOCK_STATE (SIOCPROTOPRIVATE + 8)
+
+/* Packet types */
+
+#define WAN_PACKET_HOST 0 /* To us */
+#define WAN_PACKET_BROADCAST 1 /* To all */
+#define WAN_PACKET_MULTICAST 2 /* To group */
+#define WAN_PACKET_OTHERHOST 3 /* To someone else */
+#define WAN_PACKET_OUTGOING 4 /* Outgoing of any type */
+/* These ones are invisible by user level */
+#define WAN_PACKET_LOOPBACK 5 /* MC/BRD frame looped back */
+#define WAN_PACKET_FASTROUTE 6 /* Fastrouted frame */
+
+
+/* X25 specific */
+#define WAN_PACKET_DATA 7
+#define WAN_PACKET_CMD 8
+#define WAN_PACKET_ASYNC 9
+#define WAN_PACKET_ERR 10
+
+/* Packet socket options */
+
+#define WAN_PACKET_ADD_MEMBERSHIP 1
+#define WAN_PACKET_DROP_MEMBERSHIP 2
+
+#define WAN_PACKET_MR_MULTICAST 0
+#define WAN_PACKET_MR_PROMISC 1
+#define WAN_PACKET_MR_ALLMULTI 2
+
+#ifdef __KERNEL__
+
+/* Private wanpipe socket structures. */
+struct wanpipe_opt
+{
+ void *mbox; /* Mail box */
+ void *card; /* Card bouded to */
+ struct net_device *dev; /* Bounded device */
+ unsigned short lcn; /* Binded LCN */
+ unsigned char svc; /* 0=pvc, 1=svc */
+ unsigned char timer; /* flag for delayed transmit*/
+ struct timer_list tx_timer;
+ unsigned poll_cnt;
+ unsigned char force; /* Used to force sock release */
+ atomic_t packet_sent;
+ unsigned short num;
+};
+
+#define wp_sk(__sk) ((struct wanpipe_opt *)(__sk)->sk_protinfo)
+
+#endif
+
+#endif