18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/* 28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * EAP-TNC - TNCC (IF-IMC and IF-TNCCS) 38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2007, Jouni Malinen <j@w1.fi> 48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license. 6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details. 78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifndef TNCC_H 108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define TNCC_H 118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct tncc_data; 138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct tncc_data * tncc_init(void); 158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid tncc_deinit(struct tncc_data *tncc); 168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid tncc_init_connection(struct tncc_data *tncc); 178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtsize_t tncc_total_send_len(struct tncc_data *tncc); 188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtu8 * tncc_copy_send_buf(struct tncc_data *tncc, u8 *pos); 198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtchar * tncc_if_tnccs_start(struct tncc_data *tncc); 208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtchar * tncc_if_tnccs_end(void); 218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtenum tncc_process_res { 238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt TNCCS_PROCESS_ERROR = -1, 248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt TNCCS_PROCESS_OK_NO_RECOMMENDATION = 0, 258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt TNCCS_RECOMMENDATION_ERROR, 268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt TNCCS_RECOMMENDATION_ALLOW, 278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt TNCCS_RECOMMENDATION_NONE, 288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt TNCCS_RECOMMENDATION_ISOLATE 298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}; 308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtenum tncc_process_res tncc_process_if_tnccs(struct tncc_data *tncc, 328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt const u8 *msg, size_t len); 338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct wpabuf * tncc_process_soh_request(int ver, const u8 *data, size_t len); 358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* TNCC_H */ 37