Changeset 3a4c6d9 in mainline for uspace/lib


Ignore:
Timestamp:
2025-11-14T16:58:23Z (3 months ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master
Children:
1ec732a
Parents:
d101368
git-author:
Nataliia Korop <n.corop08@…> (2025-11-14 16:57:02)
git-committer:
Jiri Svoboda <jiri@…> (2025-11-14 16:58:23)
Message:

Packet capture (thx Nataliia Korop)

Location:
uspace/lib
Files:
13 added
8 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/include/ipc/services.h

    rd101368 r3a4c6d9  
    6767#define SERVICE_NAME_VBD      "vbd"
    6868#define SERVICE_NAME_VOLSRV   "volsrv"
    69 
    7069#endif
    7170
  • uspace/lib/meson.build

    rd101368 r3a4c6d9  
    8484        'nettl',
    8585        'ofw',
     86        'pcap',
    8687        'pcm',
    8788        'pcut',
  • uspace/lib/nic/include/nic.h

    rd101368 r3a4c6d9  
    4444#include <device/hw_res_parsed.h>
    4545#include <ops/nic.h>
     46#include <pcap_dumper.h>
    4647
    4748#define DEVICE_CATEGORY_NIC "nic"
     
    278279extern void nic_sw_period_stop(nic_t *);
    279280
     281/* pcapdump interface */
     282extern pcap_dumper_t *nic_get_pcap_dumper(nic_t *);
     283
     284extern errno_t nic_fun_add_to_cats(ddf_fun_t *fun);
     285
    280286#endif // __NIC_H__
    281287
  • uspace/lib/nic/include/nic_driver.h

    rd101368 r3a4c6d9  
    4646#include <nic/nic.h>
    4747#include <async.h>
     48#include <pcapdump_srv.h>
    4849
    4950#include "nic.h"
     
    195196         */
    196197        poll_request_handler on_poll_request;
     198
     199        /** Packets dumper. */
     200        pcap_dumper_t dumper;
     201
    197202        /** Data specific for particular driver */
    198203        void *specific;
  • uspace/lib/nic/include/nic_impl.h

    rd101368 r3a4c6d9  
    8787extern void nic_close_impl(ddf_fun_t *fun);
    8888
    89 extern void nic_device_added_impl(ddf_dev_t *dev);
    90 
    9189#endif
    9290
  • uspace/lib/nic/meson.build

    rd101368 r3a4c6d9  
    2727#
    2828
    29 deps = [ 'drv' ]
     29deps = [ 'drv' , 'pcap' ]
    3030c_args = [ '-DLIBNIC_INTERNAL', ]
    3131src = files(
  • uspace/lib/nic/src/nic_driver.c

    rd101368 r3a4c6d9  
    4747#include <ops/nic.h>
    4848#include <errno.h>
     49#include <pcapdump_drv_iface.h>
    4950
    5051#include "nic_driver.h"
     
    522523         *               calls it inside send_frame handler (with locked main lock)
    523524         */
     525        pcapdump_packet(nic_get_pcap_dumper(nic_data), frame->data, frame->size);
    524526        fibril_rwlock_read_lock(&nic_data->rxc_lock);
    525527        nic_frame_type_t frame_type;
     
    560562                fibril_rwlock_write_unlock(&nic_data->stats_lock);
    561563        }
     564        //pcapdump_packet(nic_get_pcap_dumper(nic_data), frame->data, frame->size);
    562565        nic_release_frame(nic_data, frame);
    563566}
     
    648651        nic_data->dev = device;
    649652
     653        errno_t pcap_rc  = pcapdump_init(nic_get_pcap_dumper(nic_data));
     654        if (pcap_rc != EOK) {
     655                printf("Failed creating pcapdump port\n");
     656        }
     657
    650658        return nic_data;
    651659}
     
    11331141}
    11341142
     1143pcap_dumper_t *nic_get_pcap_dumper(nic_t *nic_data)
     1144{
     1145        return &nic_data->dumper;
     1146}
     1147
    11351148/** @}
    11361149 */
  • uspace/lib/nic/src/nic_impl.c

    rd101368 r3a4c6d9  
    4040#include <ipc/services.h>
    4141#include <ns.h>
     42#include <pcapdump_drv_iface.h>
    4243#include "nic_driver.h"
    4344#include "nic_ev.h"
     
    179180                return EBUSY;
    180181        }
    181 
     182        pcapdump_packet(nic_get_pcap_dumper(nic_data), data, size);
    182183        nic_data->send_frame(nic_data, data, size);
    183184        fibril_rwlock_read_unlock(&nic_data->main_lock);
     
    843844}
    844845
     846errno_t nic_fun_add_to_cats(ddf_fun_t *fun)
     847{
     848        errno_t rc;
     849        rc = ddf_fun_add_to_category(fun, DEVICE_CATEGORY_NIC);
     850        if (rc != EOK)
     851                return rc;
     852
     853        rc = ddf_fun_add_to_category(fun, "pcap");
     854        if (rc != EOK) {
     855                return rc;
     856        }
     857        return EOK;
     858}
     859
    845860/** @}
    846861 */
Note: See TracChangeset for help on using the changeset viewer.