X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fudp%2Fudp.h;h=5ff613b568af45373f1eeebd3d8ad51ccf89cac3;hb=f9b5dcf338b4631f6e26982d6c69d7ee06ada4de;hp=6d75b2842f0c818ba51aef0ce5b8f923ed8b503c;hpb=2c49ffeb251d4eb11368ca8f866020e317ac09fb;p=vpp.git diff --git a/src/vnet/udp/udp.h b/src/vnet/udp/udp.h index 6d75b2842f0..5ff613b568a 100644 --- a/src/vnet/udp/udp.h +++ b/src/vnet/udp/udp.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 Cisco and/or its affiliates. + * Copyright (c) 2017-2019 Cisco and/or its affiliates. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: @@ -34,13 +34,20 @@ typedef enum UDP_N_ERROR, } udp_error_t; +typedef enum +{ + UDP_CONN_F_CONNECTED = 1 << 0, /**< connected mode */ + UDP_CONN_F_OWNS_PORT = 1 << 1, /**< port belong to conn (UDPC) */ + UDP_CONN_F_CLOSING = 1 << 2, /**< conn closed with data */ +} udp_conn_flags_t; + typedef struct { /** Required for pool_get_aligned */ CLIB_CACHE_LINE_ALIGN_MARK (cacheline0); transport_connection_t connection; /**< must be first */ clib_spinlock_t rx_lock; /**< rx fifo lock */ - u8 is_connected; /**< connected mode */ + u8 flags; /**< connection flags */ } udp_connection_t; #define foreach_udp4_dst_port \ @@ -234,6 +241,7 @@ udp_connection_clone_safe (u32 connection_index, u32 thread_index) udp_pool_remove_peeker (thread_index); new_c->c_thread_index = current_thread_index; new_c->c_c_index = udp_connection_index (new_c); + new_c->c_fib_index = old_c->c_fib_index; return new_c; }