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
;
21 int secy_init_macsec(struct ieee802_1x_kay
*kay
);
22 int secy_deinit_macsec(struct ieee802_1x_kay
*kay
);
24 /****** CP -> SecY ******/
25 int secy_cp_control_validate_frames(struct ieee802_1x_kay
*kay
,
26 enum validate_frames vf
);
27 int secy_cp_control_protect_frames(struct ieee802_1x_kay
*kay
, Boolean flag
);
28 int secy_cp_control_replay(struct ieee802_1x_kay
*kay
, Boolean flag
, u32 win
);
29 int secy_cp_control_current_cipher_suite(struct ieee802_1x_kay
*kay
,
31 int secy_cp_control_confidentiality_offset(struct ieee802_1x_kay
*kay
,
32 enum confidentiality_offset co
);
33 int secy_cp_control_enable_port(struct ieee802_1x_kay
*kay
, Boolean flag
);
35 /****** KaY -> SecY *******/
36 int secy_get_receive_lowest_pn(struct ieee802_1x_kay
*kay
,
37 struct receive_sa
*rxsa
);
38 int secy_get_transmit_next_pn(struct ieee802_1x_kay
*kay
,
39 struct transmit_sa
*txsa
);
40 int secy_set_transmit_next_pn(struct ieee802_1x_kay
*kay
,
41 struct transmit_sa
*txsa
);
42 int secy_get_available_receive_sc(struct ieee802_1x_kay
*kay
, u32
*channel
);
43 int secy_create_receive_sc(struct ieee802_1x_kay
*kay
, struct receive_sc
*rxsc
);
44 int secy_delete_receive_sc(struct ieee802_1x_kay
*kay
, struct receive_sc
*rxsc
);
45 int secy_create_receive_sa(struct ieee802_1x_kay
*kay
, struct receive_sa
*rxsa
);
46 int secy_enable_receive_sa(struct ieee802_1x_kay
*kay
, struct receive_sa
*rxsa
);
47 int secy_disable_receive_sa(struct ieee802_1x_kay
*kay
,
48 struct receive_sa
*rxsa
);
50 int secy_get_available_transmit_sc(struct ieee802_1x_kay
*kay
, u32
*channel
);
51 int secy_create_transmit_sc(struct ieee802_1x_kay
*kay
,
52 struct transmit_sc
*txsc
);
53 int secy_delete_transmit_sc(struct ieee802_1x_kay
*kay
,
54 struct transmit_sc
*txsc
);
55 int secy_create_transmit_sa(struct ieee802_1x_kay
*kay
,
56 struct transmit_sa
*txsa
);
57 int secy_enable_transmit_sa(struct ieee802_1x_kay
*kay
,
58 struct transmit_sa
*txsa
);
59 int secy_disable_transmit_sa(struct ieee802_1x_kay
*kay
,
60 struct transmit_sa
*txsa
);
62 #endif /* IEEE802_1X_SECY_OPS_H */