This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

TCP NET sending/receiving RAW SOCKET

Hi,

I am looking for a way to send/receive RAW IP packets from TCP_Net library.

Currently I am using TCP_Net 7.0 BETA (supporting IPv4/IPv6 dual stack) from BSD Socket API,
with CMSIS-OS/RTX running. The environment is MDK-PRO 5.14.

What I want to do is send/receive ICMPv4 and ICMPv6 packets.
However, the BSD API only supports TCP and UDP only, no RAW protocol.

Is there any function to do it?

Thanks and best regards,
Makoto

  • My suggestion is to use driver level interface routines send_frame for sending, and modify ETH_IRQHandler for receiving.

    Georg

  • Georg,

    Thanks for the reply,

    I understand that calling a Ethernet-level send function and hooking driver's handler are the essential method.
    There is a public function "net_eth_send_frame()" declared in rt_net_lib.h so it will be possible to call from the app.

    I also found the following symbols in the linker-generated .map file:
    net_ip4_send_frame
    net_ip6_send_frame
    net_icmp6_send

    where all the symbols look like hidden functions in the Tcp_Net library. They look like
    IP-layer functions however they do not appear in the public header files so I can't see the correct syntax.

    It would be better if KEIL made them all public putting into the header files...

    Makoto