91 lines
2.8 KiB
C
Executable File
91 lines
2.8 KiB
C
Executable File
/*
|
|
* Marko Kiiskila carnil@cs.tut.fi
|
|
*
|
|
* Copyright (c) 1996
|
|
* Tampere University of Technology - Telecommunications Laboratory
|
|
* All rights reserved.
|
|
*
|
|
* Permission to use, copy, modify and distribute this
|
|
* software and its documentation is hereby granted,
|
|
* provided that both the copyright notice and this
|
|
* permission notice appear in all copies of the software,
|
|
* derivative works or modified versions, and any portions
|
|
* thereof, that both notices appear in supporting
|
|
* documentation, and that the use of this software is
|
|
* acknowledged in any publications resulting from using
|
|
* the software.
|
|
*
|
|
* TUT ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
|
|
* CONDITION AND DISCLAIMS ANY LIABILITY OF ANY KIND FOR
|
|
* ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS
|
|
* SOFTWARE.
|
|
*
|
|
*/
|
|
|
|
/* Copyright (C) 1999 Heikki Vatiainen hessu@cs.tut.fi */
|
|
|
|
#ifndef CONN_H
|
|
#define CONN_H
|
|
|
|
typedef struct _conn_t_ {
|
|
int fd; /* Socket connected to this connection */
|
|
int status; /* Connection status */
|
|
int type; /* We made, they made, listen socket */
|
|
int codepoint; /* One of the below, MCAST_CONN etc. */
|
|
unsigned char atm_address[ATM_ESA_LEN];
|
|
/* Destination address, not in listen or
|
|
kernel sockets */
|
|
struct _conn_t_ *next;
|
|
struct _conn_t_ *previous;
|
|
} Conn_t;
|
|
|
|
void close_connections(void);
|
|
void init_conn_params(struct atm_sap *sap, struct atm_qos *qos,
|
|
uint16_t blli_codepoint);
|
|
int create_data_svc(unsigned char *atm_addr, int codepoint);
|
|
Conn_t *setup_svc(struct sockaddr_atmsvc *dst_addr,
|
|
struct sockaddr_atmsvc *listen_addr,
|
|
struct atm_sap *sap, struct atm_qos *qos);
|
|
int create_data_listen(void);
|
|
Conn_t *create_listensocket(struct sockaddr_atmsvc *listen_addr,
|
|
struct atm_sap *sap, struct atm_qos *qos);
|
|
Conn_t *accept_conn(Conn_t *conn);
|
|
int close_connection(Conn_t *conn);
|
|
int check_connections(fd_set *fds);
|
|
int complete_connections(fd_set *fds);
|
|
|
|
int send_frame(Conn_t *conn, void *frame, int length);
|
|
int recv_frame(Conn_t *conn, void *buff, int length);
|
|
|
|
void conn_get_fds(fd_set *fds);
|
|
void conn_get_connecting_fds(fd_set *fds);
|
|
|
|
int conn_set_kernel_socket(int fd);
|
|
void random_delay(void);
|
|
|
|
int maxmtu2itfmtu(uint8_t mtu);
|
|
|
|
/*
|
|
* Connection types for BLLI codepoints.
|
|
*/
|
|
#define CONTROL_CONN 1
|
|
#define DATA_DIRECT_CONN 2
|
|
#define MCAST_CONN 4
|
|
|
|
#define DATA_DIRECT_8023 2
|
|
#define DATA_DIRECT_8025 3
|
|
#define MCAST_CONN_8023 4
|
|
#define MCAST_CONN_8025 5
|
|
|
|
/*
|
|
* MTU sizes
|
|
*/
|
|
#define MTU_UNSPEC 0
|
|
#define MTU_1516 1
|
|
#define MTU_1580 5 /* LANEv2 */
|
|
#define MTU_4544 2
|
|
#define MTU_9234 3
|
|
#define MTU_18190 4
|
|
|
|
#endif /* CONN_H */
|