for max_packet_bytes. */
u32 buffer_bytes;
- /* Buffer flags to set in each packet e.g. checksum offload flags */
+ /* Buffer flags to set in each packet e.g. l2 valid flags */
u32 buffer_flags;
+ /* Buffer offload flags to set in each packet e.g. checksum offload flags */
+ u32 buffer_oflags;
+
/* Last packet length if packet size edit type is increment. */
u32 last_increment_packet_size;
_vec_len (s->edit_groups) = i;
}
+typedef enum pg_interface_mode_t_
+{
+ PG_MODE_ETHERNET,
+ PG_MODE_IP4,
+ PG_MODE_IP6,
+} pg_interface_mode_t;
+
typedef struct
{
/* TX lock */
u32 gso_size;
pcap_main_t pcap_main;
char *pcap_file_name;
+ pg_interface_mode_t mode;
mac_address_t *allowed_mcast_macs;
} pg_interface_t;
u32 tx_node_index);
/* Find/create free packet-generator interface index. */
-u32 pg_interface_add_or_get (pg_main_t * pg, uword stream_index,
- u8 gso_enabled, u32 gso_size,
- u8 coalesce_enabled);
+u32 pg_interface_add_or_get (pg_main_t *pg, uword stream_index, u8 gso_enabled,
+ u32 gso_size, u8 coalesce_enabled,
+ pg_interface_mode_t mode);
always_inline pg_node_t *
pg_get_node (uword node_index)