What do you need an IP stack for when you want to process raw ethernet
frames???

Dirk

On Thu, Jul 25, 2019 at 10:25 PM Nathan Immerman via lwip-users <
lwip-users@nongnu.org> wrote:

> Hi all,
>
> I am implementing a software Precision Time Protocol (PTP) implementation
> which requires reading Raw Ethernet II frames, no TCP/IP/UDP. An example
> packet is copied below. Is this possible using lwIP?
>
> I see the raw_new api accepts a proto parameter but there doesn't seem to
> be a protocal define for raw frames.
>
> Protocols defined in ip.h
> #define IP_PROTO_ICMP    1
> #define IP_PROTO_IGMP    2
> #define IP_PROTO_UDP     17
> #define IP_PROTO_UDPLITE 136
> #define IP_PROTO_TCP     6
>
> Thank you.
>
> Example PTP Raw Ethernet II frame copied from Wireshark
>
> Frame 28: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
>     Encapsulation type: Ethernet (1)
>     Arrival Time: Jul 24, 2019 16:29:02.184864000 PDT
>     [Time shift for this packet: 0.000000000 seconds]
>     Epoch Time: 1564010942.184864000 seconds
>     [Time delta from previous captured frame: 0.008057000 seconds]
>     [Time delta from previous displayed frame: 0.008057000 seconds]
>     [Time since reference or first frame: 0.264827000 seconds]
>     Frame Number: 28
>     Frame Length: 60 bytes (480 bits)
>     Capture Length: 60 bytes (480 bits)
>     [Frame is marked: False]
>     [Frame is ignored: False]
>     [Protocols in frame: eth:ethertype:ptp]
>     [Coloring Rule Name: Broadcast]
>     [Coloring Rule String: eth[0] & 1]
> Ethernet II, Src: Trimble_70:09:90 (00:17:47:70:09:90), Dst:
> IeeeI&MS_00:00:00 (01:1b:19:00:00:00)
>     Destination: IeeeI&MS_00:00:00 (01:1b:19:00:00:00)
>         Address: IeeeI&MS_00:00:00 (01:1b:19:00:00:00)
>         .... ..0. .... .... .... .... = LG bit: Globally unique address
> (factory default)
>         .... ...1 .... .... .... .... = IG bit: Group address
> (multicast/broadcast)
>     Source: Trimble_70:09:90 (00:17:47:70:09:90)
>         Address: Trimble_70:09:90 (00:17:47:70:09:90)
>         .... ..0. .... .... .... .... = LG bit: Globally unique address
> (factory default)
>         .... ...0 .... .... .... .... = IG bit: Individual address
> (unicast)
>     Type: PTPv2 over Ethernet (IEEE1588) (0x88f7)
>     Padding: 0000
> Precision Time Protocol (IEEE1588)
>     0000 .... = transportSpecific: 0x0
>     .... 0000 = messageId: Sync Message (0x0)
>     .... 0010 = versionPTP: 2
>     messageLength: 44
>     subdomainNumber: 24
>     flags: 0x0000
>         0... .... .... .... = PTP_SECURITY: False
>         .0.. .... .... .... = PTP profile Specific 2: False
>         ..0. .... .... .... = PTP profile Specific 1: False
>         .... .0.. .... .... = PTP_UNICAST: False
>         .... ..0. .... .... = PTP_TWO_STEP: False
>         .... ...0 .... .... = PTP_ALTERNATE_MASTER: False
>         .... .... ..0. .... = FREQUENCY_TRACEABLE: False
>         .... .... ...0 .... = TIME_TRACEABLE: False
>         .... .... .... 0... = PTP_TIMESCALE: False
>         .... .... .... .0.. = PTP_UTC_REASONABLE: False
>         .... .... .... ..0. = PTP_LI_59: False
>         .... .... .... ...0 = PTP_LI_61: False
>     correction: 582.000015 nanoseconds
>         correction: Ns: 582 nanoseconds
>         correctionSubNs: 1.52587890625e-05 nanoseconds
>     ClockIdentity: 0x001747fffe700990
>     SourcePortID: 1
>     sequenceId: 9796
>     control: Sync Message (0)
>     logMessagePeriod: -4
>     originTimestamp (seconds): 1564010979
>     originTimestamp (nanoseconds): 187716775
> _______________________________________________
> lwip-users mailing list
> lwip-users@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/lwip-users
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to