MCPcopy Create free account
hub / github.com/F-Stack/f-stack / sff_port_module_eeprom_parse

Function sff_port_module_eeprom_parse

dpdk/lib/ethdev/sff_telemetry.c:14–92  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

12#include <telemetry_data.h>
13
14static void
15sff_port_module_eeprom_parse(uint16_t port_id, struct rte_tel_data *d)
16{
17 struct rte_eth_dev_module_info minfo;
18 struct rte_dev_eeprom_info einfo;
19 int ret;
20
21 if (d == NULL) {
22 RTE_ETHDEV_LOG(ERR, "Dict invalid\n");
23 return;
24 }
25
26 ret = rte_eth_dev_get_module_info(port_id, &minfo);
27 if (ret != 0) {
28 switch (ret) {
29 case -ENODEV:
30 RTE_ETHDEV_LOG(ERR, "Port index %d invalid\n", port_id);
31 break;
32 case -ENOTSUP:
33 RTE_ETHDEV_LOG(ERR, "Operation not supported by device\n");
34 break;
35 case -EIO:
36 RTE_ETHDEV_LOG(ERR, "Device is removed\n");
37 break;
38 default:
39 RTE_ETHDEV_LOG(ERR, "Unable to get port module info, %d\n", ret);
40 break;
41 }
42 return;
43 }
44
45 einfo.offset = 0;
46 einfo.length = minfo.eeprom_len;
47 einfo.data = calloc(1, minfo.eeprom_len);
48 if (einfo.data == NULL) {
49 RTE_ETHDEV_LOG(ERR, "Allocation of port %u EEPROM data failed\n", port_id);
50 return;
51 }
52
53 ret = rte_eth_dev_get_module_eeprom(port_id, &einfo);
54 if (ret != 0) {
55 switch (ret) {
56 case -ENODEV:
57 RTE_ETHDEV_LOG(ERR, "Port index %d invalid\n", port_id);
58 break;
59 case -ENOTSUP:
60 RTE_ETHDEV_LOG(ERR, "Operation not supported by device\n");
61 break;
62 case -EIO:
63 RTE_ETHDEV_LOG(ERR, "Device is removed\n");
64 break;
65 default:
66 RTE_ETHDEV_LOG(ERR, "Unable to get port module EEPROM, %d\n", ret);
67 break;
68 }
69 free(einfo.data);
70 return;
71 }

Callers 1

Calls 7

callocFunction · 0.85
sff_8079_show_allFunction · 0.85
sff_8472_show_allFunction · 0.85
sff_8636_show_allFunction · 0.85
freeFunction · 0.50

Tested by

no test coverage detected