xref: /dpdk/drivers/net/atlantic/rte_pmd_atlantic.c (revision df96fd0d73955bdc7ca3909e772ff2ad903249c6)
1ec0dec44SPavel Belous /* SPDX-License-Identifier: BSD-3-Clause
2ec0dec44SPavel Belous  * Copyright(c) 2018 Aquantia Corporation
3ec0dec44SPavel Belous  */
4ec0dec44SPavel Belous 
5*df96fd0dSBruce Richardson #include <ethdev_driver.h>
6ec0dec44SPavel Belous 
7ec0dec44SPavel Belous #include "rte_pmd_atlantic.h"
8ec0dec44SPavel Belous #include "atl_ethdev.h"
9ec0dec44SPavel Belous 
10ec0dec44SPavel Belous 
11136ab94aSDavid Marchand int
rte_pmd_atl_macsec_enable(uint16_t port,uint8_t encr,uint8_t repl_prot)12ec0dec44SPavel Belous rte_pmd_atl_macsec_enable(uint16_t port,
13ec0dec44SPavel Belous 			  uint8_t encr, uint8_t repl_prot)
14ec0dec44SPavel Belous {
15ec0dec44SPavel Belous 	struct rte_eth_dev *dev;
16ec0dec44SPavel Belous 
17ec0dec44SPavel Belous 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
18ec0dec44SPavel Belous 
19ec0dec44SPavel Belous 	dev = &rte_eth_devices[port];
20ec0dec44SPavel Belous 
21ec0dec44SPavel Belous 	if (!is_atlantic_supported(dev))
22ec0dec44SPavel Belous 		return -ENOTSUP;
23ec0dec44SPavel Belous 
24ec0dec44SPavel Belous 	return atl_macsec_enable(dev, encr, repl_prot);
25ec0dec44SPavel Belous }
26ec0dec44SPavel Belous 
27136ab94aSDavid Marchand int
rte_pmd_atl_macsec_disable(uint16_t port)28ec0dec44SPavel Belous rte_pmd_atl_macsec_disable(uint16_t port)
29ec0dec44SPavel Belous {
30ec0dec44SPavel Belous 	struct rte_eth_dev *dev;
31ec0dec44SPavel Belous 
32ec0dec44SPavel Belous 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
33ec0dec44SPavel Belous 
34ec0dec44SPavel Belous 	dev = &rte_eth_devices[port];
35ec0dec44SPavel Belous 
36ec0dec44SPavel Belous 	if (!is_atlantic_supported(dev))
37ec0dec44SPavel Belous 		return -ENOTSUP;
38ec0dec44SPavel Belous 
39ec0dec44SPavel Belous 	return atl_macsec_disable(dev);
40ec0dec44SPavel Belous }
41ec0dec44SPavel Belous 
42136ab94aSDavid Marchand int
rte_pmd_atl_macsec_config_txsc(uint16_t port,uint8_t * mac)43ec0dec44SPavel Belous rte_pmd_atl_macsec_config_txsc(uint16_t port, uint8_t *mac)
44ec0dec44SPavel Belous {
45ec0dec44SPavel Belous 	struct rte_eth_dev *dev;
46ec0dec44SPavel Belous 
47ec0dec44SPavel Belous 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
48ec0dec44SPavel Belous 
49ec0dec44SPavel Belous 	dev = &rte_eth_devices[port];
50ec0dec44SPavel Belous 
51ec0dec44SPavel Belous 	if (!is_atlantic_supported(dev))
52ec0dec44SPavel Belous 		return -ENOTSUP;
53ec0dec44SPavel Belous 
54ec0dec44SPavel Belous 	return atl_macsec_config_txsc(dev, mac);
55ec0dec44SPavel Belous }
56ec0dec44SPavel Belous 
57136ab94aSDavid Marchand int
rte_pmd_atl_macsec_config_rxsc(uint16_t port,uint8_t * mac,uint16_t pi)58ec0dec44SPavel Belous rte_pmd_atl_macsec_config_rxsc(uint16_t port, uint8_t *mac, uint16_t pi)
59ec0dec44SPavel Belous {
60ec0dec44SPavel Belous 	struct rte_eth_dev *dev;
61ec0dec44SPavel Belous 
62ec0dec44SPavel Belous 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
63ec0dec44SPavel Belous 
64ec0dec44SPavel Belous 	dev = &rte_eth_devices[port];
65ec0dec44SPavel Belous 
66ec0dec44SPavel Belous 	if (!is_atlantic_supported(dev))
67ec0dec44SPavel Belous 		return -ENOTSUP;
68ec0dec44SPavel Belous 
69ec0dec44SPavel Belous 	return atl_macsec_config_rxsc(dev, mac, pi);
70ec0dec44SPavel Belous }
71ec0dec44SPavel Belous 
72136ab94aSDavid Marchand int
rte_pmd_atl_macsec_select_txsa(uint16_t port,uint8_t idx,uint8_t an,uint32_t pn,uint8_t * key)73ec0dec44SPavel Belous rte_pmd_atl_macsec_select_txsa(uint16_t port, uint8_t idx, uint8_t an,
74ec0dec44SPavel Belous 				 uint32_t pn, uint8_t *key)
75ec0dec44SPavel Belous {
76ec0dec44SPavel Belous 	struct rte_eth_dev *dev;
77ec0dec44SPavel Belous 
78ec0dec44SPavel Belous 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
79ec0dec44SPavel Belous 
80ec0dec44SPavel Belous 	dev = &rte_eth_devices[port];
81ec0dec44SPavel Belous 
82ec0dec44SPavel Belous 	if (!is_atlantic_supported(dev))
83ec0dec44SPavel Belous 		return -ENOTSUP;
84ec0dec44SPavel Belous 
85ec0dec44SPavel Belous 	return atl_macsec_select_txsa(dev, idx, an, pn, key);
86ec0dec44SPavel Belous }
87ec0dec44SPavel Belous 
88136ab94aSDavid Marchand int
rte_pmd_atl_macsec_select_rxsa(uint16_t port,uint8_t idx,uint8_t an,uint32_t pn,uint8_t * key)89ec0dec44SPavel Belous rte_pmd_atl_macsec_select_rxsa(uint16_t port, uint8_t idx, uint8_t an,
90ec0dec44SPavel Belous 				 uint32_t pn, uint8_t *key)
91ec0dec44SPavel Belous {
92ec0dec44SPavel Belous 	struct rte_eth_dev *dev;
93ec0dec44SPavel Belous 
94ec0dec44SPavel Belous 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
95ec0dec44SPavel Belous 
96ec0dec44SPavel Belous 	dev = &rte_eth_devices[port];
97ec0dec44SPavel Belous 
98ec0dec44SPavel Belous 	if (!is_atlantic_supported(dev))
99ec0dec44SPavel Belous 		return -ENOTSUP;
100ec0dec44SPavel Belous 
101ec0dec44SPavel Belous 	return atl_macsec_select_rxsa(dev, idx, an, pn, key);
102ec0dec44SPavel Belous }
103