]>
Commit | Line | Data |
---|---|---|
11fdf7f2 TL |
1 | /* SPDX-License-Identifier: BSD-3-Clause |
2 | * Copyright(c) 2010-2014 Intel Corporation | |
3 | */ | |
4 | ||
5 | #ifndef PACKET_BURST_GENERATOR_H_ | |
6 | #define PACKET_BURST_GENERATOR_H_ | |
7 | ||
8 | #ifdef __cplusplus | |
9 | extern "C" { | |
10 | #endif | |
11 | ||
12 | #include <rte_mbuf.h> | |
13 | #include <rte_ether.h> | |
14 | #include <rte_arp.h> | |
15 | #include <rte_ip.h> | |
16 | #include <rte_udp.h> | |
17 | #include <rte_tcp.h> | |
18 | #include <rte_sctp.h> | |
19 | ||
20 | #define IPV4_ADDR(a, b, c, d)(((a & 0xff) << 24) | ((b & 0xff) << 16) | \ | |
21 | ((c & 0xff) << 8) | (d & 0xff)) | |
22 | ||
23 | #define PACKET_BURST_GEN_PKT_LEN 60 | |
24 | #define PACKET_BURST_GEN_PKT_LEN_128 128 | |
25 | ||
26 | void | |
27 | initialize_eth_header(struct ether_hdr *eth_hdr, struct ether_addr *src_mac, | |
28 | struct ether_addr *dst_mac, uint16_t ether_type, | |
29 | uint8_t vlan_enabled, uint16_t van_id); | |
30 | ||
31 | void | |
32 | initialize_arp_header(struct arp_hdr *arp_hdr, struct ether_addr *src_mac, | |
33 | struct ether_addr *dst_mac, uint32_t src_ip, uint32_t dst_ip, | |
34 | uint32_t opcode); | |
35 | ||
36 | uint16_t | |
37 | initialize_udp_header(struct udp_hdr *udp_hdr, uint16_t src_port, | |
38 | uint16_t dst_port, uint16_t pkt_data_len); | |
39 | ||
40 | uint16_t | |
41 | initialize_tcp_header(struct tcp_hdr *tcp_hdr, uint16_t src_port, | |
42 | uint16_t dst_port, uint16_t pkt_data_len); | |
43 | ||
44 | uint16_t | |
45 | initialize_sctp_header(struct sctp_hdr *sctp_hdr, uint16_t src_port, | |
46 | uint16_t dst_port, uint16_t pkt_data_len); | |
47 | ||
48 | uint16_t | |
49 | initialize_ipv6_header(struct ipv6_hdr *ip_hdr, uint8_t *src_addr, | |
50 | uint8_t *dst_addr, uint16_t pkt_data_len); | |
51 | ||
52 | uint16_t | |
53 | initialize_ipv4_header(struct ipv4_hdr *ip_hdr, uint32_t src_addr, | |
54 | uint32_t dst_addr, uint16_t pkt_data_len); | |
55 | ||
56 | uint16_t | |
57 | initialize_ipv4_header_proto(struct ipv4_hdr *ip_hdr, uint32_t src_addr, | |
58 | uint32_t dst_addr, uint16_t pkt_data_len, uint8_t proto); | |
59 | ||
60 | int | |
61 | generate_packet_burst(struct rte_mempool *mp, struct rte_mbuf **pkts_burst, | |
62 | struct ether_hdr *eth_hdr, uint8_t vlan_enabled, void *ip_hdr, | |
63 | uint8_t ipv4, struct udp_hdr *udp_hdr, int nb_pkt_per_burst, | |
64 | uint8_t pkt_len, uint8_t nb_pkt_segs); | |
65 | ||
66 | int | |
67 | generate_packet_burst_proto(struct rte_mempool *mp, | |
68 | struct rte_mbuf **pkts_burst, | |
69 | struct ether_hdr *eth_hdr, uint8_t vlan_enabled, void *ip_hdr, | |
70 | uint8_t ipv4, uint8_t proto, void *proto_hdr, | |
71 | int nb_pkt_per_burst, uint8_t pkt_len, uint8_t nb_pkt_segs); | |
72 | ||
73 | #ifdef __cplusplus | |
74 | } | |
75 | #endif | |
76 | ||
77 | #endif /* PACKET_BURST_GENERATOR_H_ */ |