aboutsummaryrefslogtreecommitdiffstats
path: root/lib/libtle_l4p/stream_table.h
diff options
context:
space:
mode:
authorKonstantin Ananyev <konstantin.ananyev@intel.com>2017-07-27 12:00:57 +0100
committerKonstantin Ananyev <konstantin.ananyev@intel.com>2017-07-27 20:24:53 +0100
commit7e18fa1bf263822c46d7431a911b41d6377d5f69 (patch)
treeddf5ce05545419d6d77bb9d8b3c48fc90d221a7a /lib/libtle_l4p/stream_table.h
parente151ee29d02d7802fab9e32b50ced54fd8d64160 (diff)
- Introduce tle_tcp_stream_readv() and tle_tcp_stream_writev().
- Introduce flags for tle_ctx_param. - Introduce TLE_CTX_FLAG_ST - indicates that given ctx will be used by single thread only. - Introduce new parameters for tcp context: timewait - allows user to configure max timeout in TCP_TIMEWAIT state. icw - allows user to specify desired initial congestion window for new connections. -Few optimisations: cache tx.ol_flags inside tle destination. calcualte and cache inside ctx cycles_to_ms shift value. reorder restoring SYN opts and filling TCB a bit. Change-Id: Ie05087783b3b7f1e4ce99d3555bc5bd098f83fe0 Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
Diffstat (limited to 'lib/libtle_l4p/stream_table.h')
-rw-r--r--lib/libtle_l4p/stream_table.h56
1 files changed, 7 insertions, 49 deletions
diff --git a/lib/libtle_l4p/stream_table.h b/lib/libtle_l4p/stream_table.h
index 29f1f63..033c306 100644
--- a/lib/libtle_l4p/stream_table.h
+++ b/lib/libtle_l4p/stream_table.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016 Intel Corporation.
+ * Copyright (c) 2016-2017 Intel Corporation.
* 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:
@@ -23,9 +23,6 @@
extern "C" {
#endif
-/* current stbl entry contains packet. */
-#define STE_PKT 1
-
struct stbl_entry {
void *data;
};
@@ -138,18 +135,6 @@ stbl_find_entry(struct stbl *st, const union pkt_info *pi)
return ht->ent + rc;
}
-static inline int
-stbl_data_pkt(const void *p)
-{
- return ((uintptr_t)p & STE_PKT);
-}
-
-static inline void *
-stbl_get_pkt(const struct stbl_entry *se)
-{
- return (void *)((uintptr_t)se->data ^ STE_PKT);
-}
-
static inline void *
stbl_find_data(struct stbl *st, const union pkt_info *pi)
{
@@ -159,35 +144,6 @@ stbl_find_data(struct stbl *st, const union pkt_info *pi)
return (ent == NULL) ? NULL : ent->data;
}
-static inline void
-stbl_del_pkt(struct stbl *st, struct stbl_entry *se, const union pkt_info *pi)
-{
- uint32_t type;
- struct stbl_key k;
-
- se->data = NULL;
-
- type = pi->tf.type;
- stbl_pkt_fill_key(&k, pi, type);
- rte_hash_del_key(st->ht[type].t, &k);
-}
-
-static inline void
-stbl_del_pkt_lock(struct stbl *st, struct stbl_entry *se,
- const union pkt_info *pi)
-{
- uint32_t type;
- struct stbl_key k;
-
- se->data = NULL;
-
- type = pi->tf.type;
- stbl_pkt_fill_key(&k, pi, type);
- stbl_lock(st, type);
- rte_hash_del_key(st->ht[type].t, &k);
- stbl_unlock(st, type);
-}
-
#include "tcp_stream.h"
static inline void
@@ -235,8 +191,8 @@ stbl_add_stream_lock(struct stbl *st, const struct tle_tcp_stream *s)
}
static inline void
-stbl_del_stream_lock(struct stbl *st, struct stbl_entry *se,
- const struct tle_tcp_stream *s)
+stbl_del_stream(struct stbl *st, struct stbl_entry *se,
+ const struct tle_tcp_stream *s, uint32_t lock)
{
uint32_t type;
struct stbl_key k;
@@ -248,9 +204,11 @@ stbl_del_stream_lock(struct stbl *st, struct stbl_entry *se,
type = s->s.type;
stbl_stream_fill_key(&k, &s->s, type);
- stbl_lock(st, type);
+ if (lock != 0)
+ stbl_lock(st, type);
rte_hash_del_key(st->ht[type].t, &k);
- stbl_unlock(st, type);
+ if (lock != 0)
+ stbl_unlock(st, type);
}
#ifdef __cplusplus