Line data Source code
1 : /* 2 : * Copyright (c) 2015 Cisco and/or its affiliates. 3 : * Licensed under the Apache License, Version 2.0 (the "License"); 4 : * you may not use this file except in compliance with the License. 5 : * You may obtain a copy of the License at: 6 : * 7 : * http://www.apache.org/licenses/LICENSE-2.0 8 : * 9 : * Unless required by applicable law or agreed to in writing, software 10 : * distributed under the License is distributed on an "AS IS" BASIS, 11 : * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 : * See the License for the specific language governing permissions and 13 : * limitations under the License. 14 : */ 15 : 16 : #ifndef included_vppinfra_pcap_funcs_h 17 : #define included_vppinfra_pcap_funcs_h 18 : 19 : /** Write out data to output file. */ 20 : clib_error_t *pcap_close (pcap_main_t * pm); 21 : clib_error_t *pcap_write (pcap_main_t * pm); 22 : 23 : /** Read data from file. */ 24 : clib_error_t *pcap_read (pcap_main_t * pm); 25 : 26 : /** Close the file created by pcap_write function. */ 27 : clib_error_t *pcap_close (pcap_main_t * pm); 28 : 29 : /** 30 : * @brief Add packet 31 : * 32 : * @param *pm - pcap_main_t 33 : * @param time_now - f64 34 : * @param n_bytes_in_trace - u32 35 : * @param n_bytes_in_packet - u32 36 : * 37 : * @return Packet Data 38 : * 39 : */ 40 : static inline void * 41 509883 : pcap_add_packet (pcap_main_t * pm, 42 : f64 time_now, u32 n_bytes_in_trace, u32 n_bytes_in_packet) 43 : { 44 : pcap_packet_header_t *h; 45 : u8 *d; 46 : 47 509883 : vec_add2 (pm->pcap_data, d, sizeof (h[0]) + n_bytes_in_trace); 48 509883 : h = (void *) (d); 49 509883 : h->time_in_sec = time_now; 50 509883 : h->time_in_usec = 1e6 * (time_now - h->time_in_sec); 51 509883 : h->n_packet_bytes_stored_in_file = n_bytes_in_trace; 52 509883 : h->n_bytes_in_packet = n_bytes_in_packet; 53 509883 : pm->n_packets_captured++; 54 509883 : return h->data; 55 : } 56 : 57 : #endif /* included_vppinfra_pcap_funcs_h */ 58 : 59 : /* 60 : * fd.io coding-style-patch-verification: ON 61 : * 62 : * Local Variables: 63 : * eval: (c-set-style "gnu") 64 : * End: 65 : */