162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 262306a36Sopenharmony_ci/* atm_tcp.h - Driver-specific declarations of the ATMTCP driver (for use by 362306a36Sopenharmony_ci driver-specific utilities) */ 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci/* Written 1997-2000 by Werner Almesberger, EPFL LRC/ICA */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#ifndef _UAPILINUX_ATM_TCP_H 962306a36Sopenharmony_ci#define _UAPILINUX_ATM_TCP_H 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#include <linux/atmapi.h> 1262306a36Sopenharmony_ci#include <linux/atm.h> 1362306a36Sopenharmony_ci#include <linux/atmioc.h> 1462306a36Sopenharmony_ci#include <linux/types.h> 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci/* 1862306a36Sopenharmony_ci * All values in struct atmtcp_hdr are in network byte order 1962306a36Sopenharmony_ci */ 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_cistruct atmtcp_hdr { 2262306a36Sopenharmony_ci __u16 vpi; 2362306a36Sopenharmony_ci __u16 vci; 2462306a36Sopenharmony_ci __u32 length; /* ... of data part */ 2562306a36Sopenharmony_ci}; 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci/* 2862306a36Sopenharmony_ci * All values in struct atmtcp_command are in host byte order 2962306a36Sopenharmony_ci */ 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci#define ATMTCP_HDR_MAGIC (~0) /* this length indicates a command */ 3262306a36Sopenharmony_ci#define ATMTCP_CTRL_OPEN 1 /* request/reply */ 3362306a36Sopenharmony_ci#define ATMTCP_CTRL_CLOSE 2 /* request/reply */ 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_cistruct atmtcp_control { 3662306a36Sopenharmony_ci struct atmtcp_hdr hdr; /* must be first */ 3762306a36Sopenharmony_ci int type; /* message type; both directions */ 3862306a36Sopenharmony_ci atm_kptr_t vcc; /* both directions */ 3962306a36Sopenharmony_ci struct sockaddr_atmpvc addr; /* suggested value from kernel */ 4062306a36Sopenharmony_ci struct atm_qos qos; /* both directions */ 4162306a36Sopenharmony_ci int result; /* to kernel only */ 4262306a36Sopenharmony_ci} __ATM_API_ALIGN; 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci/* 4562306a36Sopenharmony_ci * Field usage: 4662306a36Sopenharmony_ci * Messge type dir. hdr.v?i type addr qos vcc result 4762306a36Sopenharmony_ci * ----------- ---- ------- ---- ---- --- --- ------ 4862306a36Sopenharmony_ci * OPEN K->D Y Y Y Y Y 0 4962306a36Sopenharmony_ci * OPEN D->K - Y Y Y Y Y 5062306a36Sopenharmony_ci * CLOSE K->D - - Y - Y 0 5162306a36Sopenharmony_ci * CLOSE D->K - - - - Y Y 5262306a36Sopenharmony_ci */ 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci#define SIOCSIFATMTCP _IO('a',ATMIOC_ITF) /* set ATMTCP mode */ 5562306a36Sopenharmony_ci#define ATMTCP_CREATE _IO('a',ATMIOC_ITF+14) /* create persistent ATMTCP 5662306a36Sopenharmony_ci interface */ 5762306a36Sopenharmony_ci#define ATMTCP_REMOVE _IO('a',ATMIOC_ITF+15) /* destroy persistent ATMTCP 5862306a36Sopenharmony_ci interface */ 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci#endif /* _UAPILINUX_ATM_TCP_H */ 63