Subversion Repositories planix.SVN

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
/*
2
 * ATA-over-Ethernet (AoE) protocol
3
 */
4
enum {
5
	ACata,
6
	ACconfig,
7
};
8
 
9
enum {
10
	AQCread,
11
	AQCtest,
12
	AQCprefix,
13
	AQCset,
14
	AQCfset,
15
};
16
 
17
enum {
18
	AEcmd	= 1,
19
	AEarg,
20
	AEdev,
21
	AEcfg,
22
	AEver,
23
};
24
 
25
enum {
26
	Aoetype	= 0x88a2,
27
	Aoesectsz = 512,			/* standard sector size */
28
	Aoever	= 1,
29
 
30
	AFerr	= 1<<2,
31
	AFrsp	= 1<<3,
32
 
33
	AAFwrite= 1,
34
	AAFext	= 1<<6,
35
};
36
 
37
typedef struct {
38
	uchar	dst[Eaddrlen];
39
	uchar	src[Eaddrlen];
40
	uchar	type[2];
41
	uchar	verflag;
42
	uchar	error;
43
	uchar	major[2];
44
	uchar	minor;
45
	uchar	cmd;
46
	uchar	tag[4];
47
	uchar	payload[];
48
} Aoehdr;
49
 
50
#define AOEHDRSZ	offsetof(Aoehdr, payload[0])
51
 
52
typedef struct {
53
	Aoehdr;
54
	uchar	aflag;
55
	uchar	errfeat;
56
	uchar	scnt;
57
	uchar	cmdstat;
58
	uchar	lba[6];
59
	uchar	res[2];
60
	uchar	payload[];
61
} Aoeata;
62
 
63
#define AOEATASZ	offsetof(Aoeata, payload[0])
64
 
65
typedef struct {
66
	Aoehdr;
67
	uchar	bufcnt[2];
68
	uchar	fwver[2];
69
	uchar	scnt;
70
	uchar	verccmd;
71
	uchar	cslen[2];
72
	uchar	payload[];
73
} Aoeqc;
74
 
75
#define AOEQCSZ		offsetof(Aoeqc, payload[0])