Changeset 42c2e65 in mainline


Ignore:
Timestamp:
2023-12-13T08:35:34Z (5 months ago)
Author:
Nataliia Korop <n.corop08@…>
Children:
dc5c303
Parents:
7cf5ddb
Message:

Packet capture prototype

Files:
13 added
7 edited

Legend:

Unmodified
Added
Removed
  • abi/include/abi/ipc/interfaces.h

    r7cf5ddb r42c2e65  
    201201        INTERFACE_WNDMGT_CB =
    202202            FOURCC_COMPACT('w', 'm', 'g', 't') | IFACE_EXCHANGE_SERIALIZE | IFACE_MOD_CALLBACK,
     203        INTERFACE_PCAP_CONTROL =
     204            FOURCC_COMPACT('p', 'c', 't', 'l') | IFACE_EXCHANGE_SERIALIZE,
    203205} iface_t;
    204206
  • uspace/app/meson.build

    r7cf5ddb r42c2e65  
    7171        'nic',
    7272        'nterm',
     73        'pcapctl',
    7374        'pci',
    7475        'ping',
  • uspace/drv/nic/e1k/e1k.c

    r7cf5ddb r42c2e65  
    5151#include "e1k.h"
    5252
     53#include "pcapdump_iface.h"
     54#include "pcap_iface.h"
    5355#define NAME  "e1k"
    5456
     
    174176        /** Lock for EEPROM access */
    175177        fibril_mutex_t eeprom_lock;
     178
     179        /** Interface for dumping packets */
     180        pcap_iface_t pcapdump;
     181
    176182} e1000_t;
    177183
     
    11891195                if (frame != NULL) {
    11901196                        memcpy(frame->data, e1000->rx_frame_virt[next_tail], frame_size);
     1197                        pcapdump_packet(&e1000->pcapdump, frame->data, frame->size);
     1198
    11911199                        nic_received_frame(nic, frame);
    11921200                } else {
     
    22032211                goto err_add_to_cat;
    22042212
     2213        errno_t pcap_rc  = pcapdump_init(&e1000->pcapdump);
     2214
     2215        if (pcap_rc != EOK) {
     2216                printf("Failed creating pcapdump port\n");
     2217        }
     2218        rc = ddf_fun_add_to_category(fun, "pcap");
     2219        if (rc != EOK)
     2220                goto err_add_to_cat;
     2221
    22052222        return EOK;
    22062223
     
    23662383
    23672384        memcpy(e1000->tx_frame_virt[tdt], data, size);
    2368 
     2385        pcapdump_packet(&e1000->pcapdump, data, size);
    23692386        tx_descriptor_addr->phys_addr = PTR_TO_U64(e1000->tx_frame_phys[tdt]);
    23702387        tx_descriptor_addr->length = size;
  • uspace/drv/nic/e1k/meson.build

    r7cf5ddb r42c2e65  
    2727#
    2828
    29 deps = [ 'nic' ]
     29deps = [ 'nic' , 'pcap' ]
    3030src = files('e1k.c')
  • uspace/lib/c/include/ipc/services.h

    r7cf5ddb r42c2e65  
    6767#define SERVICE_NAME_VBD      "vbd"
    6868#define SERVICE_NAME_VOLSRV   "volsrv"
    69 
     69#define SERVICE_NAME_DUMPPCAP "dumppcap"
    7070#endif
    7171
  • uspace/lib/meson.build

    r7cf5ddb r42c2e65  
    7272        'minix',
    7373        'nettl',
     74        'pcap',
    7475        'pcm',
    7576        'pcut',
  • uspace/srv/locsrv/locsrv.c

    r7cf5ddb r42c2e65  
    13901390        categ_dir_add_cat(&cdir, cat);
    13911391
     1392        cat = category_new("pcap");
     1393        categ_dir_add_cat(&cdir, cat);
    13921394        return true;
    13931395}
Note: See TracChangeset for help on using the changeset viewer.