3 * Copyright (c) 2013, Qualcomm Atheros, Inc.
5 * This software may be distributed under the terms of the BSD license.
6 * See README for more details.
9 #ifndef IEEE802_1X_SECY_OPS_H
10 #define IEEE802_1X_SECY_OPS_H
12 #include "common/defs.h"
13 #include "common/ieee802_1x_defs.h"
15 struct ieee802_1x_kay_conf
;
17 int secy_init_macsec(struct ieee802_1x_kay
*kay
);
18 int secy_deinit_macsec(struct ieee802_1x_kay
*kay
);
20 /****** CP -> SecY ******/
21 int secy_cp_control_validate_frames(struct ieee802_1x_kay
*kay
,
22 enum validate_frames vf
);
23 int secy_cp_control_protect_frames(struct ieee802_1x_kay
*kay
, Boolean flag
);
24 int secy_cp_control_replay(struct ieee802_1x_kay
*kay
, Boolean flag
, u32 win
);
25 int secy_cp_control_current_cipher_suite(struct ieee802_1x_kay
*kay
, u64 cs
);
26 int secy_cp_control_confidentiality_offset(struct ieee802_1x_kay
*kay
,
27 enum confidentiality_offset co
);
28 int secy_cp_control_enable_port(struct ieee802_1x_kay
*kay
, Boolean flag
);
30 /****** KaY -> SecY *******/
31 int secy_get_capability(struct ieee802_1x_kay
*kay
, enum macsec_cap
*cap
);
32 int secy_get_receive_lowest_pn(struct ieee802_1x_kay
*kay
,
33 struct receive_sa
*rxsa
);
34 int secy_get_transmit_next_pn(struct ieee802_1x_kay
*kay
,
35 struct transmit_sa
*txsa
);
36 int secy_set_transmit_next_pn(struct ieee802_1x_kay
*kay
,
37 struct transmit_sa
*txsa
);
38 int secy_get_available_receive_sc(struct ieee802_1x_kay
*kay
, u32
*channel
);
39 int secy_create_receive_sc(struct ieee802_1x_kay
*kay
, struct receive_sc
*rxsc
);
40 int secy_delete_receive_sc(struct ieee802_1x_kay
*kay
, struct receive_sc
*rxsc
);
41 int secy_create_receive_sa(struct ieee802_1x_kay
*kay
, struct receive_sa
*rxsa
);
42 int secy_enable_receive_sa(struct ieee802_1x_kay
*kay
, struct receive_sa
*rxsa
);
43 int secy_disable_receive_sa(struct ieee802_1x_kay
*kay
,
44 struct receive_sa
*rxsa
);
46 int secy_get_available_transmit_sc(struct ieee802_1x_kay
*kay
, u32
*channel
);
47 int secy_create_transmit_sc(struct ieee802_1x_kay
*kay
,
48 struct transmit_sc
*txsc
);
49 int secy_delete_transmit_sc(struct ieee802_1x_kay
*kay
,
50 struct transmit_sc
*txsc
);
51 int secy_create_transmit_sa(struct ieee802_1x_kay
*kay
,
52 struct transmit_sa
*txsa
);
53 int secy_enable_transmit_sa(struct ieee802_1x_kay
*kay
,
54 struct transmit_sa
*txsa
);
55 int secy_disable_transmit_sa(struct ieee802_1x_kay
*kay
,
56 struct transmit_sa
*txsa
);
58 #endif /* IEEE802_1X_SECY_OPS_H */