Ignore:
Timestamp:
02/22/11 10:01:08 (11 years ago)
Author:
Shane Alcock <salcock@…>
Branches:
4.0.1-hotfixes, cachetimestamps, develop, dpdk-ndag, etsilive, getfragoff, help, 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:
e4e94c38
Parents:
ae76c14
Message:
  • Fixed poor performance of the event API by greatly reducing the amount of packets created, copied and freed
  • We now cache the transport header and payload length for each packet
  • We now deal with Linux SLL Ethernet captures taken using tcpdump with -i any correctly.
  • Changed parameters for internal function trace_get_payload_from_sll - it now sets both the arphrd type and the next protocol
  • Moved ARPHRD definitions into a separate header file, as they come in handy anywhere we deal with SLL headers
File:
1 edited

Legend:

Unmodified
Added
Removed
  • lib/link_wireless.c

    r1326d5f r9cc1266  
    188188                        } else break;
    189189                case TRACE_TYPE_LINUX_SLL:
    190                         l = trace_get_payload_from_linux_sll(link, &type, NULL );
     190                        l = trace_get_payload_from_linux_sll(link, &type, NULL, NULL );
    191191                        return trace_get_wireless_tsft(l, arphrd_type_to_libtrace(type), tsft);
    192192
     
    223223                        } else break;
    224224                case TRACE_TYPE_LINUX_SLL:
    225                         l = trace_get_payload_from_linux_sll(link, &type, NULL);
     225                        l = trace_get_payload_from_linux_sll(link, &type, NULL, NULL);
    226226                        return trace_get_wireless_flags(l, arphrd_type_to_libtrace(type), flags);
    227227                default:
     
    247247                        } else break;
    248248                case TRACE_TYPE_LINUX_SLL:
    249                         l = trace_get_payload_from_linux_sll(link, &type, NULL);
     249                        l = trace_get_payload_from_linux_sll(link, &type, NULL, NULL);
    250250                        return trace_get_wireless_rate(l, arphrd_type_to_libtrace(type), rate);
    251251                default:
     
    275275                        } else break;
    276276                case TRACE_TYPE_LINUX_SLL:
    277                         l = trace_get_payload_from_linux_sll(link, &type, NULL);
     277                        l = trace_get_payload_from_linux_sll(link, &type, NULL, NULL);
    278278                        return trace_get_wireless_freq(l, arphrd_type_to_libtrace(type), freq);
    279279                default:
     
    311311                        } else break;
    312312                case TRACE_TYPE_LINUX_SLL:
    313                         l = trace_get_payload_from_linux_sll(link, &type, NULL);
     313                        l = trace_get_payload_from_linux_sll(link, &type, NULL, NULL);
    314314                        return trace_get_wireless_channel_flags(l, arphrd_type_to_libtrace(type), flags);
    315315                default:
     
    342342                        } else break;
    343343                case TRACE_TYPE_LINUX_SLL:
    344                         l = trace_get_payload_from_linux_sll(link, &type, NULL);
     344                        l = trace_get_payload_from_linux_sll(link, &type, NULL, NULL);
    345345                        return trace_get_wireless_fhss_hopset(l, arphrd_type_to_libtrace(type), hopset);
    346346                default:
     
    369369                        } else break;
    370370                case TRACE_TYPE_LINUX_SLL:
    371                         l = trace_get_payload_from_linux_sll(link, &type, NULL);
     371                        l = trace_get_payload_from_linux_sll(link, &type, NULL, NULL);
    372372                        return trace_get_wireless_fhss_hoppattern(l, arphrd_type_to_libtrace(type), hoppattern);
    373373                default:
     
    395395                        } else break;
    396396                case TRACE_TYPE_LINUX_SLL:
    397                         l = trace_get_payload_from_linux_sll(link, &type, NULL);
     397                        l = trace_get_payload_from_linux_sll(link, &type, NULL, NULL);
    398398                        return trace_get_wireless_signal_strength_dbm(l, arphrd_type_to_libtrace(type), strength);
    399399                default:
     
    419419                        } else break;
    420420                case TRACE_TYPE_LINUX_SLL:
    421                         l = trace_get_payload_from_linux_sll(link, &type, NULL);
     421                        l = trace_get_payload_from_linux_sll(link, &type, NULL, NULL);
    422422                        return trace_get_wireless_noise_strength_dbm(l, arphrd_type_to_libtrace(type), strength);
    423423                default:
     
    443443                        } else break;
    444444                case TRACE_TYPE_LINUX_SLL:
    445                         l = trace_get_payload_from_linux_sll(link, &type, NULL);
     445                        l = trace_get_payload_from_linux_sll(link, &type, NULL, NULL);
    446446                        return trace_get_wireless_signal_strength_db(l, arphrd_type_to_libtrace(type), strength);
    447447                default:
     
    467467                        } else break;
    468468                case TRACE_TYPE_LINUX_SLL:
    469                         l = trace_get_payload_from_linux_sll(link, &type, NULL);
     469                        l = trace_get_payload_from_linux_sll(link, &type, NULL, NULL);
    470470                        return trace_get_wireless_noise_strength_db(l, arphrd_type_to_libtrace(type), strength);
    471471                default:
     
    497497                        } else break;
    498498                case TRACE_TYPE_LINUX_SLL:
    499                         l = trace_get_payload_from_linux_sll(link, &type, NULL);
     499                        l = trace_get_payload_from_linux_sll(link, &type, NULL, NULL);
    500500                        return trace_get_wireless_lock_quality(l, arphrd_type_to_libtrace(type), quality);
    501501                default:
     
    523523                        } else break;
    524524                case TRACE_TYPE_LINUX_SLL:
    525                         l = trace_get_payload_from_linux_sll(link, &type, NULL);
     525                        l = trace_get_payload_from_linux_sll(link, &type, NULL, NULL);
    526526                        return trace_get_wireless_tx_attenuation(l, arphrd_type_to_libtrace(type), attenuation);
    527527                default:
     
    547547                        } else break;
    548548                case TRACE_TYPE_LINUX_SLL:
    549                         l = trace_get_payload_from_linux_sll(link, &type, NULL);
     549                        l = trace_get_payload_from_linux_sll(link, &type, NULL, NULL);
    550550                        return trace_get_wireless_tx_attenuation_db(l, arphrd_type_to_libtrace(type), attenuation);
    551551                default:
     
    571571                        } else break;
    572572                case TRACE_TYPE_LINUX_SLL:
    573                         l = trace_get_payload_from_linux_sll(link, &type, NULL);
     573                        l = trace_get_payload_from_linux_sll(link, &type, NULL, NULL);
    574574                        return trace_get_wireless_tx_power_dbm(l, arphrd_type_to_libtrace(type), txpower);
    575575                default:
     
    596596                        } else break;
    597597                case TRACE_TYPE_LINUX_SLL:
    598                         l = trace_get_payload_from_linux_sll(link, &type, NULL);
     598                        l = trace_get_payload_from_linux_sll(link, &type, NULL, NULL);
    599599                        return trace_get_wireless_antenna(l, arphrd_type_to_libtrace(type), antenna);
    600600                default:
Note: See TracChangeset for help on using the changeset viewer.