rs_fec.h File Reference

Reed-Solomon FEC. More...

#include "defines.h"
#include "transport.h"

Include dependency graph for rs_fec.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

trans_block_trs_fec_encode_src_block (char *data, unsigned long long len, unsigned int sbn, unsigned short es_len, int rs, unsigned int max_sb_len)
char * rs_fec_decode_src_block (trans_block_t *tr_block, unsigned long long *block_len, unsigned short es_len)
char * rs_fec_decode_object (trans_obj_t *to, unsigned long long *data_len, alc_session_t *s)


Detailed Description

Reed-Solomon FEC.

Author
peltotal
Date
2007/02/26 13:48:19
Revision
1.21

MAD-ALCLIB: Implementation of ALC/LCT protocols, Compact No-Code FEC, Simple XOR FEC, Reed-Solomon FEC, and RLC Congestion Control protocol. Copyright (c) 2003-2007 TUT - Tampere University of Technology main authors/contacts: jani.peltotalo@tut.fi and sami.peltotalo@tut.fi

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

In addition, as a special exception, TUT - Tampere University of Technology gives permission to link the code of this program with the OpenSSL library (or with modified versions of OpenSSL that use the same license as OpenSSL), and distribute linked combinations including the two. You must obey the GNU General Public License in all respects for all of the code used other than OpenSSL. If you modify this file, you may extend this exception to your version of the file, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.

Definition in file rs_fec.h.


Function Documentation

char* rs_fec_decode_object ( trans_obj_t to,
unsigned long long *  data_len,
alc_session_t s 
)

This function decodes object to buffer using Reed-Solomon FEC.

Parameters:
to pointer to the transport object
data_len stores the length of object,
s pointer to the session
Returns:
pointer to buffer which contains object's data, NULL when memory could not be allocated

Definition at line 236 of file rs_fec.c.

References trans_obj::block_list, trans_obj::bs, trans_obj::es_len, trans_obj::len, blocking_struct::N, and rs_fec_decode_src_block().

Referenced by alc_recv(), alc_recv2(), and fdt_recv().

Here is the call graph for this function:

Here is the caller graph for this function:

char* rs_fec_decode_src_block ( trans_block_t tr_block,
unsigned long long *  block_len,
unsigned short  es_len 
)

This function decodes source block data to buffer using Reed-Solomon FEC.

Parameters:
tr_block pointer to source block
block_len stores the length of block
es_len encoding symbol length for this block
Returns:
pointer to buffer which contains block's data, NULL when memory could not be allocated

Definition at line 162 of file rs_fec.c.

References trans_unit::data, trans_unit::esi, fec_decode(), fec_free(), fec_new(), GF_SIZE, trans_block::k, trans_block::max_k, trans_block::max_n, trans_unit::next, and trans_block::unit_list.

Referenced by analyze_packet(), and rs_fec_decode_object().

Here is the call graph for this function:

Here is the caller graph for this function:

trans_block_t* rs_fec_encode_src_block ( char *  data,
unsigned long long  len,
unsigned int  sbn,
unsigned short  es_len,
int  rs,
unsigned int  max_sb_len 
)

This function encodes source block data to transport block using Reed-Solomon FEC.

Parameters:
data pointer to data string to be segmented
len length of data string,
sbn source block number
es_len encoding symbol length
rs FEC ratio percent
max_sb_len maximum source block length
Returns:
pointer to the transport block, NULL in error cases

Definition at line 42 of file rs_fec.c.

References create_block(), create_units(), trans_unit::data, trans_unit::esi, fec_encode(), fec_free(), fec_new(), GF_SIZE, trans_block::k, trans_unit::len, trans_block::max_k, trans_block::max_n, trans_block::n, trans_block::sbn, and trans_block::unit_list.

Referenced by alc_send(), and main().

Here is the call graph for this function:

Here is the caller graph for this function:


Generated on Fri Mar 9 20:08:55 2007 for MAD-FCL by  doxygen 1.5.0