atmmpc.h
001: #ifndef _ATMMPC_H_
002: #define _ATMMPC_H_
003:
004: #include <linux/atmapi.h>
005: #include <linux/atmioc.h>
006: #include <linux/atm.h>
007: #include <linux/types.h>
008:
009: #define ATMMPC_CTRL _IO('a', ATMIOC_MPOA)
010: #define ATMMPC_DATA _IO('a', ATMIOC_MPOA+1)
011:
012: #define MPC_SOCKET_INGRESS 1
013: #define MPC_SOCKET_EGRESS 2
014:
015: struct atmmpc_ioc {
016: int dev_num;
017: __be32 ipaddr;
018: int type;
019: };
020:
021: typedef struct in_ctrl_info {
022: __u8 Last_NHRP_CIE_code;
023: __u8 Last_Q2931_cause_value;
024: __u8 eg_MPC_ATM_addr[ATM_ESA_LEN];
025: __be32 tag;
026: __be32 in_dst_ip;
027: __u16 holding_time;
028: __u32 request_id;
029: } in_ctrl_info;
030:
031: typedef struct eg_ctrl_info {
032: __u8 DLL_header[256];
033: __u8 DH_length;
034: __be32 cache_id;
035: __be32 tag;
036: __be32 mps_ip;
037: __be32 eg_dst_ip;
038: __u8 in_MPC_data_ATM_addr[ATM_ESA_LEN];
039: __u16 holding_time;
040: } eg_ctrl_info;
041:
042: struct mpc_parameters {
043: __u16 mpc_p1;
044: __u16 mpc_p2;
045: __u8 mpc_p3[8];
046: __u16 mpc_p4;
047: __u16 mpc_p5;
048: __u16 mpc_p6;
049: } ;
050:
051: struct k_message {
052: __u16 type;
053: __be32 ip_mask;
054: __u8 MPS_ctrl[ATM_ESA_LEN];
055: union {
056: in_ctrl_info in_info;
057: eg_ctrl_info eg_info;
058: struct mpc_parameters params;
059: } content;
060: struct atm_qos qos;
061: } __ATM_API_ALIGN;
062:
063: struct llc_snap_hdr {
064:
065: __u8 dsap;
066: __u8 ssap;
067: __u8 ui;
068: __u8 org[3];
069: __u8 type[2];
070: };
071:
072:
073: #define TLV_MPOA_DEVICE_TYPE 0x00a03e2a
074:
075:
076: #define NON_MPOA 0
077: #define MPS 1
078: #define MPC 2
079: #define MPS_AND_MPC 3
080:
081:
082:
083:
084: #define MPC_P1 10
085: #define MPC_P2 1
086: #define MPC_P3 0
087: #define MPC_P4 5
088: #define MPC_P5 40
089: #define MPC_P6 160
090: #define HOLDING_TIME_DEFAULT 1200
091:
092:
093:
094: #define MPC_C1 2
095: #define MPC_C2 60
096:
097:
098:
099: #define SND_MPOA_RES_RQST 201
100: #define SET_MPS_CTRL_ADDR 202
101: #define SND_MPOA_RES_RTRY 203
102: #define STOP_KEEP_ALIVE_SM 204
103: #define EGRESS_ENTRY_REMOVED 205
104: #define SND_EGRESS_PURGE 206
105: #define DIE 207
106: #define DATA_PLANE_PURGE 208
107: #define OPEN_INGRESS_SVC 209
108:
109:
110:
111: #define MPOA_TRIGGER_RCVD 101
112: #define MPOA_RES_REPLY_RCVD 102
113: #define INGRESS_PURGE_RCVD 103
114: #define EGRESS_PURGE_RCVD 104
115: #define MPS_DEATH 105
116: #define CACHE_IMPOS_RCVD 106
117: #define SET_MPC_CTRL_ADDR 107
118: #define SET_MPS_MAC_ADDR 108
119: #define CLEAN_UP_AND_EXIT 109
120: #define SET_MPC_PARAMS 110
121:
122:
123:
124: #define RELOAD 301
125:
126: #endif
127:
© Andrew Scott 2006 -
2025,
All Rights Reserved