blob: aeca349538d357231457567485e06e304d105ce1 [file] [log] [blame]
Yi Tseng21629932017-06-06 11:17:43 -07001#ifndef HEADERS
2#define HEADERS
Carmelo Cascone837e6452017-07-19 20:35:22 -04003
4@controller_header("packet_in")
5header packet_in_header_t {
6 bit<9> ingress_port;
7}
8
9@controller_header("packet_out")
10header packet_out_header_t {
11 bit<9> egress_port;
12}
13
Yi Tseng21629932017-06-06 11:17:43 -070014struct intrinsic_metadata_t {
15 bit<32> ingress_global_timestamp;
16 bit<32> lf_field_list;
17 bit<16> mcast_grp;
18 bit<16> egress_rid;
19}
20
21header ethernet_t {
22 bit<48> dstAddr;
23 bit<48> srcAddr;
24 bit<16> etherType;
25}
26
27header ipv4_t {
28 bit<4> version;
29 bit<4> ihl;
30 bit<8> diffserv;
31 bit<16> totalLen;
32 bit<16> identification;
33 bit<3> flags;
34 bit<13> fragOffset;
35 bit<8> ttl;
36 bit<8> protocol;
37 bit<16> hdrChecksum;
38 bit<32> srcAddr;
39 bit<32> dstAddr;
40}
41
42header tcp_t {
43 bit<16> srcPort;
44 bit<16> dstPort;
45 bit<32> seqNo;
46 bit<32> ackNo;
47 bit<4> dataOffset;
48 bit<3> res;
49 bit<3> ecn;
50 bit<6> ctrl;
51 bit<16> window;
52 bit<16> checksum;
53 bit<16> urgentPtr;
54}
55
56header udp_t {
57 bit<16> srcPort;
58 bit<16> dstPort;
59 bit<16> length_;
60 bit<16> checksum;
61}
62
Carmelo Cascone837e6452017-07-19 20:35:22 -040063struct headers_t {
Yi Tseng21629932017-06-06 11:17:43 -070064 ethernet_t ethernet;
65 ipv4_t ipv4;
66 tcp_t tcp;
67 udp_t udp;
Carmelo Cascone837e6452017-07-19 20:35:22 -040068 packet_out_header_t packet_out;
69 packet_in_header_t packet_in;
Yi Tseng21629932017-06-06 11:17:43 -070070}
71#endif