net: tcp2: Refactor tcp_pkt_alloc()
In order to fix the line tracking of the TCP packet allocation with the test protocol enabled, refactor tcp_pkt_alloc(), so the line of the allocation can be tracked properly. Signed-off-by: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
This commit is contained in:
parent
b7897d5aab
commit
ccb5a01fc1
2 changed files with 20 additions and 21 deletions
|
@ -539,28 +539,13 @@ static int ip_header_add(struct tcp *conn, struct net_pkt *pkt)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
static struct net_pkt *tcp_pkt_alloc(struct net_if *iface,
|
||||
sa_family_t family, size_t len)
|
||||
{
|
||||
struct net_pkt *pkt;
|
||||
|
||||
pkt = net_pkt_alloc_with_buffer(iface, len, family,
|
||||
IPPROTO_TCP, K_NO_WAIT);
|
||||
|
||||
#if IS_ENABLED(CONFIG_NET_TEST_PROTOCOL)
|
||||
tp_pkt_alloc(pkt);
|
||||
#endif
|
||||
return pkt;
|
||||
}
|
||||
|
||||
static void tcp_out(struct tcp *conn, u8_t flags, ...)
|
||||
{
|
||||
struct net_pkt *pkt;
|
||||
size_t len = 0;
|
||||
int r;
|
||||
|
||||
pkt = tcp_pkt_alloc(conn->iface, net_context_get_family(conn->context),
|
||||
sizeof(struct tcphdr));
|
||||
pkt = tcp_pkt_alloc(conn, sizeof(struct tcphdr));
|
||||
if (!pkt) {
|
||||
goto fail;
|
||||
}
|
||||
|
@ -580,8 +565,6 @@ static void tcp_out(struct tcp *conn, u8_t flags, ...)
|
|||
tcp_pkt_unref(data_pkt);
|
||||
}
|
||||
|
||||
pkt->iface = conn->iface;
|
||||
|
||||
r = ip_header_add(conn, pkt);
|
||||
if (r < 0) {
|
||||
goto fail;
|
||||
|
@ -1494,8 +1477,7 @@ enum net_verdict tp_input(struct net_conn *net_conn,
|
|||
{
|
||||
struct net_pkt *data_pkt;
|
||||
|
||||
data_pkt = tcp_pkt_alloc(pkt->iface,
|
||||
pkt->family, len);
|
||||
data_pkt = tcp_pkt_alloc(conn, len);
|
||||
net_pkt_write(data_pkt, buf, len);
|
||||
net_pkt_cursor_init(data_pkt);
|
||||
net_tcp_queue_data(conn->context, data_pkt);
|
||||
|
|
|
@ -33,10 +33,27 @@
|
|||
#endif
|
||||
|
||||
#if IS_ENABLED(CONFIG_NET_TEST_PROTOCOL)
|
||||
#define tp_pkt_alloc(_pkt) tp_pkt_alloc(_pkt, tp_basename(__FILE__), __LINE__)
|
||||
#define tcp_pkt_alloc(_conn, _len) \
|
||||
({ \
|
||||
sa_family_t _family = net_context_get_family((_conn)->context); \
|
||||
struct net_pkt *_pkt = net_pkt_alloc_with_buffer((_conn)->iface,\
|
||||
(_len), \
|
||||
_family, \
|
||||
IPPROTO_TCP, \
|
||||
K_NO_WAIT); \
|
||||
\
|
||||
tp_pkt_alloc(_pkt, tp_basename(__FILE__), __LINE__); \
|
||||
\
|
||||
_pkt; \
|
||||
})
|
||||
#define tcp_pkt_clone(_pkt) tp_pkt_clone(_pkt, tp_basename(__FILE__), __LINE__)
|
||||
#define tcp_pkt_unref(_pkt) tp_pkt_unref(_pkt, tp_basename(__FILE__), __LINE__)
|
||||
#else
|
||||
#define tcp_pkt_alloc(_conn, _len) \
|
||||
net_pkt_alloc_with_buffer((_conn)->iface, (_len), \
|
||||
net_context_get_family((_conn)->context), \
|
||||
IPPROTO_TCP, K_NO_WAIT)
|
||||
|
||||
#define tcp_pkt_clone(_pkt) net_pkt_clone(_pkt, K_NO_WAIT)
|
||||
#define tcp_pkt_unref(_pkt) net_pkt_unref(_pkt)
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue