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