FreeCalypso > hg > fc-magnetite
diff src/g23m-fad/tcpip/tcpip_sim_utils.c @ 174:90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 12 Oct 2016 05:40:46 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/g23m-fad/tcpip/tcpip_sim_utils.c Wed Oct 12 05:40:46 2016 +0000 @@ -0,0 +1,169 @@ +/* ++------------------------------------------------------------------------------ +| File: tcpip_utils.c ++------------------------------------------------------------------------------ +| Copyright 2003 Texas Instruments Berlin, AG +| All rights reserved. +| +| This file is confidential and a trade secret of Texas +| Instruments Berlin, AG +| The receipt of or possession of this file does not convey +| any rights to reproduce or disclose its contents or to +| manufacture, use, or sell anything it may describe, in +| whole, or in part, without the specific written consent of +| Texas Instruments Berlin, AG. ++----------------------------------------------------------------------------- +| Purpose : Utility functions for GPF-based TCP/IP ++----------------------------------------------------------------------------- +*/ + + +#define TCPIP_UTILS_C + +#define ENTITY_TCPIP + +/*==== INCLUDES =============================================================*/ + +#include <string.h> /* String functions, e. g. strncpy(). */ +#include <stdio.h> + +#include "typedefs.h" /* to get Condat data types */ +#include "vsi.h" /* to get a lot of macros */ +#include "custom.h" +#include "gsm.h" /* to get a lot of macros */ +#include "prim.h" /* to get the definitions of used SAP and directions */ +#include "pei.h" /* to get PEI interface */ +#include "tools.h" /* to get common tools */ +#include "dti.h" /* For DTI library definitions. */ +#include "glob_defs.h" +#include "tcpip.h" /* to get the global entity definitions */ + +/* RNET includes + */ +#include "rv_general.h" +#include "rnet_api.h" +#include "rnet_rt_env.h" +#include "rnet_message.h" +#include "rnet_rt_i.h" + + +/*==== Local prototypes =====================================================*/ + + + + +/*==== Macros ===============================================================*/ + + + +/*==== Types ================================================================*/ + + +/*==== Local data ===========================================================*/ + + + +/*==== Other public functions ===============================================*/ + +unsigned long tcpip_sim_fake_data(int socket, U16 len) +{ + static char tmp[100000] ; + +/* MALLOC(tmp, len) ; */ + *tmp = 0 ; + if (len > 30) + { + sprintf(tmp, "data len 0x%0.4x for socket %-.2d\n", len, socket) ; + } + if (len > strlen(tmp)) + { + memset(tmp + strlen(tmp), '0' + socket, len - strlen(tmp)) ; + } + return (unsigned long) tmp ; +} + + +void tcpip_dump_packet(char *title, U8 *data, U16 len) +{ + static char buf[80] ; + int i = 0 ; + + strcpy(buf, "pkt dump from ") ; + strcat(buf, title) ; + strcat(buf, "\n ") ; + while (len-- > 0) + { + sprintf(buf + strlen(buf), " %02x", *data++) ; + if (!(++i % 4)) + { + if (!(i % 8)) + { + TRACE_EVENT(buf) ; + sprintf(buf, " ") ; + } + else + { + sprintf(buf + strlen(buf), " ") ; + } + } + } + printf("%s", buf) ; +} + +static char *inet_ntoa(U32 ipaddr) +{ + static char ipaddr_string[sizeof("000.000.000.000")] ; + UBYTE *addrbyte_p ; /* Pointer to single address bytes. */ + + addrbyte_p = (UBYTE *) &ipaddr ; + sprintf(ipaddr_string,"%u.%u.%u.%u", + addrbyte_p[3], addrbyte_p[2], addrbyte_p[1], addrbyte_p[0]); + return ipaddr_string ; +} + + + +void tcpip_if_properties(NGifnet *netp) +{ + char *name ; + U32 value ; + + ngIfGenCntl(netp, NG_CNTL_GET, NG_IFO_NAME, &name) ; + TRACE_EVENT_P1("Interface name %s", name) ; + + ngIfGenCntl(netp, NG_CNTL_GET, NG_IFO_OUTQ_MAX, &value) ; + TRACE_EVENT_P1(" NG_IFO_OUTQ_MAX = %d", value) ; + + ngIfGenCntl(netp, NG_CNTL_GET, NG_IFO_ADDR, &value) ; + TRACE_EVENT_P1(" NG_IFO_ADDR = %s", inet_ntoa(ngNTOHL(value))) ; + + ngIfGenCntl(netp, NG_CNTL_GET, NG_IFO_NETMASK, &value) ; + TRACE_EVENT_P1(" NG_IFO_NETMASK = 0x%x", ngNTOHL(value)) ; + + ngIfGenCntl(netp, NG_CNTL_GET, NG_IFO_DSTADDR, &value) ; + TRACE_EVENT_P1(" NG_IFO_DSTADDR = %s", inet_ntoa(ngNTOHL(value))) ; + + ngIfGenCntl(netp, NG_CNTL_GET, NG_IFO_FLAGS, &value) ; + TRACE_EVENT_P1(" NG_IFO_FLAGS = 0x%x", value) ; + + ngIfGenCntl(netp, NG_CNTL_GET, NG_IFO_DEV1, &value) ; + TRACE_EVENT_P1(" NG_IFO_DEV1 = 0x%x", value) ; + + ngIfGenCntl(netp, NG_CNTL_GET, NG_IFO_DEV2, &value) ; + TRACE_EVENT_P1(" NG_IFO_DEV2 = 0x%x", value) ; + + ngIfGenCntl(netp, NG_CNTL_GET, NG_IFO_DEVPTR1, &value) ; + TRACE_EVENT_P1(" NG_IFO_DEVPTR1 = 0x%x", value) ; + + ngIfGenCntl(netp, NG_CNTL_GET, NG_IFO_DEVPTR2, &value) ; + TRACE_EVENT_P1(" NG_IFO_DEVPTR2 = 0x%x", value) ; + + ngIfGenCntl(netp, NG_CNTL_GET, NG_IFO_PROMISC, &value) ; + TRACE_EVENT_P1(" NG_IFO_PROMISC = 0x%x", value) ; + + ngIfGenCntl(netp, NG_CNTL_GET, NG_IFO_ALLMULTI, &value) ; + TRACE_EVENT_P1(" NG_IFO_ALLMULTI = 0x%x", value) ; + + ngIfGenCntl(netp, NG_CNTL_GET, NG_IFO_MTU, &value) ; + TRACE_EVENT_P1(" NG_IFO_MTU = %d", value) ; +}