File: | home/bhubbard/working/src/ceph/src/spdk/dpdk/lib/librte_mbuf/rte_mbuf_ptype.c |
Warning: | line 204, column 3 Value stored to 'buf' is never read |
[?] Use j/k keys for keyboard navigation
1 | /* SPDX-License-Identifier: BSD-3-Clause |
2 | * Copyright 2016 6WIND S.A. |
3 | */ |
4 | |
5 | #include <stdint.h> |
6 | |
7 | #include <rte_mbuf.h> |
8 | #include <rte_mbuf_ptype.h> |
9 | |
10 | /* get the name of the l2 packet type */ |
11 | const char *rte_get_ptype_l2_name(uint32_t ptype) |
12 | { |
13 | switch (ptype & RTE_PTYPE_L2_MASK0x0000000f) { |
14 | case RTE_PTYPE_L2_ETHER0x00000001: return "L2_ETHER"; |
15 | case RTE_PTYPE_L2_ETHER_TIMESYNC0x00000002: return "L2_ETHER_TIMESYNC"; |
16 | case RTE_PTYPE_L2_ETHER_ARP0x00000003: return "L2_ETHER_ARP"; |
17 | case RTE_PTYPE_L2_ETHER_LLDP0x00000004: return "L2_ETHER_LLDP"; |
18 | case RTE_PTYPE_L2_ETHER_NSH0x00000005: return "L2_ETHER_NSH"; |
19 | case RTE_PTYPE_L2_ETHER_VLAN0x00000006: return "L2_ETHER_VLAN"; |
20 | case RTE_PTYPE_L2_ETHER_QINQ0x00000007: return "L2_ETHER_QINQ"; |
21 | case RTE_PTYPE_L2_ETHER_PPPOE0x00000008: return "L2_ETHER_PPPOE"; |
22 | case RTE_PTYPE_L2_ETHER_FCOE0x00000009: return "L2_ETHER_FCOE"; |
23 | case RTE_PTYPE_L2_ETHER_MPLS0x0000000a: return "L2_ETHER_MPLS"; |
24 | default: return "L2_UNKNOWN"; |
25 | } |
26 | } |
27 | |
28 | /* get the name of the l3 packet type */ |
29 | const char *rte_get_ptype_l3_name(uint32_t ptype) |
30 | { |
31 | switch (ptype & RTE_PTYPE_L3_MASK0x000000f0) { |
32 | case RTE_PTYPE_L3_IPV40x00000010: return "L3_IPV4"; |
33 | case RTE_PTYPE_L3_IPV4_EXT0x00000030: return "L3_IPV4_EXT"; |
34 | case RTE_PTYPE_L3_IPV60x00000040: return "L3_IPV6"; |
35 | case RTE_PTYPE_L3_IPV4_EXT_UNKNOWN0x00000090: return "L3_IPV4_EXT_UNKNOWN"; |
36 | case RTE_PTYPE_L3_IPV6_EXT0x000000c0: return "L3_IPV6_EXT"; |
37 | case RTE_PTYPE_L3_IPV6_EXT_UNKNOWN0x000000e0: return "L3_IPV6_EXT_UNKNOWN"; |
38 | default: return "L3_UNKNOWN"; |
39 | } |
40 | } |
41 | |
42 | /* get the name of the l4 packet type */ |
43 | const char *rte_get_ptype_l4_name(uint32_t ptype) |
44 | { |
45 | switch (ptype & RTE_PTYPE_L4_MASK0x00000f00) { |
46 | case RTE_PTYPE_L4_TCP0x00000100: return "L4_TCP"; |
47 | case RTE_PTYPE_L4_UDP0x00000200: return "L4_UDP"; |
48 | case RTE_PTYPE_L4_FRAG0x00000300: return "L4_FRAG"; |
49 | case RTE_PTYPE_L4_SCTP0x00000400: return "L4_SCTP"; |
50 | case RTE_PTYPE_L4_ICMP0x00000500: return "L4_ICMP"; |
51 | case RTE_PTYPE_L4_NONFRAG0x00000600: return "L4_NONFRAG"; |
52 | case RTE_PTYPE_L4_IGMP0x00000700: return "L4_IGMP"; |
53 | default: return "L4_UNKNOWN"; |
54 | } |
55 | } |
56 | |
57 | /* get the name of the tunnel packet type */ |
58 | const char *rte_get_ptype_tunnel_name(uint32_t ptype) |
59 | { |
60 | switch (ptype & RTE_PTYPE_TUNNEL_MASK0x0000f000) { |
61 | case RTE_PTYPE_TUNNEL_IP0x00001000: return "TUNNEL_IP"; |
62 | case RTE_PTYPE_TUNNEL_GRE0x00002000: return "TUNNEL_GRE"; |
63 | case RTE_PTYPE_TUNNEL_VXLAN0x00003000: return "TUNNEL_VXLAN"; |
64 | case RTE_PTYPE_TUNNEL_NVGRE0x00004000: return "TUNNEL_NVGRE"; |
65 | case RTE_PTYPE_TUNNEL_GENEVE0x00005000: return "TUNNEL_GENEVE"; |
66 | case RTE_PTYPE_TUNNEL_GRENAT0x00006000: return "TUNNEL_GRENAT"; |
67 | case RTE_PTYPE_TUNNEL_GTPC0x00007000: return "TUNNEL_GTPC"; |
68 | case RTE_PTYPE_TUNNEL_GTPU0x00008000: return "TUNNEL_GTPU"; |
69 | case RTE_PTYPE_TUNNEL_ESP0x00009000: return "TUNNEL_ESP"; |
70 | case RTE_PTYPE_TUNNEL_L2TP0x0000a000: return "TUNNEL_L2TP"; |
71 | case RTE_PTYPE_TUNNEL_VXLAN_GPE0x0000b000: return "TUNNEL_VXLAN_GPE"; |
72 | case RTE_PTYPE_TUNNEL_MPLS_IN_UDP0x0000d000: return "TUNNEL_MPLS_IN_UDP"; |
73 | case RTE_PTYPE_TUNNEL_MPLS_IN_GRE0x0000c000: return "TUNNEL_MPLS_IN_GRE"; |
74 | default: return "TUNNEL_UNKNOWN"; |
75 | } |
76 | } |
77 | |
78 | /* get the name of the inner_l2 packet type */ |
79 | const char *rte_get_ptype_inner_l2_name(uint32_t ptype) |
80 | { |
81 | switch (ptype & RTE_PTYPE_INNER_L2_MASK0x000f0000) { |
82 | case RTE_PTYPE_INNER_L2_ETHER0x00010000: return "INNER_L2_ETHER"; |
83 | case RTE_PTYPE_INNER_L2_ETHER_VLAN0x00020000: return "INNER_L2_ETHER_VLAN"; |
84 | case RTE_PTYPE_INNER_L2_ETHER_QINQ0x00030000: return "INNER_L2_ETHER_QINQ"; |
85 | default: return "INNER_L2_UNKNOWN"; |
86 | } |
87 | } |
88 | |
89 | /* get the name of the inner_l3 packet type */ |
90 | const char *rte_get_ptype_inner_l3_name(uint32_t ptype) |
91 | { |
92 | switch (ptype & RTE_PTYPE_INNER_L3_MASK0x00f00000) { |
93 | case RTE_PTYPE_INNER_L3_IPV40x00100000: return "INNER_L3_IPV4"; |
94 | case RTE_PTYPE_INNER_L3_IPV4_EXT0x00200000: return "INNER_L3_IPV4_EXT"; |
95 | case RTE_PTYPE_INNER_L3_IPV60x00300000: return "INNER_L3_IPV6"; |
96 | case RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN0x00400000: |
97 | return "INNER_L3_IPV4_EXT_UNKNOWN"; |
98 | case RTE_PTYPE_INNER_L3_IPV6_EXT0x00500000: return "INNER_L3_IPV6_EXT"; |
99 | case RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN0x00600000: |
100 | return "INNER_L3_IPV6_EXT_UNKNOWN"; |
101 | default: return "INNER_L3_UNKNOWN"; |
102 | } |
103 | } |
104 | |
105 | /* get the name of the inner_l4 packet type */ |
106 | const char *rte_get_ptype_inner_l4_name(uint32_t ptype) |
107 | { |
108 | switch (ptype & RTE_PTYPE_INNER_L4_MASK0x0f000000) { |
109 | case RTE_PTYPE_INNER_L4_TCP0x01000000: return "INNER_L4_TCP"; |
110 | case RTE_PTYPE_INNER_L4_UDP0x02000000: return "INNER_L4_UDP"; |
111 | case RTE_PTYPE_INNER_L4_FRAG0x03000000: return "INNER_L4_FRAG"; |
112 | case RTE_PTYPE_INNER_L4_SCTP0x04000000: return "INNER_L4_SCTP"; |
113 | case RTE_PTYPE_INNER_L4_ICMP0x05000000: return "INNER_L4_ICMP"; |
114 | case RTE_PTYPE_INNER_L4_NONFRAG0x06000000: return "INNER_L4_NONFRAG"; |
115 | default: return "INNER_L4_UNKNOWN"; |
116 | } |
117 | } |
118 | |
119 | /* write the packet type name into the buffer */ |
120 | int rte_get_ptype_name(uint32_t ptype, char *buf, size_t buflen) |
121 | { |
122 | int ret; |
123 | |
124 | if (buflen == 0) |
125 | return -1; |
126 | |
127 | buf[0] = '\0'; |
128 | if ((ptype & RTE_PTYPE_ALL_MASK0x0fffffff) == RTE_PTYPE_UNKNOWN0x00000000) { |
129 | ret = snprintf(buf, buflen, "UNKNOWN"); |
130 | if (ret < 0) |
131 | return -1; |
132 | if ((size_t)ret >= buflen) |
133 | return -1; |
134 | return 0; |
135 | } |
136 | |
137 | if ((ptype & RTE_PTYPE_L2_MASK0x0000000f) != 0) { |
138 | ret = snprintf(buf, buflen, "%s ", |
139 | rte_get_ptype_l2_name(ptype)); |
140 | if (ret < 0) |
141 | return -1; |
142 | if ((size_t)ret >= buflen) |
143 | return -1; |
144 | buf += ret; |
145 | buflen -= ret; |
146 | } |
147 | if ((ptype & RTE_PTYPE_L3_MASK0x000000f0) != 0) { |
148 | ret = snprintf(buf, buflen, "%s ", |
149 | rte_get_ptype_l3_name(ptype)); |
150 | if (ret < 0) |
151 | return -1; |
152 | if ((size_t)ret >= buflen) |
153 | return -1; |
154 | buf += ret; |
155 | buflen -= ret; |
156 | } |
157 | if ((ptype & RTE_PTYPE_L4_MASK0x00000f00) != 0) { |
158 | ret = snprintf(buf, buflen, "%s ", |
159 | rte_get_ptype_l4_name(ptype)); |
160 | if (ret < 0) |
161 | return -1; |
162 | if ((size_t)ret >= buflen) |
163 | return -1; |
164 | buf += ret; |
165 | buflen -= ret; |
166 | } |
167 | if ((ptype & RTE_PTYPE_TUNNEL_MASK0x0000f000) != 0) { |
168 | ret = snprintf(buf, buflen, "%s ", |
169 | rte_get_ptype_tunnel_name(ptype)); |
170 | if (ret < 0) |
171 | return -1; |
172 | if ((size_t)ret >= buflen) |
173 | return -1; |
174 | buf += ret; |
175 | buflen -= ret; |
176 | } |
177 | if ((ptype & RTE_PTYPE_INNER_L2_MASK0x000f0000) != 0) { |
178 | ret = snprintf(buf, buflen, "%s ", |
179 | rte_get_ptype_inner_l2_name(ptype)); |
180 | if (ret < 0) |
181 | return -1; |
182 | if ((size_t)ret >= buflen) |
183 | return -1; |
184 | buf += ret; |
185 | buflen -= ret; |
186 | } |
187 | if ((ptype & RTE_PTYPE_INNER_L3_MASK0x00f00000) != 0) { |
188 | ret = snprintf(buf, buflen, "%s ", |
189 | rte_get_ptype_inner_l3_name(ptype)); |
190 | if (ret < 0) |
191 | return -1; |
192 | if ((size_t)ret >= buflen) |
193 | return -1; |
194 | buf += ret; |
195 | buflen -= ret; |
196 | } |
197 | if ((ptype & RTE_PTYPE_INNER_L4_MASK0x0f000000) != 0) { |
198 | ret = snprintf(buf, buflen, "%s ", |
199 | rte_get_ptype_inner_l4_name(ptype)); |
200 | if (ret < 0) |
201 | return -1; |
202 | if ((size_t)ret >= buflen) |
203 | return -1; |
204 | buf += ret; |
Value stored to 'buf' is never read | |
205 | buflen -= ret; |
206 | } |
207 | |
208 | return 0; |
209 | } |