130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* atm_tcp.h - Driver-specific declarations of the ATMTCP driver (for use by 230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng driver-specific utilities) */ 330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Written 1997-2000 by Werner Almesberger, EPFL LRC/ICA */ 530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _UAPILINUX_ATM_TCP_H 830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _UAPILINUX_ATM_TCP_H 930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/atmapi.h> 1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/atm.h> 1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/atmioc.h> 1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/types.h> 1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * All values in struct atmtcp_hdr are in network byte order 1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2030692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct atmtcp_hdr { 2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u16 vpi; 2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u16 vci; 2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 length; /* ... of data part */ 2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * All values in struct atmtcp_command are in host byte order 2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ATMTCP_HDR_MAGIC (~0) /* this length indicates a command */ 3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ATMTCP_CTRL_OPEN 1 /* request/reply */ 3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ATMTCP_CTRL_CLOSE 2 /* request/reply */ 3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 3430692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct atmtcp_control { 3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng struct atmtcp_hdr hdr; /* must be first */ 3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int type; /* message type; both directions */ 3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng atm_kptr_t vcc; /* both directions */ 3830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng struct sockaddr_atmpvc addr; /* suggested value from kernel */ 3930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng struct atm_qos qos; /* both directions */ 4030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int result; /* to kernel only */ 4130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng} __ATM_API_ALIGN; 4230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 4330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 4430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Field usage: 4530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Messge type dir. hdr.v?i type addr qos vcc result 4630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * ----------- ---- ------- ---- ---- --- --- ------ 4730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * OPEN K->D Y Y Y Y Y 0 4830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * OPEN D->K - Y Y Y Y Y 4930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * CLOSE K->D - - Y - Y 0 5030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * CLOSE D->K - - - - Y Y 5130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 5230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 5330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SIOCSIFATMTCP _IO('a',ATMIOC_ITF) /* set ATMTCP mode */ 5430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ATMTCP_CREATE _IO('a',ATMIOC_ITF+14) /* create persistent ATMTCP 5530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng interface */ 5630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ATMTCP_REMOVE _IO('a',ATMIOC_ITF+15) /* destroy persistent ATMTCP 5730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng interface */ 5830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 5930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 6030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 6130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* _UAPILINUX_ATM_TCP_H */ 62