xref: /dpdk/drivers/bus/dpaa/include/netcfg.h (revision 68a03efeed657e6e05f281479b33b51102797e15)
1 /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
2  *
3  * Copyright 2010-2012 Freescale Semiconductor, Inc.
4  * All rights reserved.
5  *
6  */
7 
8 #ifndef __NETCFG_H
9 #define __NETCFG_H
10 
11 #include <fman.h>
12 
13 /* Configuration information related to a specific ethernet port */
14 struct fm_eth_port_cfg {
15 	/**< A list of PCD FQ ranges, obtained from FMC configuration */
16 	struct list_head *list;
17 	/**< The "Rx default" FQID, obtained from FMC configuration */
18 	uint32_t rx_def;
19 	/**< Other interface details are in the fman driver interface */
20 	struct fman_if *fman_if;
21 };
22 
23 struct netcfg_info {
24 	uint8_t num_ethports;
25 	/**< Number of ports */
26 	struct fm_eth_port_cfg port_cfg[0];
27 	/**< Variable structure array of size num_ethports */
28 };
29 
30 struct interface_info {
31 	char *name;
32 	struct rte_ether_addr mac_addr;
33 	struct rte_ether_addr peer_mac;
34 	int mac_present;
35 	int fman_enabled_mac_interface;
36 };
37 
38 struct netcfg_interface {
39 	uint8_t numof_netcfg_interface;
40 	uint8_t numof_fman_enabled_macless;
41 	struct interface_info interface_info[0];
42 };
43 
44 /* pcd_file: FMC netpcd XML ("policy") file, that contains PCD information.
45  * cfg_file: FMC config XML file
46  * Returns the configuration information in newly allocated memory.
47  */
48 __rte_internal
49 struct netcfg_info *netcfg_acquire(void);
50 
51 /* cfg_ptr: configuration information pointer.
52  * Frees the resources allocated by the configuration layer.
53  */
54 __rte_internal
55 void netcfg_release(struct netcfg_info *cfg_ptr);
56 
57 #ifdef RTE_LIBRTE_DPAA_DEBUG_DRIVER
58 /* cfg_ptr: configuration information pointer.
59  * This function dumps configuration data to stdout.
60  */
61 void dump_netcfg(struct netcfg_info *cfg_ptr);
62 #endif
63 
64 #endif /* __NETCFG_H */
65