1  /*
2   * IEEE Std 802.1X-2010 Controlled Port of PAE state machine - CP state machine
3   * Copyright (c) 2013, Qualcomm Atheros, Inc.
4   *
5   * This software may be distributed under the terms of the BSD license.
6   * See README for more details.
7   */
8  
9  #ifndef IEEE802_1X_CP_H
10  #define IEEE802_1X_CP_H
11  
12  #include "common/defs.h"
13  #include "common/ieee802_1x_defs.h"
14  
15  struct ieee802_1x_cp_sm;
16  struct ieee802_1x_kay;
17  struct ieee802_1x_mka_ki;
18  
19  struct ieee802_1x_cp_sm * ieee802_1x_cp_sm_init(struct ieee802_1x_kay *kay);
20  void ieee802_1x_cp_sm_deinit(struct ieee802_1x_cp_sm *sm);
21  void ieee802_1x_cp_sm_step(void *cp_ctx);
22  void ieee802_1x_cp_connect_pending(void *cp_ctx);
23  void ieee802_1x_cp_connect_unauthenticated(void *cp_ctx);
24  void ieee802_1x_cp_connect_authenticated(void *cp_ctx);
25  void ieee802_1x_cp_connect_secure(void *cp_ctx);
26  void ieee802_1x_cp_signal_chgdserver(void *cp_ctx);
27  void ieee802_1x_cp_set_electedself(void *cp_ctx, bool status);
28  void ieee802_1x_cp_set_ciphersuite(void *cp_ctx, u64 cs);
29  void ieee802_1x_cp_set_offset(void *cp_ctx, enum confidentiality_offset offset);
30  void ieee802_1x_cp_signal_newsak(void *cp_ctx);
31  void ieee802_1x_cp_set_distributedki(void *cp_ctx,
32  				     const struct ieee802_1x_mka_ki *dki);
33  void ieee802_1x_cp_set_distributedan(void *cp_ctx, u8 an);
34  void ieee802_1x_cp_set_usingreceivesas(void *cp_ctx, bool status);
35  void ieee802_1x_cp_set_allreceiving(void *cp_ctx, bool status);
36  void ieee802_1x_cp_set_servertransmitting(void *cp_ctx, bool status);
37  void ieee802_1x_cp_set_usingtransmitas(void *cp_ctx, bool status);
38  
39  #endif /* IEEE802_1X_CP_H */
40