Ignore:
Timestamp:
03/26/15 11:44:45 (6 years ago)
Author:
Richard Sanger <rsangerarj@…>
Branches:
4.0.1-hotfixes, cachetimestamps, develop, dpdk-ndag, etsilive, libtrace4, master, ndag_format, pfring, rc-4.0.1, rc-4.0.2, rc-4.0.3, rc-4.0.4, ringdecrementfix, ringperformance, ringtimestampfixes
Children:
f50515e
Parents:
e99c493
Message:

Various fixes to the linux format to support compiling on BSD

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lib/format_linux_common.h

    r0a52945 r9d89626  
    326326
    327327void linuxcommon_get_statistics(libtrace_t *libtrace, libtrace_stat_t *stat);
    328 inline libtrace_direction_t linuxcommon_get_direction(uint8_t pkttype);
    329 inline libtrace_direction_t linuxcommon_set_direction(struct sockaddr_ll * skadr,
    330                                                  libtrace_direction_t direction);
    331 inline libtrace_linktype_t linuxcommon_get_link_type(uint16_t linktype);
    332 
     328
     329static inline libtrace_direction_t linuxcommon_get_direction(uint8_t pkttype)
     330{
     331        switch (pkttype) {
     332                case PACKET_OUTGOING:
     333                case PACKET_LOOPBACK:
     334                        return TRACE_DIR_OUTGOING;
     335                case PACKET_OTHERHOST:
     336                        return TRACE_DIR_OTHER;
     337                default:
     338                        return TRACE_DIR_INCOMING;
     339        }
     340}
     341
     342static inline libtrace_direction_t
     343linuxcommon_set_direction(struct sockaddr_ll * skadr,
     344                          libtrace_direction_t direction)
     345{
     346        switch (direction) {
     347                case TRACE_DIR_OUTGOING:
     348                        skadr->sll_pkttype = PACKET_OUTGOING;
     349                        return TRACE_DIR_OUTGOING;
     350                case TRACE_DIR_INCOMING:
     351                        skadr->sll_pkttype = PACKET_HOST;
     352                        return TRACE_DIR_INCOMING;
     353                case TRACE_DIR_OTHER:
     354                        skadr->sll_pkttype = PACKET_OTHERHOST;
     355                        return TRACE_DIR_OTHER;
     356                default:
     357                        return -1;
     358        }
     359}
     360
     361static inline libtrace_linktype_t linuxcommon_get_link_type(uint16_t linktype)
     362{
     363        /* Convert the ARPHRD type into an appropriate libtrace link type */
     364        switch (linktype) {
     365                case LIBTRACE_ARPHRD_ETHER:
     366                case LIBTRACE_ARPHRD_LOOPBACK:
     367                        return TRACE_TYPE_ETH;
     368                case LIBTRACE_ARPHRD_PPP:
     369                        return TRACE_TYPE_NONE;
     370                case LIBTRACE_ARPHRD_IEEE80211_RADIOTAP:
     371                        return TRACE_TYPE_80211_RADIO;
     372                case LIBTRACE_ARPHRD_IEEE80211:
     373                        return TRACE_TYPE_80211;
     374                case LIBTRACE_ARPHRD_SIT:
     375                case LIBTRACE_ARPHRD_NONE:
     376                        return TRACE_TYPE_NONE;
     377                default: /* shrug, beyond me! */
     378                        printf("unknown Linux ARPHRD type 0x%04x\n",linktype);
     379                        return (libtrace_linktype_t)~0U;
     380        }
     381}
    333382
    334383#endif /* FORMAT_LINUX_COMMON_H */
Note: See TracChangeset for help on using the changeset viewer.