162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 or Linux-OpenIB
262306a36Sopenharmony_ci/* Copyright (c) 2019 Intel Corporation */
362306a36Sopenharmony_ci#define CREATE_TRACE_POINTS
462306a36Sopenharmony_ci#include "trace.h"
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciconst char *print_ip_addr(struct trace_seq *p, u32 *addr, u16 port, bool ipv4)
762306a36Sopenharmony_ci{
862306a36Sopenharmony_ci	const char *ret = trace_seq_buffer_ptr(p);
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci	if (ipv4) {
1162306a36Sopenharmony_ci		__be32 myaddr = htonl(*addr);
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci		trace_seq_printf(p, "%pI4:%d", &myaddr, htons(port));
1462306a36Sopenharmony_ci	} else {
1562306a36Sopenharmony_ci		trace_seq_printf(p, "%pI6:%d", addr, htons(port));
1662306a36Sopenharmony_ci	}
1762306a36Sopenharmony_ci	trace_seq_putc(p, 0);
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci	return ret;
2062306a36Sopenharmony_ci}
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciconst char *parse_iw_event_type(enum iw_cm_event_type iw_type)
2362306a36Sopenharmony_ci{
2462306a36Sopenharmony_ci	switch (iw_type) {
2562306a36Sopenharmony_ci	case IW_CM_EVENT_CONNECT_REQUEST:
2662306a36Sopenharmony_ci		return "IwRequest";
2762306a36Sopenharmony_ci	case IW_CM_EVENT_CONNECT_REPLY:
2862306a36Sopenharmony_ci		return "IwReply";
2962306a36Sopenharmony_ci	case IW_CM_EVENT_ESTABLISHED:
3062306a36Sopenharmony_ci		return "IwEstablished";
3162306a36Sopenharmony_ci	case IW_CM_EVENT_DISCONNECT:
3262306a36Sopenharmony_ci		return "IwDisconnect";
3362306a36Sopenharmony_ci	case IW_CM_EVENT_CLOSE:
3462306a36Sopenharmony_ci		return "IwClose";
3562306a36Sopenharmony_ci	}
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci	return "Unknown";
3862306a36Sopenharmony_ci}
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ciconst char *parse_cm_event_type(enum irdma_cm_event_type cm_type)
4162306a36Sopenharmony_ci{
4262306a36Sopenharmony_ci	switch (cm_type) {
4362306a36Sopenharmony_ci	case IRDMA_CM_EVENT_ESTABLISHED:
4462306a36Sopenharmony_ci		return "CmEstablished";
4562306a36Sopenharmony_ci	case IRDMA_CM_EVENT_MPA_REQ:
4662306a36Sopenharmony_ci		return "CmMPA_REQ";
4762306a36Sopenharmony_ci	case IRDMA_CM_EVENT_MPA_CONNECT:
4862306a36Sopenharmony_ci		return "CmMPA_CONNECT";
4962306a36Sopenharmony_ci	case IRDMA_CM_EVENT_MPA_ACCEPT:
5062306a36Sopenharmony_ci		return "CmMPA_ACCEPT";
5162306a36Sopenharmony_ci	case IRDMA_CM_EVENT_MPA_REJECT:
5262306a36Sopenharmony_ci		return "CmMPA_REJECT";
5362306a36Sopenharmony_ci	case IRDMA_CM_EVENT_MPA_ESTABLISHED:
5462306a36Sopenharmony_ci		return "CmMPA_ESTABLISHED";
5562306a36Sopenharmony_ci	case IRDMA_CM_EVENT_CONNECTED:
5662306a36Sopenharmony_ci		return "CmConnected";
5762306a36Sopenharmony_ci	case IRDMA_CM_EVENT_RESET:
5862306a36Sopenharmony_ci		return "CmReset";
5962306a36Sopenharmony_ci	case IRDMA_CM_EVENT_ABORTED:
6062306a36Sopenharmony_ci		return "CmAborted";
6162306a36Sopenharmony_ci	case IRDMA_CM_EVENT_UNKNOWN:
6262306a36Sopenharmony_ci		return "none";
6362306a36Sopenharmony_ci	}
6462306a36Sopenharmony_ci	return "Unknown";
6562306a36Sopenharmony_ci}
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ciconst char *parse_cm_state(enum irdma_cm_node_state state)
6862306a36Sopenharmony_ci{
6962306a36Sopenharmony_ci	switch (state) {
7062306a36Sopenharmony_ci	case IRDMA_CM_STATE_UNKNOWN:
7162306a36Sopenharmony_ci		return "UNKNOWN";
7262306a36Sopenharmony_ci	case IRDMA_CM_STATE_INITED:
7362306a36Sopenharmony_ci		return "INITED";
7462306a36Sopenharmony_ci	case IRDMA_CM_STATE_LISTENING:
7562306a36Sopenharmony_ci		return "LISTENING";
7662306a36Sopenharmony_ci	case IRDMA_CM_STATE_SYN_RCVD:
7762306a36Sopenharmony_ci		return "SYN_RCVD";
7862306a36Sopenharmony_ci	case IRDMA_CM_STATE_SYN_SENT:
7962306a36Sopenharmony_ci		return "SYN_SENT";
8062306a36Sopenharmony_ci	case IRDMA_CM_STATE_ONE_SIDE_ESTABLISHED:
8162306a36Sopenharmony_ci		return "ONE_SIDE_ESTABLISHED";
8262306a36Sopenharmony_ci	case IRDMA_CM_STATE_ESTABLISHED:
8362306a36Sopenharmony_ci		return "ESTABLISHED";
8462306a36Sopenharmony_ci	case IRDMA_CM_STATE_ACCEPTING:
8562306a36Sopenharmony_ci		return "ACCEPTING";
8662306a36Sopenharmony_ci	case IRDMA_CM_STATE_MPAREQ_SENT:
8762306a36Sopenharmony_ci		return "MPAREQ_SENT";
8862306a36Sopenharmony_ci	case IRDMA_CM_STATE_MPAREQ_RCVD:
8962306a36Sopenharmony_ci		return "MPAREQ_RCVD";
9062306a36Sopenharmony_ci	case IRDMA_CM_STATE_MPAREJ_RCVD:
9162306a36Sopenharmony_ci		return "MPAREJ_RECVD";
9262306a36Sopenharmony_ci	case IRDMA_CM_STATE_OFFLOADED:
9362306a36Sopenharmony_ci		return "OFFLOADED";
9462306a36Sopenharmony_ci	case IRDMA_CM_STATE_FIN_WAIT1:
9562306a36Sopenharmony_ci		return "FIN_WAIT1";
9662306a36Sopenharmony_ci	case IRDMA_CM_STATE_FIN_WAIT2:
9762306a36Sopenharmony_ci		return "FIN_WAIT2";
9862306a36Sopenharmony_ci	case IRDMA_CM_STATE_CLOSE_WAIT:
9962306a36Sopenharmony_ci		return "CLOSE_WAIT";
10062306a36Sopenharmony_ci	case IRDMA_CM_STATE_TIME_WAIT:
10162306a36Sopenharmony_ci		return "TIME_WAIT";
10262306a36Sopenharmony_ci	case IRDMA_CM_STATE_LAST_ACK:
10362306a36Sopenharmony_ci		return "LAST_ACK";
10462306a36Sopenharmony_ci	case IRDMA_CM_STATE_CLOSING:
10562306a36Sopenharmony_ci		return "CLOSING";
10662306a36Sopenharmony_ci	case IRDMA_CM_STATE_LISTENER_DESTROYED:
10762306a36Sopenharmony_ci		return "LISTENER_DESTROYED";
10862306a36Sopenharmony_ci	case IRDMA_CM_STATE_CLOSED:
10962306a36Sopenharmony_ci		return "CLOSED";
11062306a36Sopenharmony_ci	}
11162306a36Sopenharmony_ci	return ("Bad state");
11262306a36Sopenharmony_ci}
113