Blame view

include/linux/atmmpc.h 4.07 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
6
  #ifndef _ATMMPC_H_
  #define _ATMMPC_H_
  
  #include <linux/atmapi.h>
  #include <linux/atmioc.h>
  #include <linux/atm.h>
9adfbfb61   Arnd Bergmann   make most exporte...
7
  #include <linux/types.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
8
9
10
11
12
13
14
15
16
  
  #define ATMMPC_CTRL _IO('a', ATMIOC_MPOA)
  #define ATMMPC_DATA _IO('a', ATMIOC_MPOA+1)
  
  #define MPC_SOCKET_INGRESS 1
  #define MPC_SOCKET_EGRESS  2
  
  struct atmmpc_ioc {
          int dev_num;
30d492da7   Al Viro   [ATM]: Annotations.
17
          __be32 ipaddr;              /* the IP address of the shortcut    */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
18
19
20
21
          int type;                     /* ingress or egress                 */
  };
  
  typedef struct in_ctrl_info {
9adfbfb61   Arnd Bergmann   make most exporte...
22
23
24
          __u8   Last_NHRP_CIE_code;
          __u8   Last_Q2931_cause_value;
          __u8   eg_MPC_ATM_addr[ATM_ESA_LEN];
30d492da7   Al Viro   [ATM]: Annotations.
25
26
          __be32  tag;
          __be32  in_dst_ip;      /* IP address this ingress MPC sends packets to */
9adfbfb61   Arnd Bergmann   make most exporte...
27
28
          __u16  holding_time;
          __u32  request_id;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
29
30
31
  } in_ctrl_info;
  
  typedef struct eg_ctrl_info {
9adfbfb61   Arnd Bergmann   make most exporte...
32
33
          __u8   DLL_header[256];
          __u8   DH_length;
30d492da7   Al Viro   [ATM]: Annotations.
34
35
36
37
          __be32  cache_id;
          __be32  tag;
          __be32  mps_ip;
          __be32  eg_dst_ip;      /* IP address to which ingress MPC sends packets */
9adfbfb61   Arnd Bergmann   make most exporte...
38
39
          __u8   in_MPC_data_ATM_addr[ATM_ESA_LEN];
          __u16  holding_time;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
40
41
42
  } eg_ctrl_info;
  
  struct mpc_parameters {
9adfbfb61   Arnd Bergmann   make most exporte...
43
44
45
46
47
48
          __u16 mpc_p1;   /* Shortcut-Setup Frame Count    */
          __u16 mpc_p2;   /* Shortcut-Setup Frame Time     */
          __u8 mpc_p3[8]; /* Flow-detection Protocols      */
          __u16 mpc_p4;   /* MPC Initial Retry Time        */
          __u16 mpc_p5;   /* MPC Retry Time Maximum        */
          __u16 mpc_p6;   /* Hold Down Time                */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
49
50
51
  } ;
  
  struct k_message {
9adfbfb61   Arnd Bergmann   make most exporte...
52
          __u16 type;
30d492da7   Al Viro   [ATM]: Annotations.
53
          __be32 ip_mask;
9adfbfb61   Arnd Bergmann   make most exporte...
54
          __u8  MPS_ctrl[ATM_ESA_LEN];
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
55
56
57
58
59
60
61
62
63
64
          union {
                  in_ctrl_info in_info;
                  eg_ctrl_info eg_info;
                  struct mpc_parameters params;
          } content;
          struct atm_qos qos;       
  } __ATM_API_ALIGN;
  
  struct llc_snap_hdr {
  	/* RFC 1483 LLC/SNAP encapsulation for routed IP PDUs */
9adfbfb61   Arnd Bergmann   make most exporte...
65
66
67
68
69
          __u8  dsap;    /* Destination Service Access Point (0xAA)     */
          __u8  ssap;    /* Source Service Access Point      (0xAA)     */
          __u8  ui;      /* Unnumbered Information           (0x03)     */
          __u8  org[3];  /* Organizational identification    (0x000000) */
          __u8  type[2]; /* Ether type (for IP)              (0x0800)   */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
  };
  
  /* TLVs this MPC recognizes */
  #define TLV_MPOA_DEVICE_TYPE         0x00a03e2a  
  
  /* MPOA device types in MPOA Device Type TLV */
  #define NON_MPOA    0
  #define MPS         1
  #define MPC         2
  #define MPS_AND_MPC 3
  
  
  /* MPC parameter defaults */
  
  #define MPC_P1 10  /* Shortcut-Setup Frame Count  */ 
  #define MPC_P2 1   /* Shortcut-Setup Frame Time   */
  #define MPC_P3 0   /* Flow-detection Protocols    */
  #define MPC_P4 5   /* MPC Initial Retry Time      */
  #define MPC_P5 40  /* MPC Retry Time Maximum      */
  #define MPC_P6 160 /* Hold Down Time              */
  #define HOLDING_TIME_DEFAULT 1200 /* same as MPS-p7 */
  
  /* MPC constants */
  
  #define MPC_C1 2   /* Retry Time Multiplier       */
  #define MPC_C2 60  /* Initial Keep-Alive Lifetime */
  
  /* Message types - to MPOA daemon */
  
  #define SND_MPOA_RES_RQST    201
  #define SET_MPS_CTRL_ADDR    202
  #define SND_MPOA_RES_RTRY    203 /* Different type in a retry due to req id         */
  #define STOP_KEEP_ALIVE_SM   204
  #define EGRESS_ENTRY_REMOVED 205
  #define SND_EGRESS_PURGE     206
  #define DIE                  207 /* tell the daemon to exit()                       */
  #define DATA_PLANE_PURGE     208 /* Data plane purge because of egress cache hit miss or dead MPS */
  #define OPEN_INGRESS_SVC     209
  
  /* Message types - from MPOA daemon */
  
  #define MPOA_TRIGGER_RCVD     101
  #define MPOA_RES_REPLY_RCVD   102
  #define INGRESS_PURGE_RCVD    103
  #define EGRESS_PURGE_RCVD     104
  #define MPS_DEATH             105
  #define CACHE_IMPOS_RCVD      106
  #define SET_MPC_CTRL_ADDR     107 /* Our MPC's control ATM address   */
  #define SET_MPS_MAC_ADDR      108
  #define CLEAN_UP_AND_EXIT     109
  #define SET_MPC_PARAMS        110 /* MPC configuration parameters    */
  
  /* Message types - bidirectional */       
  
  #define RELOAD                301 /* kill -HUP the daemon for reload */
  
  #endif /* _ATMMPC_H_ */