import "fown.proto";
import "sk-opts.proto";

message packet_mclist {
	required uint32	index	= 1;
	required uint32	type	= 2;
	required bytes	addr	= 3;
}

message packet_ring {
	required uint32	block_size	= 1;
	required uint32	block_nr	= 2;
	required uint32	frame_size	= 3;
	required uint32	frame_nr	= 4;

	required uint32	retire_tmo	= 5;
	required uint32	sizeof_priv	= 6;
	required uint32	features	= 7;
}

message packet_sock_entry {
	required uint32			id		= 1;
	required uint32			type		= 2;
	required uint32			protocol	= 3;
	required uint32			flags		= 4;
	required uint32			ifindex		= 5;

	required fown_entry		fown		= 6;
	required sk_opts_entry		opts		= 7;

	required uint32		version		= 8;
	required uint32		reserve		= 9;
	required bool		aux_data	= 10;
	required bool		orig_dev	= 11;
	required bool		vnet_hdr	= 12;
	required bool		loss		= 13;
	required uint32		timestamp	= 14;
	required uint32		copy_thresh	= 15;
	repeated packet_mclist	mclist		= 16;
	optional uint32		fanout		= 17 [ default = 0xffffffff ];
	optional packet_ring	rx_ring		= 18;
	optional packet_ring	tx_ring		= 19;
}
