#include <net/ip.h>
#include <net/ipv6.h>
#include <net/udp.h>
#include <net/addrconf.h>
#include <net/route.h>
#include <net/ip6_route.h>
#include <net/flow.h>
#include "qedr.h"
#include "qedr_iw_cm.h"
static inline void
qedr_fill_sockaddr4(const struct qed_iwarp_cm_info *cm_info,
struct iw_cm_event *event)
{ … }
static inline void
qedr_fill_sockaddr6(const struct qed_iwarp_cm_info *cm_info,
struct iw_cm_event *event)
{ … }
static void qedr_iw_free_qp(struct kref *ref)
{ … }
static void
qedr_iw_free_ep(struct kref *ref)
{ … }
static void
qedr_iw_mpa_request(void *context, struct qed_iwarp_cm_event_params *params)
{ … }
static void
qedr_iw_issue_event(void *context,
struct qed_iwarp_cm_event_params *params,
enum iw_cm_event_type event_type)
{ … }
static void
qedr_iw_close_event(void *context, struct qed_iwarp_cm_event_params *params)
{ … }
static void
qedr_iw_qp_event(void *context,
struct qed_iwarp_cm_event_params *params,
enum ib_event_type ib_event, char *str)
{ … }
struct qedr_discon_work { … };
static void qedr_iw_disconnect_worker(struct work_struct *work)
{ … }
static void
qedr_iw_disconnect_event(void *context,
struct qed_iwarp_cm_event_params *params)
{ … }
static void
qedr_iw_passive_complete(void *context,
struct qed_iwarp_cm_event_params *params)
{ … }
static void
qedr_iw_active_complete(void *context,
struct qed_iwarp_cm_event_params *params)
{ … }
static int
qedr_iw_mpa_reply(void *context, struct qed_iwarp_cm_event_params *params)
{ … }
static int
qedr_iw_event_handler(void *context, struct qed_iwarp_cm_event_params *params)
{ … }
static u16 qedr_iw_get_vlan_ipv4(struct qedr_dev *dev, u32 *addr)
{ … }
static u16 qedr_iw_get_vlan_ipv6(u32 *addr)
{ … }
static int
qedr_addr4_resolve(struct qedr_dev *dev,
struct sockaddr_in *src_in,
struct sockaddr_in *dst_in, u8 *dst_mac)
{ … }
static int
qedr_addr6_resolve(struct qedr_dev *dev,
struct sockaddr_in6 *src_in,
struct sockaddr_in6 *dst_in, u8 *dst_mac)
{ … }
static struct qedr_qp *qedr_iw_load_qp(struct qedr_dev *dev, u32 qpn)
{ … }
int qedr_iw_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
{ … }
int qedr_iw_create_listen(struct iw_cm_id *cm_id, int backlog)
{ … }
int qedr_iw_destroy_listen(struct iw_cm_id *cm_id)
{ … }
int qedr_iw_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
{ … }
int qedr_iw_reject(struct iw_cm_id *cm_id, const void *pdata, u8 pdata_len)
{ … }
void qedr_iw_qp_add_ref(struct ib_qp *ibqp)
{ … }
void qedr_iw_qp_rem_ref(struct ib_qp *ibqp)
{ … }
struct ib_qp *qedr_iw_get_qp(struct ib_device *ibdev, int qpn)
{ … }