Changeset 6c60a7c in mainline


Ignore:
Timestamp:
2024-12-13T08:33:34Z (10 months ago)
Author:
Nataliia Korop <n.corop08@…>
Children:
c7bd3f9e
Parents:
1a59a89
git-author:
Nataliia Korop <n.corop08@…> (2024-04-11 09:36:03)
git-committer:
Nataliia Korop <n.corop08@…> (2024-12-13 08:33:34)
Message:

inetsrv dumps

Location:
uspace
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/nic/src/nic_driver.c

    r1a59a89 r6c60a7c  
    523523         *               calls it inside send_frame handler (with locked main lock)
    524524         */
    525         pcapdump_packet(nic_get_pcap_iface(nic_data), frame->data, frame->size);
     525        //pcapdump_packet(nic_get_pcap_iface(nic_data), frame->data, frame->size);
    526526        fibril_rwlock_read_lock(&nic_data->rxc_lock);
    527527        nic_frame_type_t frame_type;
     
    651651        nic_data->dev = device;
    652652
    653         errno_t pcap_rc  = pcapdump_init(nic_get_pcap_iface(nic_data));
    654         if (pcap_rc != EOK) {
    655                 printf("Failed creating pcapdump port\n");
    656         }
     653        // errno_t pcap_rc  = pcapdump_init(nic_get_pcap_iface(nic_data));
     654        // if (pcap_rc != EOK) {
     655        //      printf("Failed creating pcapdump port\n");
     656        // }
    657657
    658658        return nic_data;
  • uspace/lib/nic/src/nic_impl.c

    r1a59a89 r6c60a7c  
    180180                return EBUSY;
    181181        }
    182         pcapdump_packet(nic_get_pcap_iface(nic_data), data, size);
     182        //pcapdump_packet(nic_get_pcap_iface(nic_data), data, size);
    183183        nic_data->send_frame(nic_data, data, size);
    184184        fibril_rwlock_read_unlock(&nic_data->main_lock);
     
    849849        rc = ddf_fun_add_to_category(fun, DEVICE_CATEGORY_NIC);
    850850        if (rc != EOK)
    851                 goto err_add_to_cat;
    852 
    853         rc = ddf_fun_add_to_category(fun, "pcap");
    854         if (rc != EOK) {
    855                 //ddf_msg(LVL_ERROR, "Failed adding function to category pcap");
    856                 goto err_add_to_cat;
    857         }
    858         return EOK;
    859 
    860 err_add_to_cat:
    861         ddf_fun_unbind(fun);
    862         return rc;
     851                return rc;
     852
     853        // rc = ddf_fun_add_to_category(fun, "pcap");
     854        // if (rc != EOK) {
     855        //      return rc;
     856        // }
     857        return EOK;
    863858}
    864859
  • uspace/lib/pcap/include/pcapdump_iface.h

    r1a59a89 r6c60a7c  
    5151extern void pcapdump_packet(pcap_iface_t *, const void *, size_t);
    5252
     53extern void pcapdump_conn(ipc_call_t *, void *);
    5354#endif
    5455
  • uspace/lib/pcap/src/pcapctl_dump.c

    r1a59a89 r6c60a7c  
    5252}
    5353
    54 static errno_t pcapctl_cat_get_svc(int *index, service_id_t *svc)
    55 {
    56         errno_t rc;
    57         category_id_t pcap_cat;
    58         size_t count;
    59         service_id_t *pcap_svcs = NULL;
    60 
    61         rc = loc_category_get_id("pcap", &pcap_cat, 0);
    62         if (rc != EOK) {
    63                 printf("Error resolving category 'pcap'.\n");
    64                 return rc;
    65         }
    66 
    67         rc = loc_category_get_svcs(pcap_cat, &pcap_svcs, &count);
    68         if (rc != EOK) {
    69                 printf("Error resolving list of pcap services.\n");
    70                 free(pcap_svcs);
    71                 return rc;
    72         }
    73         if (*index < (int)count) {
    74                 *svc =  pcap_svcs[*index];
    75                 free(pcap_svcs);
    76                 return EOK;
    77         }
    78 
    79         return ENOENT;
    80 }
     54// static errno_t pcapctl_cat_get_svc(int *index, service_id_t *svc)
     55// {
     56//      errno_t rc;
     57//      category_id_t pcap_cat;
     58//      size_t count;
     59//      service_id_t *pcap_svcs = NULL;
     60
     61//      rc = loc_category_get_id("pcap", &pcap_cat, 0);
     62//      if (rc != EOK) {
     63//              printf("Error resolving category 'pcap'.\n");
     64//              return rc;
     65//      }
     66
     67//      rc = loc_category_get_svcs(pcap_cat, &pcap_svcs, &count);
     68//      if (rc != EOK) {
     69//              printf("Error resolving list of pcap services.\n");
     70//              free(pcap_svcs);
     71//              return rc;
     72//      }
     73//      if (*index < (int)count) {
     74//              *svc =  pcap_svcs[*index];
     75//              free(pcap_svcs);
     76//              return EOK;
     77//      }
     78
     79//      return ENOENT;
     80// }
    8181
    8282errno_t pcapctl_is_valid_device(int *index)
     
    149149                return ENOMEM;
    150150
    151         rc  = pcapctl_cat_get_svc(index, &svc);
    152         if (rc != EOK) {
    153                 printf("Error finding the device with index: %d\n", *index);
    154                 goto error;
    155         }
     151        // rc  = pcapctl_cat_get_svc(index, &svc);
     152        // if (rc != EOK) {
     153        //      printf("Error finding the device with index: %d\n", *index);
     154        //      goto error;
     155        // }
     156
     157        rc = loc_service_get_id("net/inet", &svc, 0);
     158        if (rc != EOK)
     159                return ENOENT;
    156160
    157161        async_sess_t *new_session = loc_service_connect(svc, INTERFACE_PCAP_CONTROL, 0);
     
    161165                goto error;
    162166        }
     167        printf("got new session\n");
    163168        sess->sess = new_session;
    164169        *rsess = sess;
     
    186191errno_t pcapctl_dump_start(const char *name, pcapctl_sess_t *sess)
    187192{
     193        printf("pcapctl_dump_start\n");
    188194        errno_t rc;
    189195        async_exch_t *exch = async_exchange_begin(sess->sess);
  • uspace/lib/pcap/src/pcapdump_iface.c

    r1a59a89 r6c60a7c  
    8383}
    8484
    85 static void pcapdump_conn(ipc_call_t *icall, void *arg)
     85void pcapdump_conn(ipc_call_t *icall, void *arg)
    8686{
    8787        pcap_iface_t *iface = (pcap_iface_t *)arg;
    88 
     88        printf("pcapdump_conn\n");
    8989        assert((iface != NULL) && "pcapdump requires pcap interface\n");
    9090
  • uspace/srv/net/inetsrv/inetsrv.c

    r1a59a89 r6c60a7c  
    4949#include <stdint.h>
    5050#include <task.h>
     51#include <pcapdump_iface.h>
    5152#include "addrobj.h"
    5253#include "icmp.h"
     
    6364#define NAME "inetsrv"
    6465
     66/** Interface for dumping packets */
     67pcap_iface_t pcapdump;
     68
    6569static inet_naddr_t solicited_node_mask = {
    6670        .version = ip_v6,
     
    117121        if (rc != EOK)
    118122                return rc;
    119 
     123        rc = async_create_port(INTERFACE_PCAP_CONTROL,
     124            pcapdump_conn, &pcapdump, &port);
     125        if (rc != EOK) {
     126                return rc;
     127        }
    120128        rc = loc_server_register(NAME, &srv);
    121129        if (rc != EOK) {
     
    202210                    dgram->dest.addr, dgram, proto, ttl, df);
    203211        }
    204 
     212        printf("SENDING: packet size is - %d\n", dgram->size);
     213        pcapdump_packet(&pcapdump, dgram->data, dgram->size);
    205214        log_msg(LOG_DEFAULT, LVL_DEBUG, "dgram to be routed");
    206215
     
    541550                        dgram.data = packet->data;
    542551                        dgram.size = packet->size;
    543 
     552                        printf("RECEIVING: packet size is - %d\n", packet->size);
     553                        pcapdump_packet(&pcapdump, packet->data, packet->size);
    544554                        return inet_recv_dgram_local(&dgram, packet->proto);
    545555                } else {
     
    562572                return 1;
    563573        }
    564 
     574        rc = pcap_iface_init(&pcapdump);
     575
     576        if (rc != EOK) {
     577                printf("Failed creating pcap interface: %s", str_error(rc));
     578                return rc;
     579        }
    565580        rc = inet_init();
    566581        if (rc != EOK)
    567582                return 1;
    568583
     584        printf(NAME ": Initialized dump iface from inetsrv.\n");
    569585        printf(NAME ": Accepting connections.\n");
    570586
  • uspace/srv/net/inetsrv/meson.build

    r1a59a89 r6c60a7c  
    2727#
    2828
    29 deps = [ 'inet', 'sif' ]
     29deps = [ 'inet', 'sif', 'pcap' ]
     30
    3031src = files(
    3132        'addrobj.c',
Note: See TracChangeset for help on using the changeset viewer.