|
@@ -81,12 +81,50 @@
|
|
|
|
|
|
#undef DEBUG
|
|
|
|
|
|
-#include "iseries_veth.h"
|
|
|
-
|
|
|
MODULE_AUTHOR("Kyle Lucke <klucke@us.ibm.com>");
|
|
|
MODULE_DESCRIPTION("iSeries Virtual ethernet driver");
|
|
|
MODULE_LICENSE("GPL");
|
|
|
|
|
|
+#define VethEventTypeCap (0)
|
|
|
+#define VethEventTypeFrames (1)
|
|
|
+#define VethEventTypeMonitor (2)
|
|
|
+#define VethEventTypeFramesAck (3)
|
|
|
+
|
|
|
+#define VETH_MAX_ACKS_PER_MSG (20)
|
|
|
+#define VETH_MAX_FRAMES_PER_MSG (6)
|
|
|
+
|
|
|
+struct VethFramesData {
|
|
|
+ u32 addr[VETH_MAX_FRAMES_PER_MSG];
|
|
|
+ u16 len[VETH_MAX_FRAMES_PER_MSG];
|
|
|
+ u32 eofmask;
|
|
|
+};
|
|
|
+#define VETH_EOF_SHIFT (32-VETH_MAX_FRAMES_PER_MSG)
|
|
|
+
|
|
|
+struct VethFramesAckData {
|
|
|
+ u16 token[VETH_MAX_ACKS_PER_MSG];
|
|
|
+};
|
|
|
+
|
|
|
+struct VethCapData {
|
|
|
+ u8 caps_version;
|
|
|
+ u8 rsvd1;
|
|
|
+ u16 num_buffers;
|
|
|
+ u16 ack_threshold;
|
|
|
+ u16 rsvd2;
|
|
|
+ u32 ack_timeout;
|
|
|
+ u32 rsvd3;
|
|
|
+ u64 rsvd4[3];
|
|
|
+};
|
|
|
+
|
|
|
+struct VethLpEvent {
|
|
|
+ struct HvLpEvent base_event;
|
|
|
+ union {
|
|
|
+ struct VethCapData caps_data;
|
|
|
+ struct VethFramesData frames_data;
|
|
|
+ struct VethFramesAckData frames_ack_data;
|
|
|
+ } u;
|
|
|
+
|
|
|
+};
|
|
|
+
|
|
|
#define VETH_NUMBUFFERS (120)
|
|
|
#define VETH_ACKTIMEOUT (1000000) /* microseconds */
|
|
|
#define VETH_MAX_MCAST (12)
|