18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/* 28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * EAP-TNC - TNCC (IF-IMC and IF-TNCCS) 38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2007, Jouni Malinen <j@w1.fi> 48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 58d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This program is free software; you can redistribute it and/or modify 68d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * it under the terms of the GNU General Public License version 2 as 78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * published by the Free Software Foundation. 88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Alternatively, this software may be distributed under the terms of BSD 108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * license. 118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * See README and COPYING for more details. 138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifndef TNCC_H 168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define TNCC_H 178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct tncc_data; 198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct tncc_data * tncc_init(void); 218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid tncc_deinit(struct tncc_data *tncc); 228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid tncc_init_connection(struct tncc_data *tncc); 238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtsize_t tncc_total_send_len(struct tncc_data *tncc); 248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtu8 * tncc_copy_send_buf(struct tncc_data *tncc, u8 *pos); 258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtchar * tncc_if_tnccs_start(struct tncc_data *tncc); 268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtchar * tncc_if_tnccs_end(void); 278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtenum tncc_process_res { 298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt TNCCS_PROCESS_ERROR = -1, 308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt TNCCS_PROCESS_OK_NO_RECOMMENDATION = 0, 318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt TNCCS_RECOMMENDATION_ERROR, 328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt TNCCS_RECOMMENDATION_ALLOW, 338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt TNCCS_RECOMMENDATION_NONE, 348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt TNCCS_RECOMMENDATION_ISOLATE 358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}; 368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtenum tncc_process_res tncc_process_if_tnccs(struct tncc_data *tncc, 388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt const u8 *msg, size_t len); 398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct wpabuf * tncc_process_soh_request(int ver, const u8 *data, size_t len); 418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* TNCC_H */ 43