#include #include header ethernet_t { bit<48> dst_addr; bit<48> src_addr; bit<16> eth_type; } header H { bit<8> a; } struct Headers { ethernet_t eth_hdr; H h; } struct Meta { } parser p(packet_in pkt, out Headers hdr, inout Meta m, inout standard_metadata_t sm) { state start { transition parse_hdrs; } state parse_hdrs { pkt.extract(hdr.eth_hdr); pkt.extract(hdr.h); transition accept; } } control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { action do_action(inout bit<8> val) { val = 8w1; exit; } action do_action_ingress() { do_action(h.h.a); } apply { do_action_ingress(); } } control vrfy(inout Headers h, inout Meta m) { apply { } } control update(inout Headers h, inout Meta m) { apply { } } control egress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { apply { } } control deparser(packet_out pkt, in Headers h) { apply { pkt.emit(h); } } V1Switch(p(), vrfy(), ingress(), egress(), update(), deparser()) main;