1
0
This repository has been archived on 2024-07-22. You can view files and clone it, but cannot push or open issues or pull requests.
2024-07-22 01:58:46 -03:00

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 */