1 /*- 2 * This file is provided under a dual BSD/GPLv2 license. When using or 3 * redistributing this file, you may do so under either license. 4 * 5 * BSD LICENSE 6 * 7 * Copyright 2010-2012 Freescale Semiconductor, Inc. 8 * All rights reserved. 9 * 10 * Redistribution and use in source and binary forms, with or without 11 * modification, are permitted provided that the following conditions are met: 12 * * Redistributions of source code must retain the above copyright 13 * notice, this list of conditions and the following disclaimer. 14 * * Redistributions in binary form must reproduce the above copyright 15 * notice, this list of conditions and the following disclaimer in the 16 * documentation and/or other materials provided with the distribution. 17 * * Neither the name of the above-listed copyright holders nor the 18 * names of any contributors may be used to endorse or promote products 19 * derived from this software without specific prior written permission. 20 * 21 * GPL LICENSE SUMMARY 22 * 23 * ALTERNATIVELY, this software may be distributed under the terms of the 24 * GNU General Public License ("GPL") as published by the Free Software 25 * Foundation, either version 2 of that License or (at your option) any 26 * later version. 27 * 28 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 29 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 30 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 31 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE 32 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 33 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 34 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 35 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 36 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 37 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 * POSSIBILITY OF SUCH DAMAGE. 39 */ 40 41 #ifndef __NETCFG_H 42 #define __NETCFG_H 43 44 #include <fman.h> 45 #include <argp.h> 46 47 /* Configuration information related to a specific ethernet port */ 48 struct fm_eth_port_cfg { 49 /**< A list of PCD FQ ranges, obtained from FMC configuration */ 50 struct list_head *list; 51 /**< The "Rx default" FQID, obtained from FMC configuration */ 52 uint32_t rx_def; 53 /**< Other interface details are in the fman driver interface */ 54 struct fman_if *fman_if; 55 }; 56 57 struct netcfg_info { 58 uint8_t num_ethports; 59 /**< Number of ports */ 60 struct fm_eth_port_cfg port_cfg[0]; 61 /**< Variable structure array of size num_ethports */ 62 }; 63 64 struct interface_info { 65 char *name; 66 struct ether_addr mac_addr; 67 struct ether_addr peer_mac; 68 int mac_present; 69 int fman_enabled_mac_interface; 70 }; 71 72 struct netcfg_interface { 73 uint8_t numof_netcfg_interface; 74 uint8_t numof_fman_enabled_macless; 75 struct interface_info interface_info[0]; 76 }; 77 78 /* pcd_file: FMC netpcd XML ("policy") file, that contains PCD information. 79 * cfg_file: FMC config XML file 80 * Returns the configuration information in newly allocated memory. 81 */ 82 struct netcfg_info *netcfg_acquire(void); 83 84 /* cfg_ptr: configuration information pointer. 85 * Frees the resources allocated by the configuration layer. 86 */ 87 void netcfg_release(struct netcfg_info *cfg_ptr); 88 89 #ifdef RTE_LIBRTE_DPAA_DEBUG_DRIVER 90 /* cfg_ptr: configuration information pointer. 91 * This function dumps configuration data to stdout. 92 */ 93 void dump_netcfg(struct netcfg_info *cfg_ptr); 94 #endif 95 96 #endif /* __NETCFG_H */ 97