X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Ffailsafe%2Ffailsafe_private.h;h=8e9706aef0a804513fb7fa5db17eb2d2378323d4;hb=1e8d75d8059701fd15876416be06064735ec5e87;hp=785a302ade800a62f00ca4342cdfed01e96efed4;hpb=fa7bb47aceac5ed38cd89e2dd7f9bf514d09e57b;p=dpdk.git diff --git a/drivers/net/failsafe/failsafe_private.h b/drivers/net/failsafe/failsafe_private.h index 785a302ade..8e9706aef0 100644 --- a/drivers/net/failsafe/failsafe_private.h +++ b/drivers/net/failsafe/failsafe_private.h @@ -3,8 +3,8 @@ * Copyright 2017 Mellanox Technologies, Ltd */ -#ifndef _RTE_ETH_FAILSAFE_PRIVATE_H_ -#define _RTE_ETH_FAILSAFE_PRIVATE_H_ +#ifndef _ETH_FAILSAFE_PRIVATE_H_ +#define _ETH_FAILSAFE_PRIVATE_H_ #include #include @@ -100,13 +100,15 @@ struct fs_stats { uint64_t timestamp; }; +/* + * Allocated in shared memory. + */ struct sub_device { /* Exhaustive DPDK device description */ struct sub_device *next; struct rte_devargs devargs; - struct rte_bus *bus; - struct rte_device *dev; - struct rte_eth_dev *edev; + struct rte_bus *bus; /* for primary process only. */ + struct rte_device *dev; /* for primary process only. */ uint8_t sid; /* Device state machine */ enum dev_state state; @@ -118,6 +120,8 @@ struct sub_device { char *fd_str; /* fail-safe device backreference */ uint16_t fs_port_id; /* shared between processes */ + /* sub device port id*/ + uint16_t sdev_port_id; /* shared between processes */ /* flag calling for recollection */ volatile unsigned int remove:1; /* flow isolation state */ @@ -139,7 +143,7 @@ struct fs_priv { * subs[0] is the preferred device * any other is just another slave */ - struct sub_device *subs; + struct sub_device *subs; /* shared between processes */ uint8_t subs_head; /* if head == tail, no subs */ uint8_t subs_tail; /* first invalid */ uint8_t subs_tx; /* current emitting device */ @@ -148,12 +152,11 @@ struct fs_priv { TAILQ_HEAD(sub_flows, rte_flow) flow_list; /* current number of mac_addr slots allocated. */ uint32_t nb_mac_addr; - struct ether_addr mac_addrs[FAILSAFE_MAX_ETHADDR]; + struct rte_ether_addr mac_addrs[FAILSAFE_MAX_ETHADDR]; uint32_t mac_addr_pool[FAILSAFE_MAX_ETHADDR]; uint32_t nb_mcast_addr; - struct ether_addr *mcast_addrs; + struct rte_ether_addr *mcast_addrs; /* current capabilities */ - struct rte_eth_dev_info infos; struct rte_eth_dev_owner my_owner; /* Unique owner. */ struct rte_intr_handle intr_handle; /* Port interrupt handle. */ /* @@ -254,11 +257,12 @@ extern int failsafe_mac_from_arg; /* sdev: (struct sub_device *) */ #define ETH(sdev) \ - ((sdev)->edev) + ((sdev)->sdev_port_id == RTE_MAX_ETHPORTS ? \ + NULL : &rte_eth_devices[(sdev)->sdev_port_id]) /* sdev: (struct sub_device *) */ #define PORT_ID(sdev) \ - (ETH(sdev)->data->port_id) + ((sdev)->sdev_port_id) /* sdev: (struct sub_device *) */ #define SUB_ID(sdev) \ @@ -489,4 +493,4 @@ fs_err(struct sub_device *sdev, int err) return rte_errno = 0; return err; } -#endif /* _RTE_ETH_FAILSAFE_PRIVATE_H_ */ +#endif /* _ETH_FAILSAFE_PRIVATE_H_ */