Changeset fc2d593 in mainline
- Timestamp:
- 2024-12-13T08:33:36Z (10 months ago)
- Children:
- 1333dfc
- Parents:
- c7bd3f9e
- git-author:
- Nataliia Korop <n.corop08@…> (2024-05-08 13:47:52)
- git-committer:
- Nataliia Korop <n.corop08@…> (2024-12-13 08:33:36)
- Location:
- uspace
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/pcapctl/main.c
rc7bd3f9e rfc2d593 106 106 bool start = false; 107 107 bool stop = false; 108 int dev_number = DEFAULT_DEV_NUM;108 int dev_number = -1; 109 109 const char *output_file_name; 110 110 int idx = 0; -
uspace/lib/c/include/ipc/services.h
rc7bd3f9e rfc2d593 67 67 #define SERVICE_NAME_VBD "vbd" 68 68 #define SERVICE_NAME_VOLSRV "volsrv" 69 #define SERVICE_NAME_DUMPPCAP "dumppcap"70 69 #endif 71 70 -
uspace/lib/nic/src/nic_driver.c
rc7bd3f9e rfc2d593 523 523 * calls it inside send_frame handler (with locked main lock) 524 524 */ 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); 526 526 fibril_rwlock_read_lock(&nic_data->rxc_lock); 527 527 nic_frame_type_t frame_type; … … 562 562 fibril_rwlock_write_unlock(&nic_data->stats_lock); 563 563 } 564 //pcapdump_packet(nic_get_pcap_iface(nic_data), frame->data, frame->size);564 pcapdump_packet(nic_get_pcap_iface(nic_data), frame->data, frame->size); 565 565 nic_release_frame(nic_data, frame); 566 566 } … … 651 651 nic_data->dev = device; 652 652 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 } 657 657 658 658 return nic_data; -
uspace/lib/nic/src/nic_impl.c
rc7bd3f9e rfc2d593 851 851 return rc; 852 852 853 //rc = ddf_fun_add_to_category(fun, "pcap");854 //if (rc != EOK) {855 //return rc;856 //}853 rc = ddf_fun_add_to_category(fun, "pcap"); 854 if (rc != EOK) { 855 return rc; 856 } 857 857 return EOK; 858 858 } -
uspace/lib/pcap/include/pcap.h
rc7bd3f9e rfc2d593 52 52 #define PCAP_SNAP_LEN 0x00040000 53 53 54 #define PCAP_LINKTYPE_ETHERNET 1 /* IEEE 802.3 Ethernet*/ 55 #define PCAP_LINKTYPE_IP_RAW 101 54 #define PCAP_LINKTYPE_ETHERNET 1 /* IEEE 802.3 Ethernet */ 55 #define PCAP_LINKTYPE_IP_RAW 101 /* Raw IP packet */ 56 #define WIRESHARK_EX 0xc 57 #define WIRESHARK_SNAPLEN 0xffff 56 58 57 59 /** Header of the .pcap file -
uspace/lib/pcap/src/pcap.c
rc7bd3f9e rfc2d593 59 59 { 60 60 pcap_file_header_t file_header = { PCAP_MAGIC_MICRO, PCAP_MAJOR_VERSION, PCAP_MINOR_VERSION, 61 0x00000000, 0x00000000, (uint32_t)PCAP_SNAP_LEN, (uint32_t)PCAP_LINKTYPE_ IP_RAW};61 0x00000000, 0x00000000, (uint32_t)PCAP_SNAP_LEN, (uint32_t)PCAP_LINKTYPE_ETHERNET }; 62 62 writer->ops->write_buffer(writer, &file_header, sizeof(file_header)); 63 63 } -
uspace/lib/pcap/src/pcap_iface.c
rc7bd3f9e rfc2d593 95 95 errno_t pcap_iface_init(pcap_iface_t *iface) 96 96 { 97 98 97 iface->to_dump = false; 99 98 iface->add_packet = pcap_add_packet; -
uspace/lib/pcap/src/pcapctl_dump.c
rc7bd3f9e rfc2d593 52 52 } 53 53 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 } 81 81 82 82 errno_t pcapctl_is_valid_device(int *index) … … 149 149 return ENOMEM; 150 150 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; 151 printf("number: %d\n", *index); 152 if (*index == -1) { 153 154 rc = loc_service_get_id("net/eth1", &svc, 0); 155 if (rc != EOK) 156 { 157 fprintf(stderr, "Error getting service id.\n"); 158 return ENOENT; 159 } 160 } 161 else { 162 rc = pcapctl_cat_get_svc(index, &svc); 163 if (rc != EOK) { 164 printf("Error finding the device with index: %d\n", *index); 165 goto error; 166 } 167 } 168 160 169 161 170 async_sess_t *new_session = loc_service_connect(svc, INTERFACE_PCAP_CONTROL, 0); … … 165 174 goto error; 166 175 } 167 printf("got new session\n"); 176 168 177 sess->sess = new_session; 169 178 *rsess = sess; … … 191 200 errno_t pcapctl_dump_start(const char *name, pcapctl_sess_t *sess) 192 201 { 193 printf("pcapctl_dump_start\n");194 202 errno_t rc; 195 203 async_exch_t *exch = async_exchange_begin(sess->sess); -
uspace/srv/net/ethip/ethip.c
rc7bd3f9e rfc2d593 46 46 #include <stdlib.h> 47 47 #include <task.h> 48 #include <pcapdump_iface.h> 48 49 #include "arp.h" 49 50 #include "ethip.h" … … 53 54 54 55 #define NAME "ethip" 56 /** Interface for dumping packets */ 57 pcap_iface_t pcapdump; 55 58 56 59 static errno_t ethip_open(iplink_srv_t *srv); … … 90 93 } 91 94 95 rc = pcapdump_init(&pcapdump); 96 if (rc != EOK) { 97 log_msg(LOG_DEFAULT, LVL_ERROR, "Failed initializing dumping interface."); 98 return rc; 99 } 100 92 101 rc = ethip_nic_discovery_start(); 93 102 if (rc != EOK) … … 197 206 if (rc != EOK) 198 207 return rc; 199 208 pcapdump_packet(&pcapdump, data, size); 200 209 rc = ethip_nic_send(nic, data, size); 201 210 free(data); … … 242 251 return rc; 243 252 } 253 pcapdump_packet(&pcapdump, data, size); 244 254 245 255 iplink_recv_sdu_t sdu; -
uspace/srv/net/ethip/meson.build
rc7bd3f9e rfc2d593 27 27 # 28 28 29 deps = [ 'drv' ]29 deps = [ 'drv' , 'pcap' ] 30 30 src = files( 31 31 'arp.c', -
uspace/srv/net/inetsrv/inetsrv.c
rc7bd3f9e rfc2d593 49 49 #include <stdint.h> 50 50 #include <task.h> 51 #include <pcapdump_iface.h>52 51 #include "addrobj.h" 53 52 #include "icmp.h" … … 64 63 #define NAME "inetsrv" 65 64 66 /** Interface for dumping packets */67 pcap_iface_t pcapdump;68 65 69 66 static inet_naddr_t solicited_node_mask = { … … 121 118 if (rc != EOK) 122 119 return rc; 123 rc = async_create_port(INTERFACE_PCAP_CONTROL, 124 pcapdump_conn, &pcapdump, &port); 125 if (rc != EOK) { 126 return rc; 127 } 120 128 121 rc = loc_server_register(NAME, &srv); 129 122 if (rc != EOK) { … … 210 203 dgram->dest.addr, dgram, proto, ttl, df); 211 204 } 212 printf("SENDING: packet size is - %d\n", dgram->size); 213 pcapdump_packet(&pcapdump, dgram->data, dgram->size); 205 214 206 log_msg(LOG_DEFAULT, LVL_DEBUG, "dgram to be routed"); 215 207 216 208 /* Route packet using source/destination addresses */ 217 218 209 rc = inet_find_dir(&dgram->src, &dgram->dest, dgram->tos, &dir); 219 210 if (rc != EOK) … … 550 541 dgram.data = packet->data; 551 542 dgram.size = packet->size; 552 printf("RECEIVING: packet size is - %d\n", packet->size);553 pcapdump_packet(&pcapdump, packet->data, packet->size);554 543 return inet_recv_dgram_local(&dgram, packet->proto); 555 544 } else { … … 572 561 return 1; 573 562 } 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 } 563 580 564 rc = inet_init(); 581 565 if (rc != EOK) 582 566 return 1; 583 567 584 printf(NAME ": Initialized dump iface from inetsrv.\n");585 568 printf(NAME ": Accepting connections.\n"); 586 569
Note:
See TracChangeset
for help on using the changeset viewer.