FD.io VPP
v17.10-9-gd594711
Vector Packet Processing
Main Page
Related Pages
Modules
Data Structures
Source
Files
Symbols
transport.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2016 Cisco and/or its affiliates.
3
* Licensed under the Apache License, Version 2.0 (the "License");
4
* you may not use this file except in compliance with the License.
5
* You may obtain a copy of the License at:
6
*
7
* http://www.apache.org/licenses/LICENSE-2.0
8
*
9
* Unless required by applicable law or agreed to in writing, software
10
* distributed under the License is distributed on an "AS IS" BASIS,
11
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
* See the License for the specific language governing permissions and
13
* limitations under the License.
14
*/
15
16
#ifndef VNET_VNET_URI_TRANSPORT_H_
17
#define VNET_VNET_URI_TRANSPORT_H_
18
19
#include <
vnet/vnet.h
>
20
#include <
vnet/ip/ip.h
>
21
#include <
vppinfra/bihash_16_8.h
>
22
#include <
vppinfra/bihash_48_8.h
>
23
#include <
vnet/tcp/tcp_debug.h
>
24
25
/*
26
* Protocol independent transport properties associated to a session
27
*/
28
typedef
struct
_transport_connection
29
{
30
ip46_address_t rmt_ip;
/**< Remote IP */
31
ip46_address_t lcl_ip;
/**< Local IP */
32
u16
lcl_port;
/**< Local port */
33
u16
rmt_port;
/**< Remote port */
34
u8
transport_proto;
/**< Protocol id */
35
u8
is_ip4;
/**< Flag if IP4 connection */
36
u32
vrf;
/**< FIB table id */
37
38
u32
s_index;
/**< Parent session index */
39
u32
c_index;
/**< Connection index in transport pool */
40
u32
thread_index;
/**< Worker-thread index */
41
42
fib_node_index_t
rmt_fei;
/**< FIB entry index for rmt */
43
dpo_id_t
rmt_dpo;
/**< Forwarding DPO for rmt */
44
45
#if TRANSPORT_DEBUG
46
elog_track_t
elog_track
;
/**< Event logging */
47
u32
cc_stat_tstamp;
/**< CC stats timestamp */
48
#endif
49
50
/** Macros for 'derived classes' where base is named "connection" */
51
#define c_lcl_ip connection.lcl_ip
52
#define c_rmt_ip connection.rmt_ip
53
#define c_lcl_ip4 connection.lcl_ip.ip4
54
#define c_rmt_ip4 connection.rmt_ip.ip4
55
#define c_lcl_ip6 connection.lcl_ip.ip6
56
#define c_rmt_ip6 connection.rmt_ip.ip6
57
#define c_lcl_port connection.lcl_port
58
#define c_rmt_port connection.rmt_port
59
#define c_transport_proto connection.transport_proto
60
#define c_vrf connection.vrf
61
#define c_state connection.state
62
#define c_s_index connection.s_index
63
#define c_c_index connection.c_index
64
#define c_is_ip4 connection.is_ip4
65
#define c_thread_index connection.thread_index
66
#define c_elog_track connection.elog_track
67
#define c_cc_stat_tstamp connection.cc_stat_tstamp
68
#define c_rmt_fei connection.rmt_fei
69
#define c_rmt_dpo connection.rmt_dpo
70
}
transport_connection_t
;
71
72
typedef
enum
_transport_proto
73
{
74
TRANSPORT_PROTO_TCP
,
75
TRANSPORT_PROTO_UDP
76
}
transport_proto_t
;
77
78
typedef
struct
_transport_endpoint
79
{
80
ip46_address_t ip;
/** ip address */
81
u16
port;
/** port in net order */
82
u8
is_ip4;
/** 1 if ip4 */
83
u32
vrf;
/** fib table the endpoint is associated with */
84
}
transport_endpoint_t
;
85
86
#endif
/* VNET_VNET_URI_TRANSPORT_H_ */
87
88
/*
89
* fd.io coding-style-patch-verification: ON
90
*
91
* Local Variables:
92
* eval: (c-set-style "gnu")
93
* End:
94
*/
bihash_48_8.h
transport_connection_t
struct _transport_connection transport_connection_t
ip.h
TRANSPORT_PROTO_TCP
Definition:
transport.h:74
dpo_id_t_
The identity of a DPO is a combination of its type and its instance number/index of objects of that t...
Definition:
dpo.h:150
vnet.h
elog_track_t
Definition:
elog.h:112
fib_node_index_t
u32 fib_node_index_t
A typedef of a node index.
Definition:
fib_types.h:28
u32
unsigned int u32
Definition:
types.h:88
u16
unsigned short u16
Definition:
types.h:57
TRANSPORT_PROTO_UDP
Definition:
transport.h:75
transport_proto_t
enum _transport_proto transport_proto_t
u8
unsigned char u8
Definition:
types.h:56
bihash_16_8.h
transport_endpoint_t
struct _transport_endpoint transport_endpoint_t
elog_track
static void elog_track(elog_main_t *em, elog_event_type_t *type, elog_track_t *track, u32 data)
Log a single-datum event to a specific track, non-inline version.
Definition:
elog.h:395
tcp_debug.h
src
vnet
session
transport.h
Generated on Tue Nov 14 2017 05:38:32 for FD.io VPP by
1.8.11