2 * Copyright (c) 2015 Mellanox Technologies. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
13 * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS `AS IS' AND
14 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
17 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 #define TLRO_MAX_HEADER 64 /* bytes */
37 struct tlro_mbuf_data {
56 uint32_t tcp_ts_reply;
59 uint8_t buf_length; /* in 32-bit words */
60 uint64_t buf[TLRO_MAX_HEADER / 8];
63 struct tlro_mbuf_ptr {
64 struct tlro_mbuf_data *data;
67 /* NB: This is part of driver structs */
70 struct tlro_mbuf_ptr *mbuf;
78 int tcp_tlro_init(struct tlro_ctrl *, struct ifnet *, int);
79 void tcp_tlro_free(struct tlro_ctrl *);
80 void tcp_tlro_flush(struct tlro_ctrl *, int);
81 void tcp_tlro_rx(struct tlro_ctrl *, struct mbuf *);
83 #endif /* _TCP_TLRO_H_ */