www.usr.com/support/gpl/USR9107_release.1.4.tar.gz
[bcm963xx.git] / userapps / opensource / atm2684 / pvc2684ctl / brpvc.h
1 /* brpvcd.h -- header file for brpvc.c and brpvcd.c
2
3    written by Chuck Musser <chuckie@well.com>
4 */
5
6 #define BRPVC_SOCKPATH  "/var/br2684"
7 #define MAX_GROUPNAME_LEN 32
8 #define  LIST_END          0
9 #define  FOUND             1
10
11 enum messages { HELLO, 
12                 ADD, DELETE, DELETE_GROUP, 
13                 LIST_GROUP, LIST_ALL,
14                 MEM_STATS,
15                 OK, VC_NOT_FOUND, GROUP_NOT_FOUND, END_OF_LIST, 
16                 NOT_OWNER, UNKNOWN_CMD, NOMEM, SOCK_FAILED, INTERFACE_FAILED};
17
18
19 /* internal representation for a bridge-encapsulation circuit  */
20
21 struct be_vc {
22   int                    nas_idx;  /* interface number          */
23   struct sockaddr_atmpvc pvc;      /* PVC descriptor            */
24   int                    sock;     /* file descriptor for VC    */
25   uid_t                  uid;      /* VC owner name             */
26   struct be_vc           *next;    /* next VC in list           */
27   // brcm
28   int                   proto_filter;   /* protocol filter flag, current only PPPOE */
29   int                   encap;          /* encapsulation: LLC/VC */
30   int                   mode;           /* Bridging/Routing */
31   unsigned short        vlan_id;        /* vlan id (0-4096) */
32 };
33
34 /* br2684_circuits are grouped by a textual name, which can be blank  */
35
36 struct be_group {
37   char            name[MAX_GROUPNAME_LEN];  /* name of group        */
38   struct be_vc    *head;                    /* head of the VC list  */
39   struct be_group *next;                    /* next group in list   */
40 };
41
42 /* message format for talking to the daemon */
43
44 struct be_msg {
45   enum messages          msgtype;   /* message (from enum above) */
46   int                    nas_idx;   /* interface number          */
47   struct sockaddr_atmpvc pvc;       /* PVC descriptor            */
48   uid_t                  uid;       /* VC owner name (server->client only)  */
49   char                   name[MAX_GROUPNAME_LEN]; /* name of group          */
50   // brcm
51   int                   proto_filter;   /* protocol filter flag, current only PPPOE */
52   int                   encap;          /* encapsulation: LLC/VC */
53   int                   mode;           /* Bridging/Routing */
54   unsigned short        vlan_id;        /* vlan id (0-4096) */
55 };
56
57 /* Special message for dumping memory usage statistics */
58
59 struct be_memstat {
60   int                    vc_mallocs; 
61   int                    vc_frees;  
62   int                    group_mallocs;
63   int                    group_frees;  
64 };