- /*****************************************************************************
- * 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