diff --git a/backends/p4test/run-p4-sample.py b/backends/p4test/run-p4-sample.py index 1f6d645a7ea..dddb4a4596f 100755 --- a/backends/p4test/run-p4-sample.py +++ b/backends/p4test/run-p4-sample.py @@ -174,7 +174,7 @@ def process_file(options, argv): os.makedirs(expected_dirname) # We rely on the fact that these keys are in alphabetical order. - rename = { "FrontEnd_12_SimplifyControlFlow": "first", + rename = { "FrontEnd_13_SimplifyControlFlow": "first", "FrontEndLast": "frontend", "MidEndLast": "midend" } diff --git a/frontends/p4/fromv1.0/programStructure.cpp b/frontends/p4/fromv1.0/programStructure.cpp index cbf34c3ab64..3b6823c94c2 100644 --- a/frontends/p4/fromv1.0/programStructure.cpp +++ b/frontends/p4/fromv1.0/programStructure.cpp @@ -277,6 +277,18 @@ const IR::Expression* ProgramStructure::paramReference(const IR::Parameter* para return result; } +const IR::AssignmentStatement* ProgramStructure::assign( + Util::SourceInfo srcInfo, const IR::Expression* left, + const IR::Expression* right, const IR::Type* type) { + const IR::Expression* cast; + if (type != nullptr) + cast = new IR::Cast(type, right); + else + cast = right; + auto result = new IR::AssignmentStatement(srcInfo, left, cast); + return result; +} + const IR::Statement* ProgramStructure::convertParserStatement(const IR::Expression* expr) { ExpressionConverter conv(this); @@ -304,8 +316,7 @@ const IR::Statement* ProgramStructure::convertParserStatement(const IR::Expressi auto dest = conv.convert(primitive->operands.at(0)); auto src = conv.convert(primitive->operands.at(1)); - auto result = new IR::AssignmentStatement(primitive->srcInfo, dest, src); - return result; + return assign(primitive->srcInfo, dest, src, primitive->operands.at(0)->type); } } BUG("Unhandled expression %1%", expr); @@ -831,7 +842,7 @@ const IR::Statement* ProgramStructure::sliceAssign( auto l = new IR::Constant(range.lowIndex); left = new IR::Slice(left->srcInfo, left, h, l); right = new IR::Slice(right->srcInfo, right, h, l); - return new IR::AssignmentStatement(srcInfo, left, right); + return assign(srcInfo, left, right, nullptr); } // else value is too complex for a slice } @@ -844,7 +855,7 @@ const IR::Statement* ProgramStructure::sliceAssign( auto op1 = new IR::BAnd(left->srcInfo, left, new IR::Cmpl(mask)); auto op2 = new IR::BAnd(right->srcInfo, right, mask); auto result = new IR::BOr(mask->srcInfo, op1, op2); - return new IR::AssignmentStatement(srcInfo, left, result); + return assign(srcInfo, left, result, type); } #define OPS_CK(primitive, n) BUG_CHECK((primitive)->operands.size() == n, \ @@ -884,7 +895,7 @@ const IR::Statement* ProgramStructure::convertPrimitive(const IR::Primitive* pri if (primitive->operands.size() == 2) { auto left = conv.convert(primitive->operands.at(0)); auto right = conv.convert(primitive->operands.at(1)); - return new IR::AssignmentStatement(primitive->srcInfo, left, right); + return assign(primitive->srcInfo, left, right, primitive->operands.at(0)->type); } else if (primitive->operands.size() == 3) { auto left = conv.convert(primitive->operands.at(0)); auto right = conv.convert(primitive->operands.at(1)); @@ -946,8 +957,7 @@ const IR::Statement* ProgramStructure::convertPrimitive(const IR::Primitive* pri op = new IR::Shl(dest->srcInfo, left, right); else if (primitive->name == "shift_right") op = new IR::Shr(dest->srcInfo, left, right); - auto result = new IR::AssignmentStatement(primitive->srcInfo, dest, op); - return result; + return assign(primitive->srcInfo, dest, op, primitive->operands.at(0)->type); } else if (primitive->name == "bit_not") { OPS_CK(primitive, 2); auto dest = conv.convert(primitive->operands.at(0)); @@ -955,8 +965,7 @@ const IR::Statement* ProgramStructure::convertPrimitive(const IR::Primitive* pri IR::Expression* op = nullptr; if (primitive->name == "bit_not") op = new IR::Cmpl(right); - auto result = new IR::AssignmentStatement(primitive->srcInfo, dest, op); - return result; + return assign(primitive->srcInfo, dest, op, primitive->operands.at(0)->type); } else if (primitive->name == "no_op") { return new IR::EmptyStatement(); } else if (primitive->name == "add_to_field" || primitive->name == "subtract_from_field") { @@ -970,7 +979,7 @@ const IR::Statement* ProgramStructure::convertPrimitive(const IR::Primitive* pri op = new IR::Add(primitive->srcInfo, left, right); else op = new IR::Sub(primitive->srcInfo, left, right); - return new IR::AssignmentStatement(primitive->srcInfo, left2, op); + return assign(primitive->srcInfo, left2, op, primitive->operands.at(0)->type); } else if (primitive->name == "remove_header") { OPS_CK(primitive, 1); auto hdr = conv.convert(primitive->operands.at(0)); @@ -1048,16 +1057,15 @@ const IR::Statement* ProgramStructure::convertPrimitive(const IR::Primitive* pri auto mc = new IR::MethodCallExpression(primitive->srcInfo, random, args); auto call = new IR::MethodCallStatement(primitive->srcInfo, mc); auto block = new IR::BlockStatement; - const IR::Statement* assign; - if (mask != nullptr) { - assign = sliceAssign(primitive->srcInfo, field, + const IR::Statement* assgn; + if (mask != nullptr) + assgn = sliceAssign(primitive->srcInfo, field, new IR::PathExpression(IR::ID(tmpvar)), mask); - } else { - assign = new IR::AssignmentStatement(field, new IR::PathExpression(tmpvar)); - } + else + assgn = new IR::AssignmentStatement(field, new IR::PathExpression(tmpvar)); block->push_back(decl); block->push_back(call); - block->push_back(assign); + block->push_back(assgn); return block; } else if (primitive->name == "modify_field_rng_uniform") { BUG_CHECK(primitive->operands.size() == 3, "Expected 3 operands for %1%", primitive); @@ -1182,7 +1190,7 @@ const IR::Statement* ProgramStructure::convertPrimitive(const IR::Primitive* pri if (!cond->type->is()) cond = new IR::Neq(cond, new IR::Constant(0)); src = new IR::Mux(primitive->srcInfo, cond, src, dest); - return new IR::AssignmentStatement(primitive->srcInfo, dest, src); + return assign(primitive->srcInfo, dest, src, primitive->operands.at(0)->type); } else if (primitive->name == "generate_digest") { OPS_CK(primitive, 2); auto args = new IR::Vector(); @@ -1273,7 +1281,7 @@ const IR::Statement* ProgramStructure::convertPrimitive(const IR::Primitive* pri auto lo = conv.convert(primitive->operands.at(2)); auto shift = conv.convert(primitive->operands.at(3)); auto src = new IR::Shr(new IR::Concat(hi, lo), shift); - return new IR::AssignmentStatement(primitive->srcInfo, dest, src); + return assign(primitive->srcInfo, dest, src, primitive->operands.at(0)->type); } // If everything else failed maybe we are invoking an action diff --git a/frontends/p4/fromv1.0/programStructure.h b/frontends/p4/fromv1.0/programStructure.h index 77d1b2aeb63..67189304653 100644 --- a/frontends/p4/fromv1.0/programStructure.h +++ b/frontends/p4/fromv1.0/programStructure.h @@ -195,6 +195,8 @@ class ProgramStructure { void createMain(); public: + const IR::AssignmentStatement* assign(Util::SourceInfo srcInfo, const IR::Expression* left, + const IR::Expression* right, const IR::Type* type); const IR::Expression* paramReference(const IR::Parameter* param); void tablesReferred(const IR::V1Control* control, std::vector &out); bool isHeader(const IR::ConcreteHeaderRef* nhr) const; diff --git a/frontends/p4/typeChecking/typeChecker.cpp b/frontends/p4/typeChecking/typeChecker.cpp index 742a389e3d6..990b7705e35 100644 --- a/frontends/p4/typeChecking/typeChecker.cpp +++ b/frontends/p4/typeChecking/typeChecker.cpp @@ -643,16 +643,6 @@ TypeInference::assignment(const IR::Node* errorPosition, const IR::Type* destTyp if (initType == destType) return sourceExpression; - if (canCastBetween(destType, initType)) { - LOG2("Inserting cast in " << sourceExpression); - bool isConst = isCompileTimeConstant(sourceExpression); - sourceExpression = new IR::Cast(sourceExpression->srcInfo, destType, sourceExpression); - setType(sourceExpression, destType); - if (isConst) - setCompileTimeConstant(sourceExpression); - return sourceExpression; - } - auto tvs = unify(errorPosition, destType, initType, true); if (tvs == nullptr) // error already signalled diff --git a/testdata/p4_14_samples_outputs/01-BigMatch.p4 b/testdata/p4_14_samples_outputs/01-BigMatch.p4 index 01391566e74..68e0338c1a3 100644 --- a/testdata/p4_14_samples_outputs/01-BigMatch.p4 +++ b/testdata/p4_14_samples_outputs/01-BigMatch.p4 @@ -64,16 +64,16 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name(".nop") action nop() { } @name(".set_f1") action set_f1(bit<1024> f1) { - meta.ing_metadata.f1 = f1; + meta.ing_metadata.f1 = (bit<1024>)f1; } @name(".set_f2") action set_f2(bit<512> f2) { - meta.ing_metadata.f2 = f2; + meta.ing_metadata.f2 = (bit<512>)f2; } @name(".set_f3") action set_f3(bit<256> f3) { - meta.ing_metadata.f3 = f3; + meta.ing_metadata.f3 = (bit<256>)f3; } @name(".set_f4") action set_f4(bit<128> f4) { - meta.ing_metadata.f4 = f4; + meta.ing_metadata.f4 = (bit<128>)f4; } @name("i_t1") table i_t1 { actions = { diff --git a/testdata/p4_14_samples_outputs/01-DeadMetadata1.p4 b/testdata/p4_14_samples_outputs/01-DeadMetadata1.p4 index 4a7a4400a2f..e12d48e2327 100644 --- a/testdata/p4_14_samples_outputs/01-DeadMetadata1.p4 +++ b/testdata/p4_14_samples_outputs/01-DeadMetadata1.p4 @@ -26,7 +26,7 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".a1") action a1() { - meta.m.f1 = 32w1; + meta.m.f1 = (bit<32>)32w1; } @name("t1") table t1 { actions = { diff --git a/testdata/p4_14_samples_outputs/01-FullPHV.p4 b/testdata/p4_14_samples_outputs/01-FullPHV.p4 index 2f4b1c1f175..02e899540a1 100644 --- a/testdata/p4_14_samples_outputs/01-FullPHV.p4 +++ b/testdata/p4_14_samples_outputs/01-FullPHV.p4 @@ -258,230 +258,230 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".a1") action a1() { - meta.m.field_8_01 = 8w1; - meta.m.field_8_02 = 8w2; - meta.m.field_8_03 = 8w3; - meta.m.field_8_04 = 8w4; - meta.m.field_8_05 = 8w5; - meta.m.field_8_06 = 8w6; - meta.m.field_8_07 = 8w7; - meta.m.field_8_08 = 8w8; - meta.m.field_8_09 = 8w9; - meta.m.field_8_10 = 8w10; - meta.m.field_8_11 = 8w11; - meta.m.field_8_12 = 8w12; - meta.m.field_8_13 = 8w13; - meta.m.field_8_14 = 8w14; - meta.m.field_8_15 = 8w15; - meta.m.field_8_16 = 8w16; - meta.m.field_8_17 = 8w17; - meta.m.field_8_18 = 8w18; - meta.m.field_8_19 = 8w19; - meta.m.field_8_20 = 8w20; - meta.m.field_8_21 = 8w21; - meta.m.field_8_22 = 8w22; - meta.m.field_8_23 = 8w23; - meta.m.field_8_24 = 8w24; - meta.m.field_8_25 = 8w25; - meta.m.field_8_26 = 8w26; - meta.m.field_8_27 = 8w27; - meta.m.field_8_28 = 8w28; - meta.m.field_8_29 = 8w29; - meta.m.field_8_30 = 8w30; - meta.m.field_8_31 = 8w31; - meta.m.field_8_32 = 8w32; - meta.m.field_8_33 = 8w33; - meta.m.field_8_34 = 8w34; - meta.m.field_8_35 = 8w35; - meta.m.field_8_36 = 8w36; - meta.m.field_8_37 = 8w37; - meta.m.field_8_38 = 8w38; - meta.m.field_8_39 = 8w39; - meta.m.field_8_40 = 8w40; - meta.m.field_8_41 = 8w41; - meta.m.field_8_42 = 8w42; - meta.m.field_8_43 = 8w43; - meta.m.field_8_44 = 8w44; - meta.m.field_8_45 = 8w45; - meta.m.field_8_46 = 8w46; - meta.m.field_8_47 = 8w47; - meta.m.field_8_48 = 8w48; - meta.m.field_8_49 = 8w49; - meta.m.field_8_50 = 8w50; - meta.m.field_8_51 = 8w51; - meta.m.field_8_52 = 8w52; - meta.m.field_8_53 = 8w53; - meta.m.field_8_54 = 8w54; - meta.m.field_8_55 = 8w55; - meta.m.field_8_56 = 8w56; - meta.m.field_8_57 = 8w57; - meta.m.field_8_58 = 8w58; - meta.m.field_8_59 = 8w59; - meta.m.field_8_60 = 8w60; - meta.m.field_8_61 = 8w61; - meta.m.field_8_62 = 8w62; - meta.m.field_8_63 = 8w63; - meta.m.field_8_64 = 8w64; - meta.m.field_16_01 = 16w1; - meta.m.field_16_02 = 16w2; - meta.m.field_16_03 = 16w3; - meta.m.field_16_04 = 16w4; - meta.m.field_16_05 = 16w5; - meta.m.field_16_06 = 16w6; - meta.m.field_16_07 = 16w7; - meta.m.field_16_08 = 16w8; - meta.m.field_16_09 = 16w9; - meta.m.field_16_10 = 16w10; - meta.m.field_16_11 = 16w11; - meta.m.field_16_12 = 16w12; - meta.m.field_16_13 = 16w13; - meta.m.field_16_14 = 16w14; - meta.m.field_16_15 = 16w15; - meta.m.field_16_16 = 16w16; - meta.m.field_16_17 = 16w17; - meta.m.field_16_18 = 16w18; - meta.m.field_16_19 = 16w19; - meta.m.field_16_20 = 16w20; - meta.m.field_16_21 = 16w21; - meta.m.field_16_22 = 16w22; - meta.m.field_16_23 = 16w23; - meta.m.field_16_24 = 16w24; - meta.m.field_16_25 = 16w25; - meta.m.field_16_26 = 16w26; - meta.m.field_16_27 = 16w27; - meta.m.field_16_28 = 16w28; - meta.m.field_16_29 = 16w29; - meta.m.field_16_30 = 16w30; - meta.m.field_16_31 = 16w31; - meta.m.field_16_32 = 16w32; - meta.m.field_16_33 = 16w33; - meta.m.field_16_34 = 16w34; - meta.m.field_16_35 = 16w35; - meta.m.field_16_36 = 16w36; - meta.m.field_16_37 = 16w37; - meta.m.field_16_38 = 16w38; - meta.m.field_16_39 = 16w39; - meta.m.field_16_40 = 16w40; - meta.m.field_16_41 = 16w41; - meta.m.field_16_42 = 16w42; - meta.m.field_16_43 = 16w43; - meta.m.field_16_44 = 16w44; - meta.m.field_16_45 = 16w45; - meta.m.field_16_46 = 16w46; - meta.m.field_16_47 = 16w47; - meta.m.field_16_48 = 16w48; - meta.m.field_16_49 = 16w49; - meta.m.field_16_50 = 16w50; - meta.m.field_16_51 = 16w51; - meta.m.field_16_52 = 16w52; - meta.m.field_16_53 = 16w53; - meta.m.field_16_54 = 16w54; - meta.m.field_16_55 = 16w55; - meta.m.field_16_56 = 16w56; - meta.m.field_16_57 = 16w57; - meta.m.field_16_58 = 16w58; - meta.m.field_16_59 = 16w59; - meta.m.field_16_60 = 16w60; - meta.m.field_16_61 = 16w61; - meta.m.field_16_62 = 16w62; - meta.m.field_16_63 = 16w63; - meta.m.field_16_64 = 16w64; - meta.m.field_16_65 = 16w65; - meta.m.field_16_66 = 16w66; - meta.m.field_16_67 = 16w67; - meta.m.field_16_68 = 16w68; - meta.m.field_16_69 = 16w69; - meta.m.field_16_70 = 16w70; - meta.m.field_16_71 = 16w71; - meta.m.field_16_72 = 16w72; - meta.m.field_16_73 = 16w73; - meta.m.field_16_74 = 16w74; - meta.m.field_16_75 = 16w75; - meta.m.field_16_76 = 16w76; - meta.m.field_16_77 = 16w77; - meta.m.field_16_78 = 16w78; - meta.m.field_16_79 = 16w79; - meta.m.field_16_80 = 16w80; - meta.m.field_16_81 = 16w81; - meta.m.field_16_82 = 16w82; - meta.m.field_16_83 = 16w83; - meta.m.field_16_84 = 16w84; - meta.m.field_16_85 = 16w85; - meta.m.field_16_86 = 16w86; - meta.m.field_16_87 = 16w87; - meta.m.field_16_88 = 16w88; - meta.m.field_16_89 = 16w89; - meta.m.field_16_90 = 16w90; - meta.m.field_16_91 = 16w91; - meta.m.field_16_92 = 16w92; - meta.m.field_16_93 = 16w93; - meta.m.field_16_94 = 16w94; - meta.m.field_16_95 = 16w95; - meta.m.field_16_96 = 16w96; - meta.m.field_32_01 = 32w1; - meta.m.field_32_02 = 32w2; - meta.m.field_32_03 = 32w3; - meta.m.field_32_04 = 32w4; - meta.m.field_32_05 = 32w5; - meta.m.field_32_06 = 32w6; - meta.m.field_32_07 = 32w7; - meta.m.field_32_08 = 32w8; - meta.m.field_32_09 = 32w9; - meta.m.field_32_10 = 32w10; - meta.m.field_32_11 = 32w11; - meta.m.field_32_12 = 32w12; - meta.m.field_32_13 = 32w13; - meta.m.field_32_14 = 32w14; - meta.m.field_32_15 = 32w15; - meta.m.field_32_16 = 32w16; - meta.m.field_32_17 = 32w17; - meta.m.field_32_18 = 32w18; - meta.m.field_32_19 = 32w19; - meta.m.field_32_20 = 32w20; - meta.m.field_32_21 = 32w21; - meta.m.field_32_22 = 32w22; - meta.m.field_32_23 = 32w23; - meta.m.field_32_24 = 32w24; - meta.m.field_32_25 = 32w25; - meta.m.field_32_26 = 32w26; - meta.m.field_32_27 = 32w27; - meta.m.field_32_28 = 32w28; - meta.m.field_32_29 = 32w29; - meta.m.field_32_30 = 32w30; - meta.m.field_32_31 = 32w31; - meta.m.field_32_32 = 32w32; - meta.m.field_32_33 = 32w33; - meta.m.field_32_34 = 32w34; - meta.m.field_32_35 = 32w35; - meta.m.field_32_36 = 32w36; - meta.m.field_32_37 = 32w37; - meta.m.field_32_38 = 32w38; - meta.m.field_32_39 = 32w39; - meta.m.field_32_40 = 32w40; - meta.m.field_32_41 = 32w41; - meta.m.field_32_42 = 32w42; - meta.m.field_32_43 = 32w43; - meta.m.field_32_44 = 32w44; - meta.m.field_32_45 = 32w45; - meta.m.field_32_46 = 32w46; - meta.m.field_32_47 = 32w47; - meta.m.field_32_48 = 32w48; - meta.m.field_32_49 = 32w49; - meta.m.field_32_50 = 32w50; - meta.m.field_32_51 = 32w51; - meta.m.field_32_52 = 32w52; - meta.m.field_32_53 = 32w53; - meta.m.field_32_54 = 32w54; - meta.m.field_32_55 = 32w55; - meta.m.field_32_56 = 32w56; - meta.m.field_32_57 = 32w57; - meta.m.field_32_58 = 32w58; - meta.m.field_32_59 = 32w59; - meta.m.field_32_60 = 32w60; - meta.m.field_32_61 = 32w61; - meta.m.field_32_62 = 32w62; - meta.m.field_32_63 = 32w63; - meta.m.field_32_64 = 32w64; + meta.m.field_8_01 = (bit<8>)8w1; + meta.m.field_8_02 = (bit<8>)8w2; + meta.m.field_8_03 = (bit<8>)8w3; + meta.m.field_8_04 = (bit<8>)8w4; + meta.m.field_8_05 = (bit<8>)8w5; + meta.m.field_8_06 = (bit<8>)8w6; + meta.m.field_8_07 = (bit<8>)8w7; + meta.m.field_8_08 = (bit<8>)8w8; + meta.m.field_8_09 = (bit<8>)8w9; + meta.m.field_8_10 = (bit<8>)8w10; + meta.m.field_8_11 = (bit<8>)8w11; + meta.m.field_8_12 = (bit<8>)8w12; + meta.m.field_8_13 = (bit<8>)8w13; + meta.m.field_8_14 = (bit<8>)8w14; + meta.m.field_8_15 = (bit<8>)8w15; + meta.m.field_8_16 = (bit<8>)8w16; + meta.m.field_8_17 = (bit<8>)8w17; + meta.m.field_8_18 = (bit<8>)8w18; + meta.m.field_8_19 = (bit<8>)8w19; + meta.m.field_8_20 = (bit<8>)8w20; + meta.m.field_8_21 = (bit<8>)8w21; + meta.m.field_8_22 = (bit<8>)8w22; + meta.m.field_8_23 = (bit<8>)8w23; + meta.m.field_8_24 = (bit<8>)8w24; + meta.m.field_8_25 = (bit<8>)8w25; + meta.m.field_8_26 = (bit<8>)8w26; + meta.m.field_8_27 = (bit<8>)8w27; + meta.m.field_8_28 = (bit<8>)8w28; + meta.m.field_8_29 = (bit<8>)8w29; + meta.m.field_8_30 = (bit<8>)8w30; + meta.m.field_8_31 = (bit<8>)8w31; + meta.m.field_8_32 = (bit<8>)8w32; + meta.m.field_8_33 = (bit<8>)8w33; + meta.m.field_8_34 = (bit<8>)8w34; + meta.m.field_8_35 = (bit<8>)8w35; + meta.m.field_8_36 = (bit<8>)8w36; + meta.m.field_8_37 = (bit<8>)8w37; + meta.m.field_8_38 = (bit<8>)8w38; + meta.m.field_8_39 = (bit<8>)8w39; + meta.m.field_8_40 = (bit<8>)8w40; + meta.m.field_8_41 = (bit<8>)8w41; + meta.m.field_8_42 = (bit<8>)8w42; + meta.m.field_8_43 = (bit<8>)8w43; + meta.m.field_8_44 = (bit<8>)8w44; + meta.m.field_8_45 = (bit<8>)8w45; + meta.m.field_8_46 = (bit<8>)8w46; + meta.m.field_8_47 = (bit<8>)8w47; + meta.m.field_8_48 = (bit<8>)8w48; + meta.m.field_8_49 = (bit<8>)8w49; + meta.m.field_8_50 = (bit<8>)8w50; + meta.m.field_8_51 = (bit<8>)8w51; + meta.m.field_8_52 = (bit<8>)8w52; + meta.m.field_8_53 = (bit<8>)8w53; + meta.m.field_8_54 = (bit<8>)8w54; + meta.m.field_8_55 = (bit<8>)8w55; + meta.m.field_8_56 = (bit<8>)8w56; + meta.m.field_8_57 = (bit<8>)8w57; + meta.m.field_8_58 = (bit<8>)8w58; + meta.m.field_8_59 = (bit<8>)8w59; + meta.m.field_8_60 = (bit<8>)8w60; + meta.m.field_8_61 = (bit<8>)8w61; + meta.m.field_8_62 = (bit<8>)8w62; + meta.m.field_8_63 = (bit<8>)8w63; + meta.m.field_8_64 = (bit<8>)8w64; + meta.m.field_16_01 = (bit<16>)16w1; + meta.m.field_16_02 = (bit<16>)16w2; + meta.m.field_16_03 = (bit<16>)16w3; + meta.m.field_16_04 = (bit<16>)16w4; + meta.m.field_16_05 = (bit<16>)16w5; + meta.m.field_16_06 = (bit<16>)16w6; + meta.m.field_16_07 = (bit<16>)16w7; + meta.m.field_16_08 = (bit<16>)16w8; + meta.m.field_16_09 = (bit<16>)16w9; + meta.m.field_16_10 = (bit<16>)16w10; + meta.m.field_16_11 = (bit<16>)16w11; + meta.m.field_16_12 = (bit<16>)16w12; + meta.m.field_16_13 = (bit<16>)16w13; + meta.m.field_16_14 = (bit<16>)16w14; + meta.m.field_16_15 = (bit<16>)16w15; + meta.m.field_16_16 = (bit<16>)16w16; + meta.m.field_16_17 = (bit<16>)16w17; + meta.m.field_16_18 = (bit<16>)16w18; + meta.m.field_16_19 = (bit<16>)16w19; + meta.m.field_16_20 = (bit<16>)16w20; + meta.m.field_16_21 = (bit<16>)16w21; + meta.m.field_16_22 = (bit<16>)16w22; + meta.m.field_16_23 = (bit<16>)16w23; + meta.m.field_16_24 = (bit<16>)16w24; + meta.m.field_16_25 = (bit<16>)16w25; + meta.m.field_16_26 = (bit<16>)16w26; + meta.m.field_16_27 = (bit<16>)16w27; + meta.m.field_16_28 = (bit<16>)16w28; + meta.m.field_16_29 = (bit<16>)16w29; + meta.m.field_16_30 = (bit<16>)16w30; + meta.m.field_16_31 = (bit<16>)16w31; + meta.m.field_16_32 = (bit<16>)16w32; + meta.m.field_16_33 = (bit<16>)16w33; + meta.m.field_16_34 = (bit<16>)16w34; + meta.m.field_16_35 = (bit<16>)16w35; + meta.m.field_16_36 = (bit<16>)16w36; + meta.m.field_16_37 = (bit<16>)16w37; + meta.m.field_16_38 = (bit<16>)16w38; + meta.m.field_16_39 = (bit<16>)16w39; + meta.m.field_16_40 = (bit<16>)16w40; + meta.m.field_16_41 = (bit<16>)16w41; + meta.m.field_16_42 = (bit<16>)16w42; + meta.m.field_16_43 = (bit<16>)16w43; + meta.m.field_16_44 = (bit<16>)16w44; + meta.m.field_16_45 = (bit<16>)16w45; + meta.m.field_16_46 = (bit<16>)16w46; + meta.m.field_16_47 = (bit<16>)16w47; + meta.m.field_16_48 = (bit<16>)16w48; + meta.m.field_16_49 = (bit<16>)16w49; + meta.m.field_16_50 = (bit<16>)16w50; + meta.m.field_16_51 = (bit<16>)16w51; + meta.m.field_16_52 = (bit<16>)16w52; + meta.m.field_16_53 = (bit<16>)16w53; + meta.m.field_16_54 = (bit<16>)16w54; + meta.m.field_16_55 = (bit<16>)16w55; + meta.m.field_16_56 = (bit<16>)16w56; + meta.m.field_16_57 = (bit<16>)16w57; + meta.m.field_16_58 = (bit<16>)16w58; + meta.m.field_16_59 = (bit<16>)16w59; + meta.m.field_16_60 = (bit<16>)16w60; + meta.m.field_16_61 = (bit<16>)16w61; + meta.m.field_16_62 = (bit<16>)16w62; + meta.m.field_16_63 = (bit<16>)16w63; + meta.m.field_16_64 = (bit<16>)16w64; + meta.m.field_16_65 = (bit<16>)16w65; + meta.m.field_16_66 = (bit<16>)16w66; + meta.m.field_16_67 = (bit<16>)16w67; + meta.m.field_16_68 = (bit<16>)16w68; + meta.m.field_16_69 = (bit<16>)16w69; + meta.m.field_16_70 = (bit<16>)16w70; + meta.m.field_16_71 = (bit<16>)16w71; + meta.m.field_16_72 = (bit<16>)16w72; + meta.m.field_16_73 = (bit<16>)16w73; + meta.m.field_16_74 = (bit<16>)16w74; + meta.m.field_16_75 = (bit<16>)16w75; + meta.m.field_16_76 = (bit<16>)16w76; + meta.m.field_16_77 = (bit<16>)16w77; + meta.m.field_16_78 = (bit<16>)16w78; + meta.m.field_16_79 = (bit<16>)16w79; + meta.m.field_16_80 = (bit<16>)16w80; + meta.m.field_16_81 = (bit<16>)16w81; + meta.m.field_16_82 = (bit<16>)16w82; + meta.m.field_16_83 = (bit<16>)16w83; + meta.m.field_16_84 = (bit<16>)16w84; + meta.m.field_16_85 = (bit<16>)16w85; + meta.m.field_16_86 = (bit<16>)16w86; + meta.m.field_16_87 = (bit<16>)16w87; + meta.m.field_16_88 = (bit<16>)16w88; + meta.m.field_16_89 = (bit<16>)16w89; + meta.m.field_16_90 = (bit<16>)16w90; + meta.m.field_16_91 = (bit<16>)16w91; + meta.m.field_16_92 = (bit<16>)16w92; + meta.m.field_16_93 = (bit<16>)16w93; + meta.m.field_16_94 = (bit<16>)16w94; + meta.m.field_16_95 = (bit<16>)16w95; + meta.m.field_16_96 = (bit<16>)16w96; + meta.m.field_32_01 = (bit<32>)32w1; + meta.m.field_32_02 = (bit<32>)32w2; + meta.m.field_32_03 = (bit<32>)32w3; + meta.m.field_32_04 = (bit<32>)32w4; + meta.m.field_32_05 = (bit<32>)32w5; + meta.m.field_32_06 = (bit<32>)32w6; + meta.m.field_32_07 = (bit<32>)32w7; + meta.m.field_32_08 = (bit<32>)32w8; + meta.m.field_32_09 = (bit<32>)32w9; + meta.m.field_32_10 = (bit<32>)32w10; + meta.m.field_32_11 = (bit<32>)32w11; + meta.m.field_32_12 = (bit<32>)32w12; + meta.m.field_32_13 = (bit<32>)32w13; + meta.m.field_32_14 = (bit<32>)32w14; + meta.m.field_32_15 = (bit<32>)32w15; + meta.m.field_32_16 = (bit<32>)32w16; + meta.m.field_32_17 = (bit<32>)32w17; + meta.m.field_32_18 = (bit<32>)32w18; + meta.m.field_32_19 = (bit<32>)32w19; + meta.m.field_32_20 = (bit<32>)32w20; + meta.m.field_32_21 = (bit<32>)32w21; + meta.m.field_32_22 = (bit<32>)32w22; + meta.m.field_32_23 = (bit<32>)32w23; + meta.m.field_32_24 = (bit<32>)32w24; + meta.m.field_32_25 = (bit<32>)32w25; + meta.m.field_32_26 = (bit<32>)32w26; + meta.m.field_32_27 = (bit<32>)32w27; + meta.m.field_32_28 = (bit<32>)32w28; + meta.m.field_32_29 = (bit<32>)32w29; + meta.m.field_32_30 = (bit<32>)32w30; + meta.m.field_32_31 = (bit<32>)32w31; + meta.m.field_32_32 = (bit<32>)32w32; + meta.m.field_32_33 = (bit<32>)32w33; + meta.m.field_32_34 = (bit<32>)32w34; + meta.m.field_32_35 = (bit<32>)32w35; + meta.m.field_32_36 = (bit<32>)32w36; + meta.m.field_32_37 = (bit<32>)32w37; + meta.m.field_32_38 = (bit<32>)32w38; + meta.m.field_32_39 = (bit<32>)32w39; + meta.m.field_32_40 = (bit<32>)32w40; + meta.m.field_32_41 = (bit<32>)32w41; + meta.m.field_32_42 = (bit<32>)32w42; + meta.m.field_32_43 = (bit<32>)32w43; + meta.m.field_32_44 = (bit<32>)32w44; + meta.m.field_32_45 = (bit<32>)32w45; + meta.m.field_32_46 = (bit<32>)32w46; + meta.m.field_32_47 = (bit<32>)32w47; + meta.m.field_32_48 = (bit<32>)32w48; + meta.m.field_32_49 = (bit<32>)32w49; + meta.m.field_32_50 = (bit<32>)32w50; + meta.m.field_32_51 = (bit<32>)32w51; + meta.m.field_32_52 = (bit<32>)32w52; + meta.m.field_32_53 = (bit<32>)32w53; + meta.m.field_32_54 = (bit<32>)32w54; + meta.m.field_32_55 = (bit<32>)32w55; + meta.m.field_32_56 = (bit<32>)32w56; + meta.m.field_32_57 = (bit<32>)32w57; + meta.m.field_32_58 = (bit<32>)32w58; + meta.m.field_32_59 = (bit<32>)32w59; + meta.m.field_32_60 = (bit<32>)32w60; + meta.m.field_32_61 = (bit<32>)32w61; + meta.m.field_32_62 = (bit<32>)32w62; + meta.m.field_32_63 = (bit<32>)32w63; + meta.m.field_32_64 = (bit<32>)32w64; } @name("t1") table t1 { actions = { diff --git a/testdata/p4_14_samples_outputs/01-NoDeps.p4 b/testdata/p4_14_samples_outputs/01-NoDeps.p4 index 4e995087af0..71c29fec3a9 100644 --- a/testdata/p4_14_samples_outputs/01-NoDeps.p4 +++ b/testdata/p4_14_samples_outputs/01-NoDeps.p4 @@ -51,10 +51,10 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name(".nop") action nop() { } @name(".set_egress_port") action set_egress_port(bit<8> egress_port) { - meta.ing_metadata.egress_port = egress_port; + meta.ing_metadata.egress_port = (bit<8>)egress_port; } @name(".ing_drop") action ing_drop() { - meta.ing_metadata.drop = 1w1; + meta.ing_metadata.drop = (bit<1>)1w1; } @name("dmac") table dmac { actions = { diff --git a/testdata/p4_14_samples_outputs/02-BadSizeField.p4 b/testdata/p4_14_samples_outputs/02-BadSizeField.p4 index fb3216589f1..fce5fbe3078 100644 --- a/testdata/p4_14_samples_outputs/02-BadSizeField.p4 +++ b/testdata/p4_14_samples_outputs/02-BadSizeField.p4 @@ -59,7 +59,7 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name(".nop") action nop() { } @name(".set_egress_port") action set_egress_port(bit<8> egress_port) { - meta.ing_metadata.egress_port = egress_port; + meta.ing_metadata.egress_port = (bit<8>)egress_port; } @name("i_t1") table i_t1 { actions = { diff --git a/testdata/p4_14_samples_outputs/02-DeadMetadata2.p4 b/testdata/p4_14_samples_outputs/02-DeadMetadata2.p4 index a4f01f6968d..38802aa1685 100644 --- a/testdata/p4_14_samples_outputs/02-DeadMetadata2.p4 +++ b/testdata/p4_14_samples_outputs/02-DeadMetadata2.p4 @@ -15,7 +15,7 @@ struct headers { parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name("start") state start { - meta.m.f1 = 32w2; + meta.m.f1 = (bit<32>)32w2; transition accept; } } @@ -27,7 +27,7 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".a1") action a1() { - meta.m.f1 = 32w1; + meta.m.f1 = (bit<32>)32w1; } @name("t1") table t1 { actions = { diff --git a/testdata/p4_14_samples_outputs/02-FullPHV1.p4 b/testdata/p4_14_samples_outputs/02-FullPHV1.p4 index 9f4e80ec220..ef80bb9e3c2 100644 --- a/testdata/p4_14_samples_outputs/02-FullPHV1.p4 +++ b/testdata/p4_14_samples_outputs/02-FullPHV1.p4 @@ -258,308 +258,308 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".a1") action a1() { - meta.m.field_8_01 = 8w1; - meta.m.field_8_02 = 8w2; - meta.m.field_8_03 = 8w3; - meta.m.field_8_04 = 8w4; - meta.m.field_8_05 = 8w5; - meta.m.field_8_06 = 8w6; - meta.m.field_8_07 = 8w7; - meta.m.field_8_08 = 8w8; - meta.m.field_8_09 = 8w9; - meta.m.field_8_10 = 8w10; - meta.m.field_8_11 = 8w11; - meta.m.field_8_12 = 8w12; - meta.m.field_8_13 = 8w13; - meta.m.field_8_14 = 8w14; - meta.m.field_8_15 = 8w15; - meta.m.field_8_16 = 8w16; - meta.m.field_8_17 = 8w17; - meta.m.field_8_18 = 8w18; - meta.m.field_8_19 = 8w19; - meta.m.field_8_20 = 8w20; - meta.m.field_8_21 = 8w21; - meta.m.field_8_22 = 8w22; - meta.m.field_8_23 = 8w23; - meta.m.field_8_24 = 8w24; - meta.m.field_8_25 = 8w25; - meta.m.field_8_26 = 8w26; - meta.m.field_8_27 = 8w27; - meta.m.field_8_28 = 8w28; - meta.m.field_8_29 = 8w29; - meta.m.field_8_30 = 8w30; - meta.m.field_8_31 = 8w31; - meta.m.field_8_32 = 8w32; - meta.m.field_8_33 = 8w33; - meta.m.field_8_34 = 8w34; - meta.m.field_8_35 = 8w35; - meta.m.field_8_36 = 8w36; - meta.m.field_8_37 = 8w37; - meta.m.field_8_38 = 8w38; - meta.m.field_8_39 = 8w39; - meta.m.field_8_40 = 8w40; - meta.m.field_8_41 = 8w41; - meta.m.field_8_42 = 8w42; - meta.m.field_8_43 = 8w43; - meta.m.field_8_44 = 8w44; - meta.m.field_8_45 = 8w45; - meta.m.field_8_46 = 8w46; - meta.m.field_8_47 = 8w47; - meta.m.field_8_48 = 8w48; - meta.m.field_8_49 = 8w49; - meta.m.field_8_50 = 8w50; - meta.m.field_8_51 = 8w51; - meta.m.field_8_52 = 8w52; - meta.m.field_8_53 = 8w53; - meta.m.field_8_54 = 8w54; - meta.m.field_8_55 = 8w55; - meta.m.field_8_56 = 8w56; - meta.m.field_8_57 = 8w57; - meta.m.field_8_58 = 8w58; - meta.m.field_8_59 = 8w59; - meta.m.field_8_60 = 8w60; - meta.m.field_8_61 = 8w61; - meta.m.field_8_62 = 8w62; - meta.m.field_8_63 = 8w63; - meta.m.field_8_64 = 8w64; - meta.m.field_16_01 = 16w1; - meta.m.field_16_02 = 16w2; - meta.m.field_16_03 = 16w3; - meta.m.field_16_04 = 16w4; - meta.m.field_16_05 = 16w5; - meta.m.field_16_06 = 16w6; - meta.m.field_16_07 = 16w7; - meta.m.field_16_08 = 16w8; - meta.m.field_16_09 = 16w9; - meta.m.field_16_10 = 16w10; - meta.m.field_16_11 = 16w11; - meta.m.field_16_12 = 16w12; - meta.m.field_16_13 = 16w13; - meta.m.field_16_14 = 16w14; - meta.m.field_16_15 = 16w15; - meta.m.field_16_16 = 16w16; - meta.m.field_16_17 = 16w17; - meta.m.field_16_18 = 16w18; - meta.m.field_16_19 = 16w19; - meta.m.field_16_20 = 16w20; - meta.m.field_16_21 = 16w21; - meta.m.field_16_22 = 16w22; - meta.m.field_16_23 = 16w23; - meta.m.field_16_24 = 16w24; - meta.m.field_16_25 = 16w25; - meta.m.field_16_26 = 16w26; - meta.m.field_16_27 = 16w27; - meta.m.field_16_28 = 16w28; - meta.m.field_16_29 = 16w29; - meta.m.field_16_30 = 16w30; - meta.m.field_16_31 = 16w31; - meta.m.field_16_32 = 16w32; - meta.m.field_16_33 = 16w33; - meta.m.field_16_34 = 16w34; - meta.m.field_16_35 = 16w35; - meta.m.field_16_36 = 16w36; - meta.m.field_16_37 = 16w37; - meta.m.field_16_38 = 16w38; - meta.m.field_16_39 = 16w39; - meta.m.field_16_40 = 16w40; - meta.m.field_16_41 = 16w41; - meta.m.field_16_42 = 16w42; - meta.m.field_16_43 = 16w43; - meta.m.field_16_44 = 16w44; - meta.m.field_16_45 = 16w45; - meta.m.field_16_46 = 16w46; - meta.m.field_16_47 = 16w47; - meta.m.field_16_48 = 16w48; - meta.m.field_16_49 = 16w49; - meta.m.field_16_50 = 16w50; - meta.m.field_16_51 = 16w51; - meta.m.field_16_52 = 16w52; - meta.m.field_16_53 = 16w53; - meta.m.field_16_54 = 16w54; - meta.m.field_16_55 = 16w55; - meta.m.field_16_56 = 16w56; - meta.m.field_16_57 = 16w57; - meta.m.field_16_58 = 16w58; - meta.m.field_16_59 = 16w59; - meta.m.field_16_60 = 16w60; - meta.m.field_16_61 = 16w61; - meta.m.field_16_62 = 16w62; - meta.m.field_16_63 = 16w63; - meta.m.field_16_64 = 16w64; - meta.m.field_16_65 = 16w65; - meta.m.field_16_66 = 16w66; - meta.m.field_16_67 = 16w67; - meta.m.field_16_68 = 16w68; - meta.m.field_16_69 = 16w69; - meta.m.field_16_70 = 16w70; - meta.m.field_16_71 = 16w71; - meta.m.field_16_72 = 16w72; - meta.m.field_16_73 = 16w73; - meta.m.field_16_74 = 16w74; - meta.m.field_16_75 = 16w75; - meta.m.field_16_76 = 16w76; - meta.m.field_16_77 = 16w77; - meta.m.field_16_78 = 16w78; - meta.m.field_16_79 = 16w79; - meta.m.field_16_80 = 16w80; - meta.m.field_16_81 = 16w81; - meta.m.field_16_82 = 16w82; - meta.m.field_16_83 = 16w83; - meta.m.field_16_84 = 16w84; - meta.m.field_16_85 = 16w85; - meta.m.field_16_86 = 16w86; - meta.m.field_16_87 = 16w87; - meta.m.field_16_88 = 16w88; - meta.m.field_16_89 = 16w89; - meta.m.field_16_90 = 16w90; - meta.m.field_16_91 = 16w91; - meta.m.field_16_92 = 16w92; - meta.m.field_16_93 = 16w93; - meta.m.field_16_94 = 16w94; - meta.m.field_16_95 = 16w95; - meta.m.field_16_96 = 16w96; - meta.m.field_32_01 = 32w1; - meta.m.field_32_02 = 32w2; - meta.m.field_32_03 = 32w3; - meta.m.field_32_04 = 32w4; - meta.m.field_32_05 = 32w5; - meta.m.field_32_06 = 32w6; - meta.m.field_32_07 = 32w7; - meta.m.field_32_08 = 32w8; - meta.m.field_32_09 = 32w9; - meta.m.field_32_10 = 32w10; - meta.m.field_32_11 = 32w11; - meta.m.field_32_12 = 32w12; - meta.m.field_32_13 = 32w13; - meta.m.field_32_14 = 32w14; - meta.m.field_32_15 = 32w15; - meta.m.field_32_16 = 32w16; - meta.m.field_32_17 = 32w17; - meta.m.field_32_18 = 32w18; - meta.m.field_32_19 = 32w19; - meta.m.field_32_20 = 32w20; - meta.m.field_32_21 = 32w21; - meta.m.field_32_22 = 32w22; - meta.m.field_32_23 = 32w23; - meta.m.field_32_24 = 32w24; - meta.m.field_32_25 = 32w25; - meta.m.field_32_26 = 32w26; - meta.m.field_32_27 = 32w27; - meta.m.field_32_28 = 32w28; - meta.m.field_32_29 = 32w29; - meta.m.field_32_30 = 32w30; - meta.m.field_32_31 = 32w31; - meta.m.field_32_32 = 32w32; - meta.m.field_32_33 = 32w33; - meta.m.field_32_34 = 32w34; - meta.m.field_32_35 = 32w35; - meta.m.field_32_36 = 32w36; - meta.m.field_32_37 = 32w37; - meta.m.field_32_38 = 32w38; - meta.m.field_32_39 = 32w39; + meta.m.field_8_01 = (bit<8>)8w1; + meta.m.field_8_02 = (bit<8>)8w2; + meta.m.field_8_03 = (bit<8>)8w3; + meta.m.field_8_04 = (bit<8>)8w4; + meta.m.field_8_05 = (bit<8>)8w5; + meta.m.field_8_06 = (bit<8>)8w6; + meta.m.field_8_07 = (bit<8>)8w7; + meta.m.field_8_08 = (bit<8>)8w8; + meta.m.field_8_09 = (bit<8>)8w9; + meta.m.field_8_10 = (bit<8>)8w10; + meta.m.field_8_11 = (bit<8>)8w11; + meta.m.field_8_12 = (bit<8>)8w12; + meta.m.field_8_13 = (bit<8>)8w13; + meta.m.field_8_14 = (bit<8>)8w14; + meta.m.field_8_15 = (bit<8>)8w15; + meta.m.field_8_16 = (bit<8>)8w16; + meta.m.field_8_17 = (bit<8>)8w17; + meta.m.field_8_18 = (bit<8>)8w18; + meta.m.field_8_19 = (bit<8>)8w19; + meta.m.field_8_20 = (bit<8>)8w20; + meta.m.field_8_21 = (bit<8>)8w21; + meta.m.field_8_22 = (bit<8>)8w22; + meta.m.field_8_23 = (bit<8>)8w23; + meta.m.field_8_24 = (bit<8>)8w24; + meta.m.field_8_25 = (bit<8>)8w25; + meta.m.field_8_26 = (bit<8>)8w26; + meta.m.field_8_27 = (bit<8>)8w27; + meta.m.field_8_28 = (bit<8>)8w28; + meta.m.field_8_29 = (bit<8>)8w29; + meta.m.field_8_30 = (bit<8>)8w30; + meta.m.field_8_31 = (bit<8>)8w31; + meta.m.field_8_32 = (bit<8>)8w32; + meta.m.field_8_33 = (bit<8>)8w33; + meta.m.field_8_34 = (bit<8>)8w34; + meta.m.field_8_35 = (bit<8>)8w35; + meta.m.field_8_36 = (bit<8>)8w36; + meta.m.field_8_37 = (bit<8>)8w37; + meta.m.field_8_38 = (bit<8>)8w38; + meta.m.field_8_39 = (bit<8>)8w39; + meta.m.field_8_40 = (bit<8>)8w40; + meta.m.field_8_41 = (bit<8>)8w41; + meta.m.field_8_42 = (bit<8>)8w42; + meta.m.field_8_43 = (bit<8>)8w43; + meta.m.field_8_44 = (bit<8>)8w44; + meta.m.field_8_45 = (bit<8>)8w45; + meta.m.field_8_46 = (bit<8>)8w46; + meta.m.field_8_47 = (bit<8>)8w47; + meta.m.field_8_48 = (bit<8>)8w48; + meta.m.field_8_49 = (bit<8>)8w49; + meta.m.field_8_50 = (bit<8>)8w50; + meta.m.field_8_51 = (bit<8>)8w51; + meta.m.field_8_52 = (bit<8>)8w52; + meta.m.field_8_53 = (bit<8>)8w53; + meta.m.field_8_54 = (bit<8>)8w54; + meta.m.field_8_55 = (bit<8>)8w55; + meta.m.field_8_56 = (bit<8>)8w56; + meta.m.field_8_57 = (bit<8>)8w57; + meta.m.field_8_58 = (bit<8>)8w58; + meta.m.field_8_59 = (bit<8>)8w59; + meta.m.field_8_60 = (bit<8>)8w60; + meta.m.field_8_61 = (bit<8>)8w61; + meta.m.field_8_62 = (bit<8>)8w62; + meta.m.field_8_63 = (bit<8>)8w63; + meta.m.field_8_64 = (bit<8>)8w64; + meta.m.field_16_01 = (bit<16>)16w1; + meta.m.field_16_02 = (bit<16>)16w2; + meta.m.field_16_03 = (bit<16>)16w3; + meta.m.field_16_04 = (bit<16>)16w4; + meta.m.field_16_05 = (bit<16>)16w5; + meta.m.field_16_06 = (bit<16>)16w6; + meta.m.field_16_07 = (bit<16>)16w7; + meta.m.field_16_08 = (bit<16>)16w8; + meta.m.field_16_09 = (bit<16>)16w9; + meta.m.field_16_10 = (bit<16>)16w10; + meta.m.field_16_11 = (bit<16>)16w11; + meta.m.field_16_12 = (bit<16>)16w12; + meta.m.field_16_13 = (bit<16>)16w13; + meta.m.field_16_14 = (bit<16>)16w14; + meta.m.field_16_15 = (bit<16>)16w15; + meta.m.field_16_16 = (bit<16>)16w16; + meta.m.field_16_17 = (bit<16>)16w17; + meta.m.field_16_18 = (bit<16>)16w18; + meta.m.field_16_19 = (bit<16>)16w19; + meta.m.field_16_20 = (bit<16>)16w20; + meta.m.field_16_21 = (bit<16>)16w21; + meta.m.field_16_22 = (bit<16>)16w22; + meta.m.field_16_23 = (bit<16>)16w23; + meta.m.field_16_24 = (bit<16>)16w24; + meta.m.field_16_25 = (bit<16>)16w25; + meta.m.field_16_26 = (bit<16>)16w26; + meta.m.field_16_27 = (bit<16>)16w27; + meta.m.field_16_28 = (bit<16>)16w28; + meta.m.field_16_29 = (bit<16>)16w29; + meta.m.field_16_30 = (bit<16>)16w30; + meta.m.field_16_31 = (bit<16>)16w31; + meta.m.field_16_32 = (bit<16>)16w32; + meta.m.field_16_33 = (bit<16>)16w33; + meta.m.field_16_34 = (bit<16>)16w34; + meta.m.field_16_35 = (bit<16>)16w35; + meta.m.field_16_36 = (bit<16>)16w36; + meta.m.field_16_37 = (bit<16>)16w37; + meta.m.field_16_38 = (bit<16>)16w38; + meta.m.field_16_39 = (bit<16>)16w39; + meta.m.field_16_40 = (bit<16>)16w40; + meta.m.field_16_41 = (bit<16>)16w41; + meta.m.field_16_42 = (bit<16>)16w42; + meta.m.field_16_43 = (bit<16>)16w43; + meta.m.field_16_44 = (bit<16>)16w44; + meta.m.field_16_45 = (bit<16>)16w45; + meta.m.field_16_46 = (bit<16>)16w46; + meta.m.field_16_47 = (bit<16>)16w47; + meta.m.field_16_48 = (bit<16>)16w48; + meta.m.field_16_49 = (bit<16>)16w49; + meta.m.field_16_50 = (bit<16>)16w50; + meta.m.field_16_51 = (bit<16>)16w51; + meta.m.field_16_52 = (bit<16>)16w52; + meta.m.field_16_53 = (bit<16>)16w53; + meta.m.field_16_54 = (bit<16>)16w54; + meta.m.field_16_55 = (bit<16>)16w55; + meta.m.field_16_56 = (bit<16>)16w56; + meta.m.field_16_57 = (bit<16>)16w57; + meta.m.field_16_58 = (bit<16>)16w58; + meta.m.field_16_59 = (bit<16>)16w59; + meta.m.field_16_60 = (bit<16>)16w60; + meta.m.field_16_61 = (bit<16>)16w61; + meta.m.field_16_62 = (bit<16>)16w62; + meta.m.field_16_63 = (bit<16>)16w63; + meta.m.field_16_64 = (bit<16>)16w64; + meta.m.field_16_65 = (bit<16>)16w65; + meta.m.field_16_66 = (bit<16>)16w66; + meta.m.field_16_67 = (bit<16>)16w67; + meta.m.field_16_68 = (bit<16>)16w68; + meta.m.field_16_69 = (bit<16>)16w69; + meta.m.field_16_70 = (bit<16>)16w70; + meta.m.field_16_71 = (bit<16>)16w71; + meta.m.field_16_72 = (bit<16>)16w72; + meta.m.field_16_73 = (bit<16>)16w73; + meta.m.field_16_74 = (bit<16>)16w74; + meta.m.field_16_75 = (bit<16>)16w75; + meta.m.field_16_76 = (bit<16>)16w76; + meta.m.field_16_77 = (bit<16>)16w77; + meta.m.field_16_78 = (bit<16>)16w78; + meta.m.field_16_79 = (bit<16>)16w79; + meta.m.field_16_80 = (bit<16>)16w80; + meta.m.field_16_81 = (bit<16>)16w81; + meta.m.field_16_82 = (bit<16>)16w82; + meta.m.field_16_83 = (bit<16>)16w83; + meta.m.field_16_84 = (bit<16>)16w84; + meta.m.field_16_85 = (bit<16>)16w85; + meta.m.field_16_86 = (bit<16>)16w86; + meta.m.field_16_87 = (bit<16>)16w87; + meta.m.field_16_88 = (bit<16>)16w88; + meta.m.field_16_89 = (bit<16>)16w89; + meta.m.field_16_90 = (bit<16>)16w90; + meta.m.field_16_91 = (bit<16>)16w91; + meta.m.field_16_92 = (bit<16>)16w92; + meta.m.field_16_93 = (bit<16>)16w93; + meta.m.field_16_94 = (bit<16>)16w94; + meta.m.field_16_95 = (bit<16>)16w95; + meta.m.field_16_96 = (bit<16>)16w96; + meta.m.field_32_01 = (bit<32>)32w1; + meta.m.field_32_02 = (bit<32>)32w2; + meta.m.field_32_03 = (bit<32>)32w3; + meta.m.field_32_04 = (bit<32>)32w4; + meta.m.field_32_05 = (bit<32>)32w5; + meta.m.field_32_06 = (bit<32>)32w6; + meta.m.field_32_07 = (bit<32>)32w7; + meta.m.field_32_08 = (bit<32>)32w8; + meta.m.field_32_09 = (bit<32>)32w9; + meta.m.field_32_10 = (bit<32>)32w10; + meta.m.field_32_11 = (bit<32>)32w11; + meta.m.field_32_12 = (bit<32>)32w12; + meta.m.field_32_13 = (bit<32>)32w13; + meta.m.field_32_14 = (bit<32>)32w14; + meta.m.field_32_15 = (bit<32>)32w15; + meta.m.field_32_16 = (bit<32>)32w16; + meta.m.field_32_17 = (bit<32>)32w17; + meta.m.field_32_18 = (bit<32>)32w18; + meta.m.field_32_19 = (bit<32>)32w19; + meta.m.field_32_20 = (bit<32>)32w20; + meta.m.field_32_21 = (bit<32>)32w21; + meta.m.field_32_22 = (bit<32>)32w22; + meta.m.field_32_23 = (bit<32>)32w23; + meta.m.field_32_24 = (bit<32>)32w24; + meta.m.field_32_25 = (bit<32>)32w25; + meta.m.field_32_26 = (bit<32>)32w26; + meta.m.field_32_27 = (bit<32>)32w27; + meta.m.field_32_28 = (bit<32>)32w28; + meta.m.field_32_29 = (bit<32>)32w29; + meta.m.field_32_30 = (bit<32>)32w30; + meta.m.field_32_31 = (bit<32>)32w31; + meta.m.field_32_32 = (bit<32>)32w32; + meta.m.field_32_33 = (bit<32>)32w33; + meta.m.field_32_34 = (bit<32>)32w34; + meta.m.field_32_35 = (bit<32>)32w35; + meta.m.field_32_36 = (bit<32>)32w36; + meta.m.field_32_37 = (bit<32>)32w37; + meta.m.field_32_38 = (bit<32>)32w38; + meta.m.field_32_39 = (bit<32>)32w39; } @name(".a2_1") action a2_1() { - meta.m.field_16_01 = 16w1; - meta.m.field_16_02 = 16w2; - meta.m.field_16_03 = 16w3; - meta.m.field_16_04 = 16w4; - meta.m.field_16_05 = 16w5; - meta.m.field_16_06 = 16w6; - meta.m.field_16_07 = 16w7; - meta.m.field_16_08 = 16w8; - meta.m.field_16_09 = 16w9; - meta.m.field_16_10 = 16w10; - meta.m.field_16_11 = 16w11; - meta.m.field_16_12 = 16w12; - meta.m.field_16_13 = 16w13; - meta.m.field_16_14 = 16w14; - meta.m.field_16_15 = 16w15; - meta.m.field_16_16 = 16w16; - meta.m.field_16_17 = 16w17; - meta.m.field_16_18 = 16w18; - meta.m.field_16_19 = 16w19; - meta.m.field_16_20 = 16w20; - meta.m.field_16_21 = 16w21; - meta.m.field_16_22 = 16w22; - meta.m.field_16_23 = 16w23; - meta.m.field_16_24 = 16w24; - meta.m.field_16_25 = 16w25; - meta.m.field_16_26 = 16w26; - meta.m.field_16_27 = 16w27; - meta.m.field_16_28 = 16w28; - meta.m.field_16_29 = 16w29; - meta.m.field_16_30 = 16w30; - meta.m.field_16_31 = 16w31; - meta.m.field_16_32 = 16w32; - meta.m.field_16_33 = 16w33; - meta.m.field_16_34 = 16w34; - meta.m.field_16_35 = 16w35; - meta.m.field_16_36 = 16w36; - meta.m.field_16_37 = 16w37; - meta.m.field_16_38 = 16w38; - meta.m.field_16_39 = 16w39; - meta.m.field_16_40 = 16w40; - meta.m.field_16_41 = 16w41; - meta.m.field_16_42 = 16w42; - meta.m.field_16_43 = 16w43; - meta.m.field_16_44 = 16w44; - meta.m.field_16_45 = 16w45; - meta.m.field_16_46 = 16w46; - meta.m.field_16_47 = 16w47; - meta.m.field_16_48 = 16w48; + meta.m.field_16_01 = (bit<16>)16w1; + meta.m.field_16_02 = (bit<16>)16w2; + meta.m.field_16_03 = (bit<16>)16w3; + meta.m.field_16_04 = (bit<16>)16w4; + meta.m.field_16_05 = (bit<16>)16w5; + meta.m.field_16_06 = (bit<16>)16w6; + meta.m.field_16_07 = (bit<16>)16w7; + meta.m.field_16_08 = (bit<16>)16w8; + meta.m.field_16_09 = (bit<16>)16w9; + meta.m.field_16_10 = (bit<16>)16w10; + meta.m.field_16_11 = (bit<16>)16w11; + meta.m.field_16_12 = (bit<16>)16w12; + meta.m.field_16_13 = (bit<16>)16w13; + meta.m.field_16_14 = (bit<16>)16w14; + meta.m.field_16_15 = (bit<16>)16w15; + meta.m.field_16_16 = (bit<16>)16w16; + meta.m.field_16_17 = (bit<16>)16w17; + meta.m.field_16_18 = (bit<16>)16w18; + meta.m.field_16_19 = (bit<16>)16w19; + meta.m.field_16_20 = (bit<16>)16w20; + meta.m.field_16_21 = (bit<16>)16w21; + meta.m.field_16_22 = (bit<16>)16w22; + meta.m.field_16_23 = (bit<16>)16w23; + meta.m.field_16_24 = (bit<16>)16w24; + meta.m.field_16_25 = (bit<16>)16w25; + meta.m.field_16_26 = (bit<16>)16w26; + meta.m.field_16_27 = (bit<16>)16w27; + meta.m.field_16_28 = (bit<16>)16w28; + meta.m.field_16_29 = (bit<16>)16w29; + meta.m.field_16_30 = (bit<16>)16w30; + meta.m.field_16_31 = (bit<16>)16w31; + meta.m.field_16_32 = (bit<16>)16w32; + meta.m.field_16_33 = (bit<16>)16w33; + meta.m.field_16_34 = (bit<16>)16w34; + meta.m.field_16_35 = (bit<16>)16w35; + meta.m.field_16_36 = (bit<16>)16w36; + meta.m.field_16_37 = (bit<16>)16w37; + meta.m.field_16_38 = (bit<16>)16w38; + meta.m.field_16_39 = (bit<16>)16w39; + meta.m.field_16_40 = (bit<16>)16w40; + meta.m.field_16_41 = (bit<16>)16w41; + meta.m.field_16_42 = (bit<16>)16w42; + meta.m.field_16_43 = (bit<16>)16w43; + meta.m.field_16_44 = (bit<16>)16w44; + meta.m.field_16_45 = (bit<16>)16w45; + meta.m.field_16_46 = (bit<16>)16w46; + meta.m.field_16_47 = (bit<16>)16w47; + meta.m.field_16_48 = (bit<16>)16w48; } @name(".a2_2") action a2_2() { - meta.m.field_16_49 = 16w49; - meta.m.field_16_50 = 16w50; - meta.m.field_16_51 = 16w51; - meta.m.field_16_52 = 16w52; - meta.m.field_16_53 = 16w53; - meta.m.field_16_54 = 16w54; - meta.m.field_16_55 = 16w55; - meta.m.field_16_56 = 16w56; - meta.m.field_16_57 = 16w57; - meta.m.field_16_58 = 16w58; - meta.m.field_16_59 = 16w59; - meta.m.field_16_60 = 16w60; - meta.m.field_16_61 = 16w61; - meta.m.field_16_62 = 16w62; - meta.m.field_16_63 = 16w63; + meta.m.field_16_49 = (bit<16>)16w49; + meta.m.field_16_50 = (bit<16>)16w50; + meta.m.field_16_51 = (bit<16>)16w51; + meta.m.field_16_52 = (bit<16>)16w52; + meta.m.field_16_53 = (bit<16>)16w53; + meta.m.field_16_54 = (bit<16>)16w54; + meta.m.field_16_55 = (bit<16>)16w55; + meta.m.field_16_56 = (bit<16>)16w56; + meta.m.field_16_57 = (bit<16>)16w57; + meta.m.field_16_58 = (bit<16>)16w58; + meta.m.field_16_59 = (bit<16>)16w59; + meta.m.field_16_60 = (bit<16>)16w60; + meta.m.field_16_61 = (bit<16>)16w61; + meta.m.field_16_62 = (bit<16>)16w62; + meta.m.field_16_63 = (bit<16>)16w63; } @name(".a2_3") action a2_3() { - meta.m.field_16_65 = 16w65; - meta.m.field_16_66 = 16w66; - meta.m.field_16_67 = 16w67; - meta.m.field_16_68 = 16w68; - meta.m.field_16_69 = 16w69; - meta.m.field_16_70 = 16w70; - meta.m.field_16_71 = 16w71; - meta.m.field_16_72 = 16w72; - meta.m.field_16_73 = 16w73; - meta.m.field_16_74 = 16w74; - meta.m.field_16_75 = 16w75; - meta.m.field_16_76 = 16w76; - meta.m.field_16_77 = 16w77; - meta.m.field_16_78 = 16w78; - meta.m.field_16_79 = 16w79; + meta.m.field_16_65 = (bit<16>)16w65; + meta.m.field_16_66 = (bit<16>)16w66; + meta.m.field_16_67 = (bit<16>)16w67; + meta.m.field_16_68 = (bit<16>)16w68; + meta.m.field_16_69 = (bit<16>)16w69; + meta.m.field_16_70 = (bit<16>)16w70; + meta.m.field_16_71 = (bit<16>)16w71; + meta.m.field_16_72 = (bit<16>)16w72; + meta.m.field_16_73 = (bit<16>)16w73; + meta.m.field_16_74 = (bit<16>)16w74; + meta.m.field_16_75 = (bit<16>)16w75; + meta.m.field_16_76 = (bit<16>)16w76; + meta.m.field_16_77 = (bit<16>)16w77; + meta.m.field_16_78 = (bit<16>)16w78; + meta.m.field_16_79 = (bit<16>)16w79; } @name(".a3_1") action a3_1() { - meta.m.field_16_80 = 16w80; - meta.m.field_16_81 = 16w81; - meta.m.field_16_82 = 16w82; - meta.m.field_16_83 = 16w83; - meta.m.field_16_84 = 16w84; - meta.m.field_16_85 = 16w85; - meta.m.field_16_86 = 16w86; - meta.m.field_16_87 = 16w87; - meta.m.field_16_88 = 16w88; - meta.m.field_16_89 = 16w89; - meta.m.field_16_90 = 16w90; - meta.m.field_16_91 = 16w91; - meta.m.field_16_92 = 16w92; - meta.m.field_16_93 = 16w93; - meta.m.field_16_94 = 16w94; - meta.m.field_16_95 = 16w95; - meta.m.field_16_96 = 16w96; + meta.m.field_16_80 = (bit<16>)16w80; + meta.m.field_16_81 = (bit<16>)16w81; + meta.m.field_16_82 = (bit<16>)16w82; + meta.m.field_16_83 = (bit<16>)16w83; + meta.m.field_16_84 = (bit<16>)16w84; + meta.m.field_16_85 = (bit<16>)16w85; + meta.m.field_16_86 = (bit<16>)16w86; + meta.m.field_16_87 = (bit<16>)16w87; + meta.m.field_16_88 = (bit<16>)16w88; + meta.m.field_16_89 = (bit<16>)16w89; + meta.m.field_16_90 = (bit<16>)16w90; + meta.m.field_16_91 = (bit<16>)16w91; + meta.m.field_16_92 = (bit<16>)16w92; + meta.m.field_16_93 = (bit<16>)16w93; + meta.m.field_16_94 = (bit<16>)16w94; + meta.m.field_16_95 = (bit<16>)16w95; + meta.m.field_16_96 = (bit<16>)16w96; } @name("t1") table t1 { actions = { diff --git a/testdata/p4_14_samples_outputs/03-DeadMetadata3.p4 b/testdata/p4_14_samples_outputs/03-DeadMetadata3.p4 index 33fabf19a99..109e4eb9ad7 100644 --- a/testdata/p4_14_samples_outputs/03-DeadMetadata3.p4 +++ b/testdata/p4_14_samples_outputs/03-DeadMetadata3.p4 @@ -27,10 +27,10 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".a1") action a1() { - meta.m.f1 = 32w1; + meta.m.f1 = (bit<32>)32w1; } @name(".a2") action a2() { - meta.m.f2 = 32w2; + meta.m.f2 = (bit<32>)32w2; } @name("t1") table t1 { actions = { diff --git a/testdata/p4_14_samples_outputs/03-FullPHV2.p4 b/testdata/p4_14_samples_outputs/03-FullPHV2.p4 index febe8df2cfd..916500d2d76 100644 --- a/testdata/p4_14_samples_outputs/03-FullPHV2.p4 +++ b/testdata/p4_14_samples_outputs/03-FullPHV2.p4 @@ -258,203 +258,203 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".a1") action a1() { - meta.m.field_8_01 = 8w1; - meta.m.field_8_02 = 8w2; - meta.m.field_8_03 = 8w3; - meta.m.field_8_04 = 8w4; - meta.m.field_8_05 = 8w5; - meta.m.field_8_06 = 8w6; - meta.m.field_8_07 = 8w7; - meta.m.field_8_08 = 8w8; - meta.m.field_8_09 = 8w9; - meta.m.field_8_10 = 8w10; - meta.m.field_8_11 = 8w11; - meta.m.field_8_12 = 8w12; - meta.m.field_8_13 = 8w13; - meta.m.field_8_14 = 8w14; - meta.m.field_8_15 = 8w15; - meta.m.field_8_16 = 8w16; - meta.m.field_8_17 = 8w17; - meta.m.field_8_18 = 8w18; - meta.m.field_8_19 = 8w19; - meta.m.field_8_20 = 8w20; - meta.m.field_8_21 = 8w21; - meta.m.field_8_22 = 8w22; - meta.m.field_8_23 = 8w23; - meta.m.field_8_24 = 8w24; - meta.m.field_8_25 = 8w25; - meta.m.field_8_26 = 8w26; - meta.m.field_8_27 = 8w27; - meta.m.field_8_28 = 8w28; - meta.m.field_8_29 = 8w29; - meta.m.field_8_30 = 8w30; - meta.m.field_8_31 = 8w31; - meta.m.field_8_32 = 8w32; - meta.m.field_8_33 = 8w33; - meta.m.field_8_34 = 8w34; - meta.m.field_8_35 = 8w35; - meta.m.field_8_36 = 8w36; - meta.m.field_8_37 = 8w37; - meta.m.field_8_38 = 8w38; - meta.m.field_8_39 = 8w39; - meta.m.field_8_40 = 8w40; - meta.m.field_8_41 = 8w41; - meta.m.field_8_42 = 8w42; - meta.m.field_8_43 = 8w43; - meta.m.field_8_44 = 8w44; - meta.m.field_8_45 = 8w45; - meta.m.field_8_46 = 8w46; - meta.m.field_8_47 = 8w47; - meta.m.field_8_48 = 8w48; - meta.m.field_8_49 = 8w49; - meta.m.field_8_50 = 8w50; - meta.m.field_8_51 = 8w51; - meta.m.field_8_52 = 8w52; - meta.m.field_8_53 = 8w53; - meta.m.field_8_54 = 8w54; - meta.m.field_8_55 = 8w55; - meta.m.field_8_56 = 8w56; - meta.m.field_8_57 = 8w57; - meta.m.field_8_58 = 8w58; - meta.m.field_8_59 = 8w59; - meta.m.field_8_60 = 8w60; - meta.m.field_8_61 = 8w61; - meta.m.field_8_62 = 8w62; - meta.m.field_8_63 = 8w63; - meta.m.field_8_64 = 8w64; - meta.m.field_32_33 = 32w33; - meta.m.field_32_34 = 32w34; - meta.m.field_32_35 = 32w35; - meta.m.field_32_36 = 32w36; - meta.m.field_32_37 = 32w37; - meta.m.field_32_38 = 32w38; - meta.m.field_32_39 = 32w39; - meta.m.field_32_40 = 32w40; - meta.m.field_32_41 = 32w41; - meta.m.field_32_42 = 32w42; - meta.m.field_32_43 = 32w43; - meta.m.field_32_44 = 32w44; - meta.m.field_32_45 = 32w45; - meta.m.field_32_46 = 32w46; - meta.m.field_32_47 = 32w47; - meta.m.field_32_48 = 32w48; - meta.m.field_32_49 = 32w49; - meta.m.field_32_50 = 32w50; - meta.m.field_32_51 = 32w51; - meta.m.field_32_52 = 32w52; - meta.m.field_32_53 = 32w53; - meta.m.field_32_54 = 32w54; - meta.m.field_32_55 = 32w55; - meta.m.field_32_56 = 32w56; - meta.m.field_32_57 = 32w57; - meta.m.field_32_58 = 32w58; - meta.m.field_32_59 = 32w59; - meta.m.field_32_60 = 32w60; - meta.m.field_32_61 = 32w61; - meta.m.field_32_62 = 32w62; - meta.m.field_32_63 = 32w63; - meta.m.field_32_64 = 32w64; + meta.m.field_8_01 = (bit<8>)8w1; + meta.m.field_8_02 = (bit<8>)8w2; + meta.m.field_8_03 = (bit<8>)8w3; + meta.m.field_8_04 = (bit<8>)8w4; + meta.m.field_8_05 = (bit<8>)8w5; + meta.m.field_8_06 = (bit<8>)8w6; + meta.m.field_8_07 = (bit<8>)8w7; + meta.m.field_8_08 = (bit<8>)8w8; + meta.m.field_8_09 = (bit<8>)8w9; + meta.m.field_8_10 = (bit<8>)8w10; + meta.m.field_8_11 = (bit<8>)8w11; + meta.m.field_8_12 = (bit<8>)8w12; + meta.m.field_8_13 = (bit<8>)8w13; + meta.m.field_8_14 = (bit<8>)8w14; + meta.m.field_8_15 = (bit<8>)8w15; + meta.m.field_8_16 = (bit<8>)8w16; + meta.m.field_8_17 = (bit<8>)8w17; + meta.m.field_8_18 = (bit<8>)8w18; + meta.m.field_8_19 = (bit<8>)8w19; + meta.m.field_8_20 = (bit<8>)8w20; + meta.m.field_8_21 = (bit<8>)8w21; + meta.m.field_8_22 = (bit<8>)8w22; + meta.m.field_8_23 = (bit<8>)8w23; + meta.m.field_8_24 = (bit<8>)8w24; + meta.m.field_8_25 = (bit<8>)8w25; + meta.m.field_8_26 = (bit<8>)8w26; + meta.m.field_8_27 = (bit<8>)8w27; + meta.m.field_8_28 = (bit<8>)8w28; + meta.m.field_8_29 = (bit<8>)8w29; + meta.m.field_8_30 = (bit<8>)8w30; + meta.m.field_8_31 = (bit<8>)8w31; + meta.m.field_8_32 = (bit<8>)8w32; + meta.m.field_8_33 = (bit<8>)8w33; + meta.m.field_8_34 = (bit<8>)8w34; + meta.m.field_8_35 = (bit<8>)8w35; + meta.m.field_8_36 = (bit<8>)8w36; + meta.m.field_8_37 = (bit<8>)8w37; + meta.m.field_8_38 = (bit<8>)8w38; + meta.m.field_8_39 = (bit<8>)8w39; + meta.m.field_8_40 = (bit<8>)8w40; + meta.m.field_8_41 = (bit<8>)8w41; + meta.m.field_8_42 = (bit<8>)8w42; + meta.m.field_8_43 = (bit<8>)8w43; + meta.m.field_8_44 = (bit<8>)8w44; + meta.m.field_8_45 = (bit<8>)8w45; + meta.m.field_8_46 = (bit<8>)8w46; + meta.m.field_8_47 = (bit<8>)8w47; + meta.m.field_8_48 = (bit<8>)8w48; + meta.m.field_8_49 = (bit<8>)8w49; + meta.m.field_8_50 = (bit<8>)8w50; + meta.m.field_8_51 = (bit<8>)8w51; + meta.m.field_8_52 = (bit<8>)8w52; + meta.m.field_8_53 = (bit<8>)8w53; + meta.m.field_8_54 = (bit<8>)8w54; + meta.m.field_8_55 = (bit<8>)8w55; + meta.m.field_8_56 = (bit<8>)8w56; + meta.m.field_8_57 = (bit<8>)8w57; + meta.m.field_8_58 = (bit<8>)8w58; + meta.m.field_8_59 = (bit<8>)8w59; + meta.m.field_8_60 = (bit<8>)8w60; + meta.m.field_8_61 = (bit<8>)8w61; + meta.m.field_8_62 = (bit<8>)8w62; + meta.m.field_8_63 = (bit<8>)8w63; + meta.m.field_8_64 = (bit<8>)8w64; + meta.m.field_32_33 = (bit<32>)32w33; + meta.m.field_32_34 = (bit<32>)32w34; + meta.m.field_32_35 = (bit<32>)32w35; + meta.m.field_32_36 = (bit<32>)32w36; + meta.m.field_32_37 = (bit<32>)32w37; + meta.m.field_32_38 = (bit<32>)32w38; + meta.m.field_32_39 = (bit<32>)32w39; + meta.m.field_32_40 = (bit<32>)32w40; + meta.m.field_32_41 = (bit<32>)32w41; + meta.m.field_32_42 = (bit<32>)32w42; + meta.m.field_32_43 = (bit<32>)32w43; + meta.m.field_32_44 = (bit<32>)32w44; + meta.m.field_32_45 = (bit<32>)32w45; + meta.m.field_32_46 = (bit<32>)32w46; + meta.m.field_32_47 = (bit<32>)32w47; + meta.m.field_32_48 = (bit<32>)32w48; + meta.m.field_32_49 = (bit<32>)32w49; + meta.m.field_32_50 = (bit<32>)32w50; + meta.m.field_32_51 = (bit<32>)32w51; + meta.m.field_32_52 = (bit<32>)32w52; + meta.m.field_32_53 = (bit<32>)32w53; + meta.m.field_32_54 = (bit<32>)32w54; + meta.m.field_32_55 = (bit<32>)32w55; + meta.m.field_32_56 = (bit<32>)32w56; + meta.m.field_32_57 = (bit<32>)32w57; + meta.m.field_32_58 = (bit<32>)32w58; + meta.m.field_32_59 = (bit<32>)32w59; + meta.m.field_32_60 = (bit<32>)32w60; + meta.m.field_32_61 = (bit<32>)32w61; + meta.m.field_32_62 = (bit<32>)32w62; + meta.m.field_32_63 = (bit<32>)32w63; + meta.m.field_32_64 = (bit<32>)32w64; } @name(".a2_1") action a2_1() { - meta.m.field_16_01 = 16w1; - meta.m.field_16_02 = 16w2; - meta.m.field_16_03 = 16w3; - meta.m.field_16_04 = 16w4; - meta.m.field_16_05 = 16w5; - meta.m.field_16_06 = 16w6; - meta.m.field_16_07 = 16w7; - meta.m.field_16_08 = 16w8; - meta.m.field_16_09 = 16w9; - meta.m.field_16_10 = 16w10; - meta.m.field_16_11 = 16w11; - meta.m.field_16_12 = 16w12; - meta.m.field_16_13 = 16w13; - meta.m.field_16_14 = 16w14; - meta.m.field_16_15 = 16w15; - meta.m.field_16_16 = 16w16; - meta.m.field_16_17 = 16w17; - meta.m.field_16_18 = 16w18; - meta.m.field_16_19 = 16w19; - meta.m.field_16_20 = 16w20; - meta.m.field_16_21 = 16w21; - meta.m.field_16_22 = 16w22; - meta.m.field_16_23 = 16w23; - meta.m.field_16_24 = 16w24; - meta.m.field_16_25 = 16w25; - meta.m.field_16_26 = 16w26; - meta.m.field_16_27 = 16w27; - meta.m.field_16_28 = 16w28; - meta.m.field_16_29 = 16w29; - meta.m.field_16_30 = 16w30; - meta.m.field_16_31 = 16w31; - meta.m.field_16_32 = 16w32; - meta.m.field_16_33 = 16w33; - meta.m.field_16_34 = 16w34; - meta.m.field_16_35 = 16w35; - meta.m.field_16_36 = 16w36; - meta.m.field_16_37 = 16w37; - meta.m.field_16_38 = 16w38; - meta.m.field_16_39 = 16w39; - meta.m.field_16_40 = 16w40; - meta.m.field_16_41 = 16w41; - meta.m.field_16_42 = 16w42; - meta.m.field_16_43 = 16w43; - meta.m.field_16_44 = 16w44; - meta.m.field_16_45 = 16w45; - meta.m.field_16_46 = 16w46; - meta.m.field_16_47 = 16w47; - meta.m.field_16_48 = 16w48; + meta.m.field_16_01 = (bit<16>)16w1; + meta.m.field_16_02 = (bit<16>)16w2; + meta.m.field_16_03 = (bit<16>)16w3; + meta.m.field_16_04 = (bit<16>)16w4; + meta.m.field_16_05 = (bit<16>)16w5; + meta.m.field_16_06 = (bit<16>)16w6; + meta.m.field_16_07 = (bit<16>)16w7; + meta.m.field_16_08 = (bit<16>)16w8; + meta.m.field_16_09 = (bit<16>)16w9; + meta.m.field_16_10 = (bit<16>)16w10; + meta.m.field_16_11 = (bit<16>)16w11; + meta.m.field_16_12 = (bit<16>)16w12; + meta.m.field_16_13 = (bit<16>)16w13; + meta.m.field_16_14 = (bit<16>)16w14; + meta.m.field_16_15 = (bit<16>)16w15; + meta.m.field_16_16 = (bit<16>)16w16; + meta.m.field_16_17 = (bit<16>)16w17; + meta.m.field_16_18 = (bit<16>)16w18; + meta.m.field_16_19 = (bit<16>)16w19; + meta.m.field_16_20 = (bit<16>)16w20; + meta.m.field_16_21 = (bit<16>)16w21; + meta.m.field_16_22 = (bit<16>)16w22; + meta.m.field_16_23 = (bit<16>)16w23; + meta.m.field_16_24 = (bit<16>)16w24; + meta.m.field_16_25 = (bit<16>)16w25; + meta.m.field_16_26 = (bit<16>)16w26; + meta.m.field_16_27 = (bit<16>)16w27; + meta.m.field_16_28 = (bit<16>)16w28; + meta.m.field_16_29 = (bit<16>)16w29; + meta.m.field_16_30 = (bit<16>)16w30; + meta.m.field_16_31 = (bit<16>)16w31; + meta.m.field_16_32 = (bit<16>)16w32; + meta.m.field_16_33 = (bit<16>)16w33; + meta.m.field_16_34 = (bit<16>)16w34; + meta.m.field_16_35 = (bit<16>)16w35; + meta.m.field_16_36 = (bit<16>)16w36; + meta.m.field_16_37 = (bit<16>)16w37; + meta.m.field_16_38 = (bit<16>)16w38; + meta.m.field_16_39 = (bit<16>)16w39; + meta.m.field_16_40 = (bit<16>)16w40; + meta.m.field_16_41 = (bit<16>)16w41; + meta.m.field_16_42 = (bit<16>)16w42; + meta.m.field_16_43 = (bit<16>)16w43; + meta.m.field_16_44 = (bit<16>)16w44; + meta.m.field_16_45 = (bit<16>)16w45; + meta.m.field_16_46 = (bit<16>)16w46; + meta.m.field_16_47 = (bit<16>)16w47; + meta.m.field_16_48 = (bit<16>)16w48; } @name(".a2_2") action a2_2() { - meta.m.field_16_49 = 16w49; - meta.m.field_16_50 = 16w50; - meta.m.field_16_51 = 16w51; - meta.m.field_16_52 = 16w52; - meta.m.field_16_53 = 16w53; - meta.m.field_16_54 = 16w54; - meta.m.field_16_55 = 16w55; - meta.m.field_16_56 = 16w56; - meta.m.field_16_57 = 16w57; - meta.m.field_16_58 = 16w58; - meta.m.field_16_59 = 16w59; - meta.m.field_16_60 = 16w60; - meta.m.field_16_61 = 16w61; - meta.m.field_16_62 = 16w62; - meta.m.field_16_63 = 16w63; - meta.m.field_16_65 = 16w65; - meta.m.field_16_66 = 16w66; - meta.m.field_16_67 = 16w67; - meta.m.field_16_68 = 16w68; - meta.m.field_16_69 = 16w69; - meta.m.field_16_70 = 16w70; - meta.m.field_16_71 = 16w71; - meta.m.field_16_72 = 16w72; + meta.m.field_16_49 = (bit<16>)16w49; + meta.m.field_16_50 = (bit<16>)16w50; + meta.m.field_16_51 = (bit<16>)16w51; + meta.m.field_16_52 = (bit<16>)16w52; + meta.m.field_16_53 = (bit<16>)16w53; + meta.m.field_16_54 = (bit<16>)16w54; + meta.m.field_16_55 = (bit<16>)16w55; + meta.m.field_16_56 = (bit<16>)16w56; + meta.m.field_16_57 = (bit<16>)16w57; + meta.m.field_16_58 = (bit<16>)16w58; + meta.m.field_16_59 = (bit<16>)16w59; + meta.m.field_16_60 = (bit<16>)16w60; + meta.m.field_16_61 = (bit<16>)16w61; + meta.m.field_16_62 = (bit<16>)16w62; + meta.m.field_16_63 = (bit<16>)16w63; + meta.m.field_16_65 = (bit<16>)16w65; + meta.m.field_16_66 = (bit<16>)16w66; + meta.m.field_16_67 = (bit<16>)16w67; + meta.m.field_16_68 = (bit<16>)16w68; + meta.m.field_16_69 = (bit<16>)16w69; + meta.m.field_16_70 = (bit<16>)16w70; + meta.m.field_16_71 = (bit<16>)16w71; + meta.m.field_16_72 = (bit<16>)16w72; } @name(".a2_3") action a2_3() { - meta.m.field_16_73 = 16w73; - meta.m.field_16_74 = 16w74; - meta.m.field_16_75 = 16w75; - meta.m.field_16_76 = 16w76; - meta.m.field_16_77 = 16w77; - meta.m.field_16_78 = 16w78; - meta.m.field_16_79 = 16w79; - meta.m.field_16_80 = 16w80; - meta.m.field_16_81 = 16w81; - meta.m.field_16_82 = 16w82; - meta.m.field_16_83 = 16w83; - meta.m.field_16_84 = 16w84; - meta.m.field_16_85 = 16w85; - meta.m.field_16_86 = 16w86; - meta.m.field_16_87 = 16w87; - meta.m.field_16_88 = 16w88; - meta.m.field_16_89 = 16w89; - meta.m.field_16_90 = 16w90; - meta.m.field_16_91 = 16w91; - meta.m.field_16_92 = 16w92; - meta.m.field_16_93 = 16w93; - meta.m.field_16_94 = 16w94; - meta.m.field_16_95 = 16w95; - meta.m.field_16_96 = 16w96; + meta.m.field_16_73 = (bit<16>)16w73; + meta.m.field_16_74 = (bit<16>)16w74; + meta.m.field_16_75 = (bit<16>)16w75; + meta.m.field_16_76 = (bit<16>)16w76; + meta.m.field_16_77 = (bit<16>)16w77; + meta.m.field_16_78 = (bit<16>)16w78; + meta.m.field_16_79 = (bit<16>)16w79; + meta.m.field_16_80 = (bit<16>)16w80; + meta.m.field_16_81 = (bit<16>)16w81; + meta.m.field_16_82 = (bit<16>)16w82; + meta.m.field_16_83 = (bit<16>)16w83; + meta.m.field_16_84 = (bit<16>)16w84; + meta.m.field_16_85 = (bit<16>)16w85; + meta.m.field_16_86 = (bit<16>)16w86; + meta.m.field_16_87 = (bit<16>)16w87; + meta.m.field_16_88 = (bit<16>)16w88; + meta.m.field_16_89 = (bit<16>)16w89; + meta.m.field_16_90 = (bit<16>)16w90; + meta.m.field_16_91 = (bit<16>)16w91; + meta.m.field_16_92 = (bit<16>)16w92; + meta.m.field_16_93 = (bit<16>)16w93; + meta.m.field_16_94 = (bit<16>)16w94; + meta.m.field_16_95 = (bit<16>)16w95; + meta.m.field_16_96 = (bit<16>)16w96; } @name(".a3_1") action a3_1() { } diff --git a/testdata/p4_14_samples_outputs/03-Gateway.p4 b/testdata/p4_14_samples_outputs/03-Gateway.p4 index b5dfdbb6aaa..de62c4646a4 100644 --- a/testdata/p4_14_samples_outputs/03-Gateway.p4 +++ b/testdata/p4_14_samples_outputs/03-Gateway.p4 @@ -65,22 +65,22 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name(".nop") action nop() { } @name(".ing_drop") action ing_drop() { - meta.ing_metadata.drop = 1w1; + meta.ing_metadata.drop = (bit<1>)1w1; } @name(".set_egress_port") action set_egress_port(bit<8> egress_port) { - meta.ing_metadata.egress_port = egress_port; + meta.ing_metadata.egress_port = (bit<8>)egress_port; } @name(".set_f1") action set_f1(bit<8> f1) { - meta.ing_metadata.f1 = f1; + meta.ing_metadata.f1 = (bit<8>)f1; } @name(".set_f2") action set_f2(bit<16> f2) { - meta.ing_metadata.f2 = f2; + meta.ing_metadata.f2 = (bit<16>)f2; } @name(".set_f3") action set_f3(bit<32> f3) { - meta.ing_metadata.f3 = f3; + meta.ing_metadata.f3 = (bit<32>)f3; } @name(".set_f4") action set_f4(bit<64> f4) { - meta.ing_metadata.f4 = f4; + meta.ing_metadata.f4 = (bit<64>)f4; } @name("i_t1") table i_t1 { actions = { diff --git a/testdata/p4_14_samples_outputs/04-GatewayDefault.p4 b/testdata/p4_14_samples_outputs/04-GatewayDefault.p4 index 9f53cce7993..2960cfa6c6b 100644 --- a/testdata/p4_14_samples_outputs/04-GatewayDefault.p4 +++ b/testdata/p4_14_samples_outputs/04-GatewayDefault.p4 @@ -55,22 +55,22 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name(".nop") action nop() { } @name(".ing_drop") action ing_drop() { - meta.ing_metadata.drop = 8w1; + meta.ing_metadata.drop = (bit<8>)8w1; } @name(".set_f1") action set_f1(bit<8> f1) { - meta.ing_metadata.f1 = f1; + meta.ing_metadata.f1 = (bit<8>)f1; } @name(".set_f2") action set_f2(bit<16> f2) { - meta.ing_metadata.f2 = f2; + meta.ing_metadata.f2 = (bit<16>)f2; } @name(".set_f3") action set_f3(bit<32> f3) { - meta.ing_metadata.f3 = f3; + meta.ing_metadata.f3 = (bit<32>)f3; } @name(".set_egress_port") action set_egress_port(bit<8> egress_port) { - meta.ing_metadata.egress_port = egress_port; + meta.ing_metadata.egress_port = (bit<8>)egress_port; } @name(".set_f4") action set_f4(bit<64> f4) { - meta.ing_metadata.f4 = f4; + meta.ing_metadata.f4 = (bit<64>)f4; } @name("i_t1") table i_t1 { actions = { diff --git a/testdata/p4_14_samples_outputs/05-FieldProblem.p4 b/testdata/p4_14_samples_outputs/05-FieldProblem.p4 index b8301156000..985e95eeaa0 100644 --- a/testdata/p4_14_samples_outputs/05-FieldProblem.p4 +++ b/testdata/p4_14_samples_outputs/05-FieldProblem.p4 @@ -52,7 +52,7 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name(".nop") action nop() { } @name(".set_f1") action set_f1(bit<8> f1) { - meta.ing_metadata.f1 = f1; + meta.ing_metadata.f1 = (bit<8>)f1; } @name("i_t1") table i_t1 { actions = { diff --git a/testdata/p4_14_samples_outputs/05-FullTPHV.p4 b/testdata/p4_14_samples_outputs/05-FullTPHV.p4 index 0a165164079..cee9c94d48e 100644 --- a/testdata/p4_14_samples_outputs/05-FullTPHV.p4 +++ b/testdata/p4_14_samples_outputs/05-FullTPHV.p4 @@ -311,233 +311,233 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".a1") action a1() { - meta.m.field_8_01 = 8w1; - meta.m.field_8_02 = 8w2; - meta.m.field_8_03 = 8w3; - meta.m.field_8_04 = 8w4; - meta.m.field_8_05 = 8w5; - meta.m.field_8_06 = 8w6; - meta.m.field_8_07 = 8w7; - meta.m.field_8_08 = 8w8; - meta.m.field_8_09 = 8w9; - meta.m.field_8_10 = 8w10; - meta.m.field_8_11 = 8w11; - meta.m.field_8_12 = 8w12; - meta.m.field_8_13 = 8w13; - meta.m.field_8_14 = 8w14; - meta.m.field_8_15 = 8w15; - meta.m.field_8_16 = 8w16; - meta.m.field_8_17 = 8w17; - meta.m.field_8_18 = 8w18; - meta.m.field_8_19 = 8w19; - meta.m.field_8_20 = 8w20; - meta.m.field_8_21 = 8w21; - meta.m.field_8_22 = 8w22; - meta.m.field_8_23 = 8w23; - meta.m.field_8_24 = 8w24; - meta.m.field_8_25 = 8w25; - meta.m.field_8_26 = 8w26; - meta.m.field_8_27 = 8w27; - meta.m.field_8_28 = 8w28; - meta.m.field_8_29 = 8w29; - meta.m.field_8_30 = 8w30; - meta.m.field_8_31 = 8w31; - meta.m.field_8_32 = 8w32; - meta.m.field_8_33 = 8w33; - meta.m.field_8_34 = 8w34; - meta.m.field_8_35 = 8w35; - meta.m.field_8_36 = 8w36; - meta.m.field_8_37 = 8w37; - meta.m.field_8_38 = 8w38; - meta.m.field_8_39 = 8w39; - meta.m.field_8_40 = 8w40; - meta.m.field_8_41 = 8w41; - meta.m.field_8_42 = 8w42; - meta.m.field_8_43 = 8w43; - meta.m.field_8_44 = 8w44; - meta.m.field_8_45 = 8w45; - meta.m.field_8_46 = 8w46; - meta.m.field_8_47 = 8w47; - meta.m.field_8_48 = 8w48; - meta.m.field_8_49 = 8w49; - meta.m.field_8_50 = 8w50; - meta.m.field_8_51 = 8w51; - meta.m.field_8_52 = 8w52; - meta.m.field_8_53 = 8w53; - meta.m.field_8_54 = 8w54; - meta.m.field_8_55 = 8w55; - meta.m.field_8_56 = 8w56; - meta.m.field_8_57 = 8w57; - meta.m.field_8_58 = 8w58; - meta.m.field_8_59 = 8w59; - meta.m.field_8_60 = 8w60; - meta.m.field_8_61 = 8w61; - meta.m.field_8_62 = 8w62; - meta.m.field_8_63 = 8w63; - meta.m.field_8_64 = 8w64; - meta.m.field_16_01 = 16w1; - meta.m.field_16_02 = 16w2; - meta.m.field_16_03 = 16w3; - meta.m.field_16_04 = 16w4; - meta.m.field_16_05 = 16w5; - meta.m.field_16_06 = 16w6; - meta.m.field_16_07 = 16w7; - meta.m.field_16_08 = 16w8; - meta.m.field_16_09 = 16w9; - meta.m.field_16_10 = 16w10; - meta.m.field_16_11 = 16w11; - meta.m.field_16_12 = 16w12; - meta.m.field_16_13 = 16w13; - meta.m.field_16_14 = 16w14; - meta.m.field_16_15 = 16w15; - meta.m.field_16_16 = 16w16; - meta.m.field_16_17 = 16w17; - meta.m.field_16_18 = 16w18; - meta.m.field_16_19 = 16w19; - meta.m.field_16_20 = 16w20; - meta.m.field_16_21 = 16w21; - meta.m.field_16_22 = 16w22; - meta.m.field_16_23 = 16w23; - meta.m.field_16_24 = 16w24; - meta.m.field_16_25 = 16w25; - meta.m.field_16_26 = 16w26; - meta.m.field_16_27 = 16w27; - meta.m.field_16_28 = 16w28; - meta.m.field_16_29 = 16w29; - meta.m.field_16_30 = 16w30; - meta.m.field_16_31 = 16w31; - meta.m.field_16_32 = 16w32; - meta.m.field_16_33 = 16w33; - meta.m.field_16_34 = 16w34; - meta.m.field_16_35 = 16w35; - meta.m.field_16_36 = 16w36; - meta.m.field_16_37 = 16w37; - meta.m.field_16_38 = 16w38; - meta.m.field_16_39 = 16w39; - meta.m.field_16_40 = 16w40; - meta.m.field_16_41 = 16w41; - meta.m.field_16_42 = 16w42; - meta.m.field_16_43 = 16w43; - meta.m.field_16_44 = 16w44; - meta.m.field_16_45 = 16w45; - meta.m.field_16_46 = 16w46; - meta.m.field_16_47 = 16w47; - meta.m.field_16_48 = 16w48; - meta.m.field_16_49 = 16w49; - meta.m.field_16_50 = 16w50; - meta.m.field_16_51 = 16w51; - meta.m.field_16_52 = 16w52; - meta.m.field_16_53 = 16w53; - meta.m.field_16_54 = 16w54; - meta.m.field_16_55 = 16w55; - meta.m.field_16_56 = 16w56; - meta.m.field_16_57 = 16w57; - meta.m.field_16_58 = 16w58; - meta.m.field_16_59 = 16w59; - meta.m.field_16_60 = 16w60; - meta.m.field_16_61 = 16w61; - meta.m.field_16_62 = 16w62; - meta.m.field_16_63 = 16w63; - meta.m.field_16_64 = 16w64; - meta.m.field_16_65 = 16w65; - meta.m.field_16_66 = 16w66; - meta.m.field_16_67 = 16w67; - meta.m.field_16_68 = 16w68; - meta.m.field_16_69 = 16w69; - meta.m.field_16_70 = 16w70; - meta.m.field_16_71 = 16w71; - meta.m.field_16_72 = 16w72; - meta.m.field_16_73 = 16w73; - meta.m.field_16_74 = 16w74; - meta.m.field_16_75 = 16w75; - meta.m.field_16_76 = 16w76; - meta.m.field_16_77 = 16w77; - meta.m.field_16_78 = 16w78; - meta.m.field_16_79 = 16w79; - meta.m.field_16_80 = 16w80; - meta.m.field_16_81 = 16w81; - meta.m.field_16_82 = 16w82; - meta.m.field_16_83 = 16w83; - meta.m.field_16_84 = 16w84; - meta.m.field_16_85 = 16w85; - meta.m.field_16_86 = 16w86; - meta.m.field_16_87 = 16w87; - meta.m.field_16_88 = 16w88; - meta.m.field_16_89 = 16w89; - meta.m.field_16_90 = 16w90; - meta.m.field_16_91 = 16w91; - meta.m.field_16_92 = 16w92; - meta.m.field_16_93 = 16w93; - meta.m.field_16_94 = 16w94; - meta.m.field_16_95 = 16w95; - meta.m.field_16_96 = 16w96; - meta.m.field_32_01 = 32w1; - meta.m.field_32_02 = 32w2; - meta.m.field_32_03 = 32w3; - meta.m.field_32_04 = 32w4; - meta.m.field_32_05 = 32w5; - meta.m.field_32_06 = 32w6; - meta.m.field_32_07 = 32w7; - meta.m.field_32_08 = 32w8; - meta.m.field_32_09 = 32w9; - meta.m.field_32_10 = 32w10; - meta.m.field_32_11 = 32w11; - meta.m.field_32_12 = 32w12; - meta.m.field_32_13 = 32w13; - meta.m.field_32_14 = 32w14; - meta.m.field_32_15 = 32w15; - meta.m.field_32_16 = 32w16; - meta.m.field_32_17 = 32w17; - meta.m.field_32_18 = 32w18; - meta.m.field_32_19 = 32w19; - meta.m.field_32_20 = 32w20; - meta.m.field_32_21 = 32w21; - meta.m.field_32_22 = 32w22; - meta.m.field_32_23 = 32w23; - meta.m.field_32_24 = 32w24; - meta.m.field_32_25 = 32w25; - meta.m.field_32_26 = 32w26; - meta.m.field_32_27 = 32w27; - meta.m.field_32_28 = 32w28; - meta.m.field_32_29 = 32w29; - meta.m.field_32_30 = 32w30; - meta.m.field_32_31 = 32w31; - meta.m.field_32_32 = 32w32; - meta.m.field_32_33 = 32w33; - meta.m.field_32_34 = 32w34; - meta.m.field_32_35 = 32w35; - meta.m.field_32_36 = 32w36; - meta.m.field_32_37 = 32w37; - meta.m.field_32_38 = 32w38; - meta.m.field_32_39 = 32w39; - meta.m.field_32_40 = 32w40; - meta.m.field_32_41 = 32w41; - meta.m.field_32_42 = 32w42; - meta.m.field_32_43 = 32w43; - meta.m.field_32_44 = 32w44; - meta.m.field_32_45 = 32w45; - meta.m.field_32_46 = 32w46; - meta.m.field_32_47 = 32w47; - meta.m.field_32_48 = 32w48; - meta.m.field_32_49 = 32w49; - meta.m.field_32_50 = 32w50; - meta.m.field_32_51 = 32w51; - meta.m.field_32_52 = 32w52; - meta.m.field_32_53 = 32w53; - meta.m.field_32_54 = 32w54; - meta.m.field_32_55 = 32w55; - meta.m.field_32_56 = 32w56; - meta.m.field_32_57 = 32w57; - meta.m.field_32_58 = 32w58; - meta.m.field_32_59 = 32w59; - meta.m.field_32_60 = 32w60; - meta.m.field_32_61 = 32w61; - meta.m.field_32_62 = 32w62; - meta.m.field_32_63 = 32w63; + meta.m.field_8_01 = (bit<8>)8w1; + meta.m.field_8_02 = (bit<8>)8w2; + meta.m.field_8_03 = (bit<8>)8w3; + meta.m.field_8_04 = (bit<8>)8w4; + meta.m.field_8_05 = (bit<8>)8w5; + meta.m.field_8_06 = (bit<8>)8w6; + meta.m.field_8_07 = (bit<8>)8w7; + meta.m.field_8_08 = (bit<8>)8w8; + meta.m.field_8_09 = (bit<8>)8w9; + meta.m.field_8_10 = (bit<8>)8w10; + meta.m.field_8_11 = (bit<8>)8w11; + meta.m.field_8_12 = (bit<8>)8w12; + meta.m.field_8_13 = (bit<8>)8w13; + meta.m.field_8_14 = (bit<8>)8w14; + meta.m.field_8_15 = (bit<8>)8w15; + meta.m.field_8_16 = (bit<8>)8w16; + meta.m.field_8_17 = (bit<8>)8w17; + meta.m.field_8_18 = (bit<8>)8w18; + meta.m.field_8_19 = (bit<8>)8w19; + meta.m.field_8_20 = (bit<8>)8w20; + meta.m.field_8_21 = (bit<8>)8w21; + meta.m.field_8_22 = (bit<8>)8w22; + meta.m.field_8_23 = (bit<8>)8w23; + meta.m.field_8_24 = (bit<8>)8w24; + meta.m.field_8_25 = (bit<8>)8w25; + meta.m.field_8_26 = (bit<8>)8w26; + meta.m.field_8_27 = (bit<8>)8w27; + meta.m.field_8_28 = (bit<8>)8w28; + meta.m.field_8_29 = (bit<8>)8w29; + meta.m.field_8_30 = (bit<8>)8w30; + meta.m.field_8_31 = (bit<8>)8w31; + meta.m.field_8_32 = (bit<8>)8w32; + meta.m.field_8_33 = (bit<8>)8w33; + meta.m.field_8_34 = (bit<8>)8w34; + meta.m.field_8_35 = (bit<8>)8w35; + meta.m.field_8_36 = (bit<8>)8w36; + meta.m.field_8_37 = (bit<8>)8w37; + meta.m.field_8_38 = (bit<8>)8w38; + meta.m.field_8_39 = (bit<8>)8w39; + meta.m.field_8_40 = (bit<8>)8w40; + meta.m.field_8_41 = (bit<8>)8w41; + meta.m.field_8_42 = (bit<8>)8w42; + meta.m.field_8_43 = (bit<8>)8w43; + meta.m.field_8_44 = (bit<8>)8w44; + meta.m.field_8_45 = (bit<8>)8w45; + meta.m.field_8_46 = (bit<8>)8w46; + meta.m.field_8_47 = (bit<8>)8w47; + meta.m.field_8_48 = (bit<8>)8w48; + meta.m.field_8_49 = (bit<8>)8w49; + meta.m.field_8_50 = (bit<8>)8w50; + meta.m.field_8_51 = (bit<8>)8w51; + meta.m.field_8_52 = (bit<8>)8w52; + meta.m.field_8_53 = (bit<8>)8w53; + meta.m.field_8_54 = (bit<8>)8w54; + meta.m.field_8_55 = (bit<8>)8w55; + meta.m.field_8_56 = (bit<8>)8w56; + meta.m.field_8_57 = (bit<8>)8w57; + meta.m.field_8_58 = (bit<8>)8w58; + meta.m.field_8_59 = (bit<8>)8w59; + meta.m.field_8_60 = (bit<8>)8w60; + meta.m.field_8_61 = (bit<8>)8w61; + meta.m.field_8_62 = (bit<8>)8w62; + meta.m.field_8_63 = (bit<8>)8w63; + meta.m.field_8_64 = (bit<8>)8w64; + meta.m.field_16_01 = (bit<16>)16w1; + meta.m.field_16_02 = (bit<16>)16w2; + meta.m.field_16_03 = (bit<16>)16w3; + meta.m.field_16_04 = (bit<16>)16w4; + meta.m.field_16_05 = (bit<16>)16w5; + meta.m.field_16_06 = (bit<16>)16w6; + meta.m.field_16_07 = (bit<16>)16w7; + meta.m.field_16_08 = (bit<16>)16w8; + meta.m.field_16_09 = (bit<16>)16w9; + meta.m.field_16_10 = (bit<16>)16w10; + meta.m.field_16_11 = (bit<16>)16w11; + meta.m.field_16_12 = (bit<16>)16w12; + meta.m.field_16_13 = (bit<16>)16w13; + meta.m.field_16_14 = (bit<16>)16w14; + meta.m.field_16_15 = (bit<16>)16w15; + meta.m.field_16_16 = (bit<16>)16w16; + meta.m.field_16_17 = (bit<16>)16w17; + meta.m.field_16_18 = (bit<16>)16w18; + meta.m.field_16_19 = (bit<16>)16w19; + meta.m.field_16_20 = (bit<16>)16w20; + meta.m.field_16_21 = (bit<16>)16w21; + meta.m.field_16_22 = (bit<16>)16w22; + meta.m.field_16_23 = (bit<16>)16w23; + meta.m.field_16_24 = (bit<16>)16w24; + meta.m.field_16_25 = (bit<16>)16w25; + meta.m.field_16_26 = (bit<16>)16w26; + meta.m.field_16_27 = (bit<16>)16w27; + meta.m.field_16_28 = (bit<16>)16w28; + meta.m.field_16_29 = (bit<16>)16w29; + meta.m.field_16_30 = (bit<16>)16w30; + meta.m.field_16_31 = (bit<16>)16w31; + meta.m.field_16_32 = (bit<16>)16w32; + meta.m.field_16_33 = (bit<16>)16w33; + meta.m.field_16_34 = (bit<16>)16w34; + meta.m.field_16_35 = (bit<16>)16w35; + meta.m.field_16_36 = (bit<16>)16w36; + meta.m.field_16_37 = (bit<16>)16w37; + meta.m.field_16_38 = (bit<16>)16w38; + meta.m.field_16_39 = (bit<16>)16w39; + meta.m.field_16_40 = (bit<16>)16w40; + meta.m.field_16_41 = (bit<16>)16w41; + meta.m.field_16_42 = (bit<16>)16w42; + meta.m.field_16_43 = (bit<16>)16w43; + meta.m.field_16_44 = (bit<16>)16w44; + meta.m.field_16_45 = (bit<16>)16w45; + meta.m.field_16_46 = (bit<16>)16w46; + meta.m.field_16_47 = (bit<16>)16w47; + meta.m.field_16_48 = (bit<16>)16w48; + meta.m.field_16_49 = (bit<16>)16w49; + meta.m.field_16_50 = (bit<16>)16w50; + meta.m.field_16_51 = (bit<16>)16w51; + meta.m.field_16_52 = (bit<16>)16w52; + meta.m.field_16_53 = (bit<16>)16w53; + meta.m.field_16_54 = (bit<16>)16w54; + meta.m.field_16_55 = (bit<16>)16w55; + meta.m.field_16_56 = (bit<16>)16w56; + meta.m.field_16_57 = (bit<16>)16w57; + meta.m.field_16_58 = (bit<16>)16w58; + meta.m.field_16_59 = (bit<16>)16w59; + meta.m.field_16_60 = (bit<16>)16w60; + meta.m.field_16_61 = (bit<16>)16w61; + meta.m.field_16_62 = (bit<16>)16w62; + meta.m.field_16_63 = (bit<16>)16w63; + meta.m.field_16_64 = (bit<16>)16w64; + meta.m.field_16_65 = (bit<16>)16w65; + meta.m.field_16_66 = (bit<16>)16w66; + meta.m.field_16_67 = (bit<16>)16w67; + meta.m.field_16_68 = (bit<16>)16w68; + meta.m.field_16_69 = (bit<16>)16w69; + meta.m.field_16_70 = (bit<16>)16w70; + meta.m.field_16_71 = (bit<16>)16w71; + meta.m.field_16_72 = (bit<16>)16w72; + meta.m.field_16_73 = (bit<16>)16w73; + meta.m.field_16_74 = (bit<16>)16w74; + meta.m.field_16_75 = (bit<16>)16w75; + meta.m.field_16_76 = (bit<16>)16w76; + meta.m.field_16_77 = (bit<16>)16w77; + meta.m.field_16_78 = (bit<16>)16w78; + meta.m.field_16_79 = (bit<16>)16w79; + meta.m.field_16_80 = (bit<16>)16w80; + meta.m.field_16_81 = (bit<16>)16w81; + meta.m.field_16_82 = (bit<16>)16w82; + meta.m.field_16_83 = (bit<16>)16w83; + meta.m.field_16_84 = (bit<16>)16w84; + meta.m.field_16_85 = (bit<16>)16w85; + meta.m.field_16_86 = (bit<16>)16w86; + meta.m.field_16_87 = (bit<16>)16w87; + meta.m.field_16_88 = (bit<16>)16w88; + meta.m.field_16_89 = (bit<16>)16w89; + meta.m.field_16_90 = (bit<16>)16w90; + meta.m.field_16_91 = (bit<16>)16w91; + meta.m.field_16_92 = (bit<16>)16w92; + meta.m.field_16_93 = (bit<16>)16w93; + meta.m.field_16_94 = (bit<16>)16w94; + meta.m.field_16_95 = (bit<16>)16w95; + meta.m.field_16_96 = (bit<16>)16w96; + meta.m.field_32_01 = (bit<32>)32w1; + meta.m.field_32_02 = (bit<32>)32w2; + meta.m.field_32_03 = (bit<32>)32w3; + meta.m.field_32_04 = (bit<32>)32w4; + meta.m.field_32_05 = (bit<32>)32w5; + meta.m.field_32_06 = (bit<32>)32w6; + meta.m.field_32_07 = (bit<32>)32w7; + meta.m.field_32_08 = (bit<32>)32w8; + meta.m.field_32_09 = (bit<32>)32w9; + meta.m.field_32_10 = (bit<32>)32w10; + meta.m.field_32_11 = (bit<32>)32w11; + meta.m.field_32_12 = (bit<32>)32w12; + meta.m.field_32_13 = (bit<32>)32w13; + meta.m.field_32_14 = (bit<32>)32w14; + meta.m.field_32_15 = (bit<32>)32w15; + meta.m.field_32_16 = (bit<32>)32w16; + meta.m.field_32_17 = (bit<32>)32w17; + meta.m.field_32_18 = (bit<32>)32w18; + meta.m.field_32_19 = (bit<32>)32w19; + meta.m.field_32_20 = (bit<32>)32w20; + meta.m.field_32_21 = (bit<32>)32w21; + meta.m.field_32_22 = (bit<32>)32w22; + meta.m.field_32_23 = (bit<32>)32w23; + meta.m.field_32_24 = (bit<32>)32w24; + meta.m.field_32_25 = (bit<32>)32w25; + meta.m.field_32_26 = (bit<32>)32w26; + meta.m.field_32_27 = (bit<32>)32w27; + meta.m.field_32_28 = (bit<32>)32w28; + meta.m.field_32_29 = (bit<32>)32w29; + meta.m.field_32_30 = (bit<32>)32w30; + meta.m.field_32_31 = (bit<32>)32w31; + meta.m.field_32_32 = (bit<32>)32w32; + meta.m.field_32_33 = (bit<32>)32w33; + meta.m.field_32_34 = (bit<32>)32w34; + meta.m.field_32_35 = (bit<32>)32w35; + meta.m.field_32_36 = (bit<32>)32w36; + meta.m.field_32_37 = (bit<32>)32w37; + meta.m.field_32_38 = (bit<32>)32w38; + meta.m.field_32_39 = (bit<32>)32w39; + meta.m.field_32_40 = (bit<32>)32w40; + meta.m.field_32_41 = (bit<32>)32w41; + meta.m.field_32_42 = (bit<32>)32w42; + meta.m.field_32_43 = (bit<32>)32w43; + meta.m.field_32_44 = (bit<32>)32w44; + meta.m.field_32_45 = (bit<32>)32w45; + meta.m.field_32_46 = (bit<32>)32w46; + meta.m.field_32_47 = (bit<32>)32w47; + meta.m.field_32_48 = (bit<32>)32w48; + meta.m.field_32_49 = (bit<32>)32w49; + meta.m.field_32_50 = (bit<32>)32w50; + meta.m.field_32_51 = (bit<32>)32w51; + meta.m.field_32_52 = (bit<32>)32w52; + meta.m.field_32_53 = (bit<32>)32w53; + meta.m.field_32_54 = (bit<32>)32w54; + meta.m.field_32_55 = (bit<32>)32w55; + meta.m.field_32_56 = (bit<32>)32w56; + meta.m.field_32_57 = (bit<32>)32w57; + meta.m.field_32_58 = (bit<32>)32w58; + meta.m.field_32_59 = (bit<32>)32w59; + meta.m.field_32_60 = (bit<32>)32w60; + meta.m.field_32_61 = (bit<32>)32w61; + meta.m.field_32_62 = (bit<32>)32w62; + meta.m.field_32_63 = (bit<32>)32w63; hdr.h.setInvalid(); } @name(".set_egress_spec") action set_egress_spec(bit<9> port) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name("t1") table t1 { actions = { diff --git a/testdata/p4_14_samples_outputs/06-FullTPHV1.p4 b/testdata/p4_14_samples_outputs/06-FullTPHV1.p4 index f2f74d80972..766a416758e 100644 --- a/testdata/p4_14_samples_outputs/06-FullTPHV1.p4 +++ b/testdata/p4_14_samples_outputs/06-FullTPHV1.p4 @@ -327,200 +327,200 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".a1") action a1() { - meta.m.field_8_01 = 8w1; - meta.m.field_8_02 = 8w2; - meta.m.field_8_03 = 8w3; - meta.m.field_8_04 = 8w4; - meta.m.field_8_05 = 8w5; - meta.m.field_8_06 = 8w6; - meta.m.field_8_07 = 8w7; - meta.m.field_8_08 = 8w8; - meta.m.field_8_09 = 8w9; - meta.m.field_8_10 = 8w10; - meta.m.field_8_11 = 8w11; - meta.m.field_8_12 = 8w12; - meta.m.field_8_13 = 8w13; - meta.m.field_8_14 = 8w14; - meta.m.field_8_15 = 8w15; - meta.m.field_8_16 = 8w16; - meta.m.field_8_17 = 8w17; - meta.m.field_8_18 = 8w18; - meta.m.field_8_19 = 8w19; - meta.m.field_8_20 = 8w20; - meta.m.field_8_21 = 8w21; - meta.m.field_8_22 = 8w22; - meta.m.field_8_23 = 8w23; - meta.m.field_8_24 = 8w24; - meta.m.field_8_25 = 8w25; - meta.m.field_8_26 = 8w26; - meta.m.field_8_27 = 8w27; - meta.m.field_8_28 = 8w28; - meta.m.field_8_29 = 8w29; - meta.m.field_8_30 = 8w30; - meta.m.field_8_31 = 8w31; - meta.m.field_8_32 = 8w32; - meta.m.field_16_01 = 16w1; - meta.m.field_16_02 = 16w2; - meta.m.field_16_03 = 16w3; - meta.m.field_16_04 = 16w4; - meta.m.field_16_05 = 16w5; - meta.m.field_16_06 = 16w6; - meta.m.field_16_07 = 16w7; - meta.m.field_16_08 = 16w8; - meta.m.field_16_09 = 16w9; - meta.m.field_16_10 = 16w10; - meta.m.field_16_11 = 16w11; - meta.m.field_16_12 = 16w12; - meta.m.field_16_13 = 16w13; - meta.m.field_16_14 = 16w14; - meta.m.field_16_15 = 16w15; - meta.m.field_16_16 = 16w16; - meta.m.field_16_17 = 16w17; - meta.m.field_16_18 = 16w18; - meta.m.field_16_19 = 16w19; - meta.m.field_16_20 = 16w20; - meta.m.field_16_21 = 16w21; - meta.m.field_16_22 = 16w22; - meta.m.field_16_23 = 16w23; - meta.m.field_16_24 = 16w24; - meta.m.field_16_25 = 16w25; - meta.m.field_16_26 = 16w26; - meta.m.field_16_27 = 16w27; - meta.m.field_16_28 = 16w28; - meta.m.field_16_29 = 16w29; - meta.m.field_16_30 = 16w30; - meta.m.field_16_31 = 16w31; - meta.m.field_16_32 = 16w32; - meta.m.field_16_33 = 16w33; - meta.m.field_16_34 = 16w34; - meta.m.field_16_35 = 16w35; - meta.m.field_16_36 = 16w36; - meta.m.field_16_37 = 16w37; - meta.m.field_16_38 = 16w38; - meta.m.field_16_39 = 16w39; - meta.m.field_16_40 = 16w40; - meta.m.field_16_41 = 16w41; - meta.m.field_16_42 = 16w42; - meta.m.field_16_43 = 16w43; - meta.m.field_16_44 = 16w44; - meta.m.field_16_45 = 16w45; - meta.m.field_16_46 = 16w46; - meta.m.field_16_47 = 16w47; - meta.m.field_16_48 = 16w48; - meta.m.field_16_49 = 16w49; - meta.m.field_16_50 = 16w50; - meta.m.field_16_51 = 16w51; - meta.m.field_16_52 = 16w52; - meta.m.field_16_53 = 16w53; - meta.m.field_16_54 = 16w54; - meta.m.field_16_55 = 16w55; - meta.m.field_16_56 = 16w56; - meta.m.field_16_57 = 16w57; - meta.m.field_16_58 = 16w58; - meta.m.field_16_59 = 16w59; - meta.m.field_16_60 = 16w60; - meta.m.field_16_61 = 16w61; - meta.m.field_16_62 = 16w62; - meta.m.field_16_63 = 16w63; - meta.m.field_16_64 = 16w64; - meta.m.field_16_65 = 16w65; - meta.m.field_16_66 = 16w66; - meta.m.field_16_67 = 16w67; - meta.m.field_16_68 = 16w68; - meta.m.field_16_69 = 16w69; - meta.m.field_16_70 = 16w70; - meta.m.field_16_71 = 16w71; - meta.m.field_16_72 = 16w72; - meta.m.field_16_73 = 16w73; - meta.m.field_16_74 = 16w74; - meta.m.field_16_75 = 16w75; - meta.m.field_16_76 = 16w76; - meta.m.field_16_77 = 16w77; - meta.m.field_16_78 = 16w78; - meta.m.field_16_79 = 16w79; - meta.m.field_16_80 = 16w80; - meta.m.field_16_81 = 16w81; - meta.m.field_16_82 = 16w82; - meta.m.field_16_83 = 16w83; - meta.m.field_16_84 = 16w84; - meta.m.field_16_85 = 16w85; - meta.m.field_16_86 = 16w86; - meta.m.field_16_87 = 16w87; - meta.m.field_16_88 = 16w88; - meta.m.field_16_89 = 16w89; - meta.m.field_16_90 = 16w90; - meta.m.field_16_91 = 16w91; - meta.m.field_16_92 = 16w92; - meta.m.field_16_93 = 16w93; - meta.m.field_16_94 = 16w94; - meta.m.field_16_95 = 16w95; - meta.m.field_16_96 = 16w96; - meta.m.field_32_01 = 32w1; - meta.m.field_32_02 = 32w2; - meta.m.field_32_03 = 32w3; - meta.m.field_32_04 = 32w4; - meta.m.field_32_05 = 32w5; - meta.m.field_32_06 = 32w6; - meta.m.field_32_07 = 32w7; - meta.m.field_32_08 = 32w8; - meta.m.field_32_09 = 32w9; - meta.m.field_32_10 = 32w10; - meta.m.field_32_11 = 32w11; - meta.m.field_32_12 = 32w12; - meta.m.field_32_13 = 32w13; - meta.m.field_32_14 = 32w14; - meta.m.field_32_15 = 32w15; - meta.m.field_32_16 = 32w16; - meta.m.field_32_17 = 32w17; - meta.m.field_32_18 = 32w18; - meta.m.field_32_19 = 32w19; - meta.m.field_32_20 = 32w20; - meta.m.field_32_21 = 32w21; - meta.m.field_32_22 = 32w22; - meta.m.field_32_23 = 32w23; - meta.m.field_32_24 = 32w24; - meta.m.field_32_25 = 32w25; - meta.m.field_32_26 = 32w26; - meta.m.field_32_27 = 32w27; - meta.m.field_32_28 = 32w28; - meta.m.field_32_29 = 32w29; - meta.m.field_32_30 = 32w30; - meta.m.field_32_31 = 32w31; - meta.m.field_32_32 = 32w32; - meta.m.field_32_33 = 32w33; - meta.m.field_32_34 = 32w34; - meta.m.field_32_35 = 32w35; - meta.m.field_32_36 = 32w36; - meta.m.field_32_37 = 32w37; - meta.m.field_32_38 = 32w38; - meta.m.field_32_39 = 32w39; - meta.m.field_32_40 = 32w40; - meta.m.field_32_41 = 32w41; - meta.m.field_32_42 = 32w42; - meta.m.field_32_43 = 32w43; - meta.m.field_32_44 = 32w44; - meta.m.field_32_45 = 32w45; - meta.m.field_32_46 = 32w46; - meta.m.field_32_47 = 32w47; - meta.m.field_32_48 = 32w48; - meta.m.field_32_49 = 32w49; - meta.m.field_32_50 = 32w50; - meta.m.field_32_51 = 32w51; - meta.m.field_32_52 = 32w52; - meta.m.field_32_53 = 32w53; - meta.m.field_32_54 = 32w54; - meta.m.field_32_55 = 32w55; - meta.m.field_32_56 = 32w56; - meta.m.field_32_57 = 32w57; - meta.m.field_32_58 = 32w58; - meta.m.field_32_59 = 32w59; - meta.m.field_32_60 = 32w60; - meta.m.field_32_61 = 32w61; - meta.m.field_32_62 = 32w62; - meta.m.field_32_63 = 32w63; + meta.m.field_8_01 = (bit<8>)8w1; + meta.m.field_8_02 = (bit<8>)8w2; + meta.m.field_8_03 = (bit<8>)8w3; + meta.m.field_8_04 = (bit<8>)8w4; + meta.m.field_8_05 = (bit<8>)8w5; + meta.m.field_8_06 = (bit<8>)8w6; + meta.m.field_8_07 = (bit<8>)8w7; + meta.m.field_8_08 = (bit<8>)8w8; + meta.m.field_8_09 = (bit<8>)8w9; + meta.m.field_8_10 = (bit<8>)8w10; + meta.m.field_8_11 = (bit<8>)8w11; + meta.m.field_8_12 = (bit<8>)8w12; + meta.m.field_8_13 = (bit<8>)8w13; + meta.m.field_8_14 = (bit<8>)8w14; + meta.m.field_8_15 = (bit<8>)8w15; + meta.m.field_8_16 = (bit<8>)8w16; + meta.m.field_8_17 = (bit<8>)8w17; + meta.m.field_8_18 = (bit<8>)8w18; + meta.m.field_8_19 = (bit<8>)8w19; + meta.m.field_8_20 = (bit<8>)8w20; + meta.m.field_8_21 = (bit<8>)8w21; + meta.m.field_8_22 = (bit<8>)8w22; + meta.m.field_8_23 = (bit<8>)8w23; + meta.m.field_8_24 = (bit<8>)8w24; + meta.m.field_8_25 = (bit<8>)8w25; + meta.m.field_8_26 = (bit<8>)8w26; + meta.m.field_8_27 = (bit<8>)8w27; + meta.m.field_8_28 = (bit<8>)8w28; + meta.m.field_8_29 = (bit<8>)8w29; + meta.m.field_8_30 = (bit<8>)8w30; + meta.m.field_8_31 = (bit<8>)8w31; + meta.m.field_8_32 = (bit<8>)8w32; + meta.m.field_16_01 = (bit<16>)16w1; + meta.m.field_16_02 = (bit<16>)16w2; + meta.m.field_16_03 = (bit<16>)16w3; + meta.m.field_16_04 = (bit<16>)16w4; + meta.m.field_16_05 = (bit<16>)16w5; + meta.m.field_16_06 = (bit<16>)16w6; + meta.m.field_16_07 = (bit<16>)16w7; + meta.m.field_16_08 = (bit<16>)16w8; + meta.m.field_16_09 = (bit<16>)16w9; + meta.m.field_16_10 = (bit<16>)16w10; + meta.m.field_16_11 = (bit<16>)16w11; + meta.m.field_16_12 = (bit<16>)16w12; + meta.m.field_16_13 = (bit<16>)16w13; + meta.m.field_16_14 = (bit<16>)16w14; + meta.m.field_16_15 = (bit<16>)16w15; + meta.m.field_16_16 = (bit<16>)16w16; + meta.m.field_16_17 = (bit<16>)16w17; + meta.m.field_16_18 = (bit<16>)16w18; + meta.m.field_16_19 = (bit<16>)16w19; + meta.m.field_16_20 = (bit<16>)16w20; + meta.m.field_16_21 = (bit<16>)16w21; + meta.m.field_16_22 = (bit<16>)16w22; + meta.m.field_16_23 = (bit<16>)16w23; + meta.m.field_16_24 = (bit<16>)16w24; + meta.m.field_16_25 = (bit<16>)16w25; + meta.m.field_16_26 = (bit<16>)16w26; + meta.m.field_16_27 = (bit<16>)16w27; + meta.m.field_16_28 = (bit<16>)16w28; + meta.m.field_16_29 = (bit<16>)16w29; + meta.m.field_16_30 = (bit<16>)16w30; + meta.m.field_16_31 = (bit<16>)16w31; + meta.m.field_16_32 = (bit<16>)16w32; + meta.m.field_16_33 = (bit<16>)16w33; + meta.m.field_16_34 = (bit<16>)16w34; + meta.m.field_16_35 = (bit<16>)16w35; + meta.m.field_16_36 = (bit<16>)16w36; + meta.m.field_16_37 = (bit<16>)16w37; + meta.m.field_16_38 = (bit<16>)16w38; + meta.m.field_16_39 = (bit<16>)16w39; + meta.m.field_16_40 = (bit<16>)16w40; + meta.m.field_16_41 = (bit<16>)16w41; + meta.m.field_16_42 = (bit<16>)16w42; + meta.m.field_16_43 = (bit<16>)16w43; + meta.m.field_16_44 = (bit<16>)16w44; + meta.m.field_16_45 = (bit<16>)16w45; + meta.m.field_16_46 = (bit<16>)16w46; + meta.m.field_16_47 = (bit<16>)16w47; + meta.m.field_16_48 = (bit<16>)16w48; + meta.m.field_16_49 = (bit<16>)16w49; + meta.m.field_16_50 = (bit<16>)16w50; + meta.m.field_16_51 = (bit<16>)16w51; + meta.m.field_16_52 = (bit<16>)16w52; + meta.m.field_16_53 = (bit<16>)16w53; + meta.m.field_16_54 = (bit<16>)16w54; + meta.m.field_16_55 = (bit<16>)16w55; + meta.m.field_16_56 = (bit<16>)16w56; + meta.m.field_16_57 = (bit<16>)16w57; + meta.m.field_16_58 = (bit<16>)16w58; + meta.m.field_16_59 = (bit<16>)16w59; + meta.m.field_16_60 = (bit<16>)16w60; + meta.m.field_16_61 = (bit<16>)16w61; + meta.m.field_16_62 = (bit<16>)16w62; + meta.m.field_16_63 = (bit<16>)16w63; + meta.m.field_16_64 = (bit<16>)16w64; + meta.m.field_16_65 = (bit<16>)16w65; + meta.m.field_16_66 = (bit<16>)16w66; + meta.m.field_16_67 = (bit<16>)16w67; + meta.m.field_16_68 = (bit<16>)16w68; + meta.m.field_16_69 = (bit<16>)16w69; + meta.m.field_16_70 = (bit<16>)16w70; + meta.m.field_16_71 = (bit<16>)16w71; + meta.m.field_16_72 = (bit<16>)16w72; + meta.m.field_16_73 = (bit<16>)16w73; + meta.m.field_16_74 = (bit<16>)16w74; + meta.m.field_16_75 = (bit<16>)16w75; + meta.m.field_16_76 = (bit<16>)16w76; + meta.m.field_16_77 = (bit<16>)16w77; + meta.m.field_16_78 = (bit<16>)16w78; + meta.m.field_16_79 = (bit<16>)16w79; + meta.m.field_16_80 = (bit<16>)16w80; + meta.m.field_16_81 = (bit<16>)16w81; + meta.m.field_16_82 = (bit<16>)16w82; + meta.m.field_16_83 = (bit<16>)16w83; + meta.m.field_16_84 = (bit<16>)16w84; + meta.m.field_16_85 = (bit<16>)16w85; + meta.m.field_16_86 = (bit<16>)16w86; + meta.m.field_16_87 = (bit<16>)16w87; + meta.m.field_16_88 = (bit<16>)16w88; + meta.m.field_16_89 = (bit<16>)16w89; + meta.m.field_16_90 = (bit<16>)16w90; + meta.m.field_16_91 = (bit<16>)16w91; + meta.m.field_16_92 = (bit<16>)16w92; + meta.m.field_16_93 = (bit<16>)16w93; + meta.m.field_16_94 = (bit<16>)16w94; + meta.m.field_16_95 = (bit<16>)16w95; + meta.m.field_16_96 = (bit<16>)16w96; + meta.m.field_32_01 = (bit<32>)32w1; + meta.m.field_32_02 = (bit<32>)32w2; + meta.m.field_32_03 = (bit<32>)32w3; + meta.m.field_32_04 = (bit<32>)32w4; + meta.m.field_32_05 = (bit<32>)32w5; + meta.m.field_32_06 = (bit<32>)32w6; + meta.m.field_32_07 = (bit<32>)32w7; + meta.m.field_32_08 = (bit<32>)32w8; + meta.m.field_32_09 = (bit<32>)32w9; + meta.m.field_32_10 = (bit<32>)32w10; + meta.m.field_32_11 = (bit<32>)32w11; + meta.m.field_32_12 = (bit<32>)32w12; + meta.m.field_32_13 = (bit<32>)32w13; + meta.m.field_32_14 = (bit<32>)32w14; + meta.m.field_32_15 = (bit<32>)32w15; + meta.m.field_32_16 = (bit<32>)32w16; + meta.m.field_32_17 = (bit<32>)32w17; + meta.m.field_32_18 = (bit<32>)32w18; + meta.m.field_32_19 = (bit<32>)32w19; + meta.m.field_32_20 = (bit<32>)32w20; + meta.m.field_32_21 = (bit<32>)32w21; + meta.m.field_32_22 = (bit<32>)32w22; + meta.m.field_32_23 = (bit<32>)32w23; + meta.m.field_32_24 = (bit<32>)32w24; + meta.m.field_32_25 = (bit<32>)32w25; + meta.m.field_32_26 = (bit<32>)32w26; + meta.m.field_32_27 = (bit<32>)32w27; + meta.m.field_32_28 = (bit<32>)32w28; + meta.m.field_32_29 = (bit<32>)32w29; + meta.m.field_32_30 = (bit<32>)32w30; + meta.m.field_32_31 = (bit<32>)32w31; + meta.m.field_32_32 = (bit<32>)32w32; + meta.m.field_32_33 = (bit<32>)32w33; + meta.m.field_32_34 = (bit<32>)32w34; + meta.m.field_32_35 = (bit<32>)32w35; + meta.m.field_32_36 = (bit<32>)32w36; + meta.m.field_32_37 = (bit<32>)32w37; + meta.m.field_32_38 = (bit<32>)32w38; + meta.m.field_32_39 = (bit<32>)32w39; + meta.m.field_32_40 = (bit<32>)32w40; + meta.m.field_32_41 = (bit<32>)32w41; + meta.m.field_32_42 = (bit<32>)32w42; + meta.m.field_32_43 = (bit<32>)32w43; + meta.m.field_32_44 = (bit<32>)32w44; + meta.m.field_32_45 = (bit<32>)32w45; + meta.m.field_32_46 = (bit<32>)32w46; + meta.m.field_32_47 = (bit<32>)32w47; + meta.m.field_32_48 = (bit<32>)32w48; + meta.m.field_32_49 = (bit<32>)32w49; + meta.m.field_32_50 = (bit<32>)32w50; + meta.m.field_32_51 = (bit<32>)32w51; + meta.m.field_32_52 = (bit<32>)32w52; + meta.m.field_32_53 = (bit<32>)32w53; + meta.m.field_32_54 = (bit<32>)32w54; + meta.m.field_32_55 = (bit<32>)32w55; + meta.m.field_32_56 = (bit<32>)32w56; + meta.m.field_32_57 = (bit<32>)32w57; + meta.m.field_32_58 = (bit<32>)32w58; + meta.m.field_32_59 = (bit<32>)32w59; + meta.m.field_32_60 = (bit<32>)32w60; + meta.m.field_32_61 = (bit<32>)32w61; + meta.m.field_32_62 = (bit<32>)32w62; + meta.m.field_32_63 = (bit<32>)32w63; } @name(".set_egress_spec") action set_egress_spec(bit<9> port) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name("t1") table t1 { actions = { diff --git a/testdata/p4_14_samples_outputs/07-FullTPHV2.p4 b/testdata/p4_14_samples_outputs/07-FullTPHV2.p4 index 6ffffddad29..4843a094733 100644 --- a/testdata/p4_14_samples_outputs/07-FullTPHV2.p4 +++ b/testdata/p4_14_samples_outputs/07-FullTPHV2.p4 @@ -327,233 +327,233 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".a1") action a1() { - meta.m.field_8_01 = 8w1; - meta.m.field_8_02 = 8w2; - meta.m.field_8_03 = 8w3; - meta.m.field_8_04 = 8w4; - meta.m.field_8_05 = 8w5; - meta.m.field_8_06 = 8w6; - meta.m.field_8_07 = 8w7; - meta.m.field_8_08 = 8w8; - meta.m.field_8_09 = 8w9; - meta.m.field_8_10 = 8w10; - meta.m.field_8_11 = 8w11; - meta.m.field_8_12 = 8w12; - meta.m.field_8_13 = 8w13; - meta.m.field_8_14 = 8w14; - meta.m.field_8_15 = 8w15; - meta.m.field_8_16 = 8w16; - meta.m.field_8_17 = 8w17; - meta.m.field_8_18 = 8w18; - meta.m.field_8_19 = 8w19; - meta.m.field_8_20 = 8w20; - meta.m.field_8_21 = 8w21; - meta.m.field_8_22 = 8w22; - meta.m.field_8_23 = 8w23; - meta.m.field_8_24 = 8w24; - meta.m.field_8_25 = 8w25; - meta.m.field_8_26 = 8w26; - meta.m.field_8_27 = 8w27; - meta.m.field_8_28 = 8w28; - meta.m.field_8_29 = 8w29; - meta.m.field_8_30 = 8w30; - meta.m.field_8_31 = 8w31; - meta.m.field_8_32 = 8w32; - meta.m.field_8_33 = 8w33; - meta.m.field_8_34 = 8w34; - meta.m.field_8_35 = 8w35; - meta.m.field_8_36 = 8w36; - meta.m.field_8_37 = 8w37; - meta.m.field_8_38 = 8w38; - meta.m.field_8_39 = 8w39; - meta.m.field_8_40 = 8w40; - meta.m.field_8_41 = 8w41; - meta.m.field_8_42 = 8w42; - meta.m.field_8_43 = 8w43; - meta.m.field_8_44 = 8w44; - meta.m.field_8_45 = 8w45; - meta.m.field_8_46 = 8w46; - meta.m.field_8_47 = 8w47; - meta.m.field_8_48 = 8w48; - meta.m.field_8_49 = 8w49; - meta.m.field_8_50 = 8w50; - meta.m.field_8_51 = 8w51; - meta.m.field_8_52 = 8w52; - meta.m.field_8_53 = 8w53; - meta.m.field_8_54 = 8w54; - meta.m.field_8_55 = 8w55; - meta.m.field_8_56 = 8w56; - meta.m.field_8_57 = 8w57; - meta.m.field_8_58 = 8w58; - meta.m.field_8_59 = 8w59; - meta.m.field_8_60 = 8w60; - meta.m.field_8_61 = 8w61; - meta.m.field_8_62 = 8w62; - meta.m.field_8_63 = 8w63; - meta.m.field_8_64 = 8w64; - meta.m.field_16_01 = 16w1; - meta.m.field_16_02 = 16w2; - meta.m.field_16_03 = 16w3; - meta.m.field_16_04 = 16w4; - meta.m.field_16_05 = 16w5; - meta.m.field_16_06 = 16w6; - meta.m.field_16_07 = 16w7; - meta.m.field_16_08 = 16w8; - meta.m.field_16_09 = 16w9; - meta.m.field_16_10 = 16w10; - meta.m.field_16_11 = 16w11; - meta.m.field_16_12 = 16w12; - meta.m.field_16_13 = 16w13; - meta.m.field_16_14 = 16w14; - meta.m.field_16_15 = 16w15; - meta.m.field_16_16 = 16w16; - meta.m.field_16_17 = 16w17; - meta.m.field_16_18 = 16w18; - meta.m.field_16_19 = 16w19; - meta.m.field_16_20 = 16w20; - meta.m.field_16_21 = 16w21; - meta.m.field_16_22 = 16w22; - meta.m.field_16_23 = 16w23; - meta.m.field_16_24 = 16w24; - meta.m.field_16_25 = 16w25; - meta.m.field_16_26 = 16w26; - meta.m.field_16_27 = 16w27; - meta.m.field_16_28 = 16w28; - meta.m.field_16_29 = 16w29; - meta.m.field_16_30 = 16w30; - meta.m.field_16_31 = 16w31; - meta.m.field_16_32 = 16w32; - meta.m.field_16_33 = 16w33; - meta.m.field_16_34 = 16w34; - meta.m.field_16_35 = 16w35; - meta.m.field_16_36 = 16w36; - meta.m.field_16_37 = 16w37; - meta.m.field_16_38 = 16w38; - meta.m.field_16_39 = 16w39; - meta.m.field_16_40 = 16w40; - meta.m.field_16_41 = 16w41; - meta.m.field_16_42 = 16w42; - meta.m.field_16_43 = 16w43; - meta.m.field_16_44 = 16w44; - meta.m.field_16_45 = 16w45; - meta.m.field_16_46 = 16w46; - meta.m.field_16_47 = 16w47; - meta.m.field_16_48 = 16w48; - meta.m.field_16_49 = 16w49; - meta.m.field_16_50 = 16w50; - meta.m.field_16_51 = 16w51; - meta.m.field_16_52 = 16w52; - meta.m.field_16_53 = 16w53; - meta.m.field_16_54 = 16w54; - meta.m.field_16_55 = 16w55; - meta.m.field_16_56 = 16w56; - meta.m.field_16_57 = 16w57; - meta.m.field_16_58 = 16w58; - meta.m.field_16_59 = 16w59; - meta.m.field_16_60 = 16w60; - meta.m.field_16_61 = 16w61; - meta.m.field_16_62 = 16w62; - meta.m.field_16_63 = 16w63; - meta.m.field_16_64 = 16w64; - meta.m.field_16_65 = 16w65; - meta.m.field_16_66 = 16w66; - meta.m.field_16_67 = 16w67; - meta.m.field_16_68 = 16w68; - meta.m.field_16_69 = 16w69; - meta.m.field_16_70 = 16w70; - meta.m.field_16_71 = 16w71; - meta.m.field_16_72 = 16w72; - meta.m.field_16_73 = 16w73; - meta.m.field_16_74 = 16w74; - meta.m.field_16_75 = 16w75; - meta.m.field_16_76 = 16w76; - meta.m.field_16_77 = 16w77; - meta.m.field_16_78 = 16w78; - meta.m.field_16_79 = 16w79; - meta.m.field_16_80 = 16w80; - meta.m.field_16_81 = 16w81; - meta.m.field_16_82 = 16w82; - meta.m.field_16_83 = 16w83; - meta.m.field_16_84 = 16w84; - meta.m.field_16_85 = 16w85; - meta.m.field_16_86 = 16w86; - meta.m.field_16_87 = 16w87; - meta.m.field_16_88 = 16w88; - meta.m.field_16_89 = 16w89; - meta.m.field_16_90 = 16w90; - meta.m.field_16_91 = 16w91; - meta.m.field_16_92 = 16w92; - meta.m.field_16_93 = 16w93; - meta.m.field_16_94 = 16w94; - meta.m.field_16_95 = 16w95; - meta.m.field_16_96 = 16w96; - meta.m.field_32_01 = 32w1; - meta.m.field_32_02 = 32w2; - meta.m.field_32_03 = 32w3; - meta.m.field_32_04 = 32w4; - meta.m.field_32_05 = 32w5; - meta.m.field_32_06 = 32w6; - meta.m.field_32_07 = 32w7; - meta.m.field_32_08 = 32w8; - meta.m.field_32_09 = 32w9; - meta.m.field_32_10 = 32w10; - meta.m.field_32_11 = 32w11; - meta.m.field_32_12 = 32w12; - meta.m.field_32_13 = 32w13; - meta.m.field_32_14 = 32w14; - meta.m.field_32_15 = 32w15; - meta.m.field_32_16 = 32w16; - meta.m.field_32_17 = 32w17; - meta.m.field_32_18 = 32w18; - meta.m.field_32_19 = 32w19; - meta.m.field_32_20 = 32w20; - meta.m.field_32_21 = 32w21; - meta.m.field_32_22 = 32w22; - meta.m.field_32_23 = 32w23; - meta.m.field_32_24 = 32w24; - meta.m.field_32_25 = 32w25; - meta.m.field_32_26 = 32w26; - meta.m.field_32_27 = 32w27; - meta.m.field_32_28 = 32w28; - meta.m.field_32_29 = 32w29; - meta.m.field_32_30 = 32w30; - meta.m.field_32_31 = 32w31; - meta.m.field_32_32 = 32w32; - meta.m.field_32_33 = 32w33; - meta.m.field_32_34 = 32w34; - meta.m.field_32_35 = 32w35; - meta.m.field_32_36 = 32w36; - meta.m.field_32_37 = 32w37; - meta.m.field_32_38 = 32w38; - meta.m.field_32_39 = 32w39; - meta.m.field_32_40 = 32w40; - meta.m.field_32_41 = 32w41; - meta.m.field_32_42 = 32w42; - meta.m.field_32_43 = 32w43; - meta.m.field_32_44 = 32w44; - meta.m.field_32_45 = 32w45; - meta.m.field_32_46 = 32w46; - meta.m.field_32_47 = 32w47; - meta.m.field_32_48 = 32w48; - meta.m.field_32_49 = 32w49; - meta.m.field_32_50 = 32w50; - meta.m.field_32_51 = 32w51; - meta.m.field_32_52 = 32w52; - meta.m.field_32_53 = 32w53; - meta.m.field_32_54 = 32w54; - meta.m.field_32_55 = 32w55; - meta.m.field_32_56 = 32w56; - meta.m.field_32_57 = 32w57; - meta.m.field_32_58 = 32w58; - meta.m.field_32_59 = 32w59; - meta.m.field_32_60 = 32w60; - meta.m.field_32_61 = 32w61; - meta.m.field_32_62 = 32w62; - meta.m.field_32_63 = 32w63; - meta.m.field_32_64 = 32w64; + meta.m.field_8_01 = (bit<8>)8w1; + meta.m.field_8_02 = (bit<8>)8w2; + meta.m.field_8_03 = (bit<8>)8w3; + meta.m.field_8_04 = (bit<8>)8w4; + meta.m.field_8_05 = (bit<8>)8w5; + meta.m.field_8_06 = (bit<8>)8w6; + meta.m.field_8_07 = (bit<8>)8w7; + meta.m.field_8_08 = (bit<8>)8w8; + meta.m.field_8_09 = (bit<8>)8w9; + meta.m.field_8_10 = (bit<8>)8w10; + meta.m.field_8_11 = (bit<8>)8w11; + meta.m.field_8_12 = (bit<8>)8w12; + meta.m.field_8_13 = (bit<8>)8w13; + meta.m.field_8_14 = (bit<8>)8w14; + meta.m.field_8_15 = (bit<8>)8w15; + meta.m.field_8_16 = (bit<8>)8w16; + meta.m.field_8_17 = (bit<8>)8w17; + meta.m.field_8_18 = (bit<8>)8w18; + meta.m.field_8_19 = (bit<8>)8w19; + meta.m.field_8_20 = (bit<8>)8w20; + meta.m.field_8_21 = (bit<8>)8w21; + meta.m.field_8_22 = (bit<8>)8w22; + meta.m.field_8_23 = (bit<8>)8w23; + meta.m.field_8_24 = (bit<8>)8w24; + meta.m.field_8_25 = (bit<8>)8w25; + meta.m.field_8_26 = (bit<8>)8w26; + meta.m.field_8_27 = (bit<8>)8w27; + meta.m.field_8_28 = (bit<8>)8w28; + meta.m.field_8_29 = (bit<8>)8w29; + meta.m.field_8_30 = (bit<8>)8w30; + meta.m.field_8_31 = (bit<8>)8w31; + meta.m.field_8_32 = (bit<8>)8w32; + meta.m.field_8_33 = (bit<8>)8w33; + meta.m.field_8_34 = (bit<8>)8w34; + meta.m.field_8_35 = (bit<8>)8w35; + meta.m.field_8_36 = (bit<8>)8w36; + meta.m.field_8_37 = (bit<8>)8w37; + meta.m.field_8_38 = (bit<8>)8w38; + meta.m.field_8_39 = (bit<8>)8w39; + meta.m.field_8_40 = (bit<8>)8w40; + meta.m.field_8_41 = (bit<8>)8w41; + meta.m.field_8_42 = (bit<8>)8w42; + meta.m.field_8_43 = (bit<8>)8w43; + meta.m.field_8_44 = (bit<8>)8w44; + meta.m.field_8_45 = (bit<8>)8w45; + meta.m.field_8_46 = (bit<8>)8w46; + meta.m.field_8_47 = (bit<8>)8w47; + meta.m.field_8_48 = (bit<8>)8w48; + meta.m.field_8_49 = (bit<8>)8w49; + meta.m.field_8_50 = (bit<8>)8w50; + meta.m.field_8_51 = (bit<8>)8w51; + meta.m.field_8_52 = (bit<8>)8w52; + meta.m.field_8_53 = (bit<8>)8w53; + meta.m.field_8_54 = (bit<8>)8w54; + meta.m.field_8_55 = (bit<8>)8w55; + meta.m.field_8_56 = (bit<8>)8w56; + meta.m.field_8_57 = (bit<8>)8w57; + meta.m.field_8_58 = (bit<8>)8w58; + meta.m.field_8_59 = (bit<8>)8w59; + meta.m.field_8_60 = (bit<8>)8w60; + meta.m.field_8_61 = (bit<8>)8w61; + meta.m.field_8_62 = (bit<8>)8w62; + meta.m.field_8_63 = (bit<8>)8w63; + meta.m.field_8_64 = (bit<8>)8w64; + meta.m.field_16_01 = (bit<16>)16w1; + meta.m.field_16_02 = (bit<16>)16w2; + meta.m.field_16_03 = (bit<16>)16w3; + meta.m.field_16_04 = (bit<16>)16w4; + meta.m.field_16_05 = (bit<16>)16w5; + meta.m.field_16_06 = (bit<16>)16w6; + meta.m.field_16_07 = (bit<16>)16w7; + meta.m.field_16_08 = (bit<16>)16w8; + meta.m.field_16_09 = (bit<16>)16w9; + meta.m.field_16_10 = (bit<16>)16w10; + meta.m.field_16_11 = (bit<16>)16w11; + meta.m.field_16_12 = (bit<16>)16w12; + meta.m.field_16_13 = (bit<16>)16w13; + meta.m.field_16_14 = (bit<16>)16w14; + meta.m.field_16_15 = (bit<16>)16w15; + meta.m.field_16_16 = (bit<16>)16w16; + meta.m.field_16_17 = (bit<16>)16w17; + meta.m.field_16_18 = (bit<16>)16w18; + meta.m.field_16_19 = (bit<16>)16w19; + meta.m.field_16_20 = (bit<16>)16w20; + meta.m.field_16_21 = (bit<16>)16w21; + meta.m.field_16_22 = (bit<16>)16w22; + meta.m.field_16_23 = (bit<16>)16w23; + meta.m.field_16_24 = (bit<16>)16w24; + meta.m.field_16_25 = (bit<16>)16w25; + meta.m.field_16_26 = (bit<16>)16w26; + meta.m.field_16_27 = (bit<16>)16w27; + meta.m.field_16_28 = (bit<16>)16w28; + meta.m.field_16_29 = (bit<16>)16w29; + meta.m.field_16_30 = (bit<16>)16w30; + meta.m.field_16_31 = (bit<16>)16w31; + meta.m.field_16_32 = (bit<16>)16w32; + meta.m.field_16_33 = (bit<16>)16w33; + meta.m.field_16_34 = (bit<16>)16w34; + meta.m.field_16_35 = (bit<16>)16w35; + meta.m.field_16_36 = (bit<16>)16w36; + meta.m.field_16_37 = (bit<16>)16w37; + meta.m.field_16_38 = (bit<16>)16w38; + meta.m.field_16_39 = (bit<16>)16w39; + meta.m.field_16_40 = (bit<16>)16w40; + meta.m.field_16_41 = (bit<16>)16w41; + meta.m.field_16_42 = (bit<16>)16w42; + meta.m.field_16_43 = (bit<16>)16w43; + meta.m.field_16_44 = (bit<16>)16w44; + meta.m.field_16_45 = (bit<16>)16w45; + meta.m.field_16_46 = (bit<16>)16w46; + meta.m.field_16_47 = (bit<16>)16w47; + meta.m.field_16_48 = (bit<16>)16w48; + meta.m.field_16_49 = (bit<16>)16w49; + meta.m.field_16_50 = (bit<16>)16w50; + meta.m.field_16_51 = (bit<16>)16w51; + meta.m.field_16_52 = (bit<16>)16w52; + meta.m.field_16_53 = (bit<16>)16w53; + meta.m.field_16_54 = (bit<16>)16w54; + meta.m.field_16_55 = (bit<16>)16w55; + meta.m.field_16_56 = (bit<16>)16w56; + meta.m.field_16_57 = (bit<16>)16w57; + meta.m.field_16_58 = (bit<16>)16w58; + meta.m.field_16_59 = (bit<16>)16w59; + meta.m.field_16_60 = (bit<16>)16w60; + meta.m.field_16_61 = (bit<16>)16w61; + meta.m.field_16_62 = (bit<16>)16w62; + meta.m.field_16_63 = (bit<16>)16w63; + meta.m.field_16_64 = (bit<16>)16w64; + meta.m.field_16_65 = (bit<16>)16w65; + meta.m.field_16_66 = (bit<16>)16w66; + meta.m.field_16_67 = (bit<16>)16w67; + meta.m.field_16_68 = (bit<16>)16w68; + meta.m.field_16_69 = (bit<16>)16w69; + meta.m.field_16_70 = (bit<16>)16w70; + meta.m.field_16_71 = (bit<16>)16w71; + meta.m.field_16_72 = (bit<16>)16w72; + meta.m.field_16_73 = (bit<16>)16w73; + meta.m.field_16_74 = (bit<16>)16w74; + meta.m.field_16_75 = (bit<16>)16w75; + meta.m.field_16_76 = (bit<16>)16w76; + meta.m.field_16_77 = (bit<16>)16w77; + meta.m.field_16_78 = (bit<16>)16w78; + meta.m.field_16_79 = (bit<16>)16w79; + meta.m.field_16_80 = (bit<16>)16w80; + meta.m.field_16_81 = (bit<16>)16w81; + meta.m.field_16_82 = (bit<16>)16w82; + meta.m.field_16_83 = (bit<16>)16w83; + meta.m.field_16_84 = (bit<16>)16w84; + meta.m.field_16_85 = (bit<16>)16w85; + meta.m.field_16_86 = (bit<16>)16w86; + meta.m.field_16_87 = (bit<16>)16w87; + meta.m.field_16_88 = (bit<16>)16w88; + meta.m.field_16_89 = (bit<16>)16w89; + meta.m.field_16_90 = (bit<16>)16w90; + meta.m.field_16_91 = (bit<16>)16w91; + meta.m.field_16_92 = (bit<16>)16w92; + meta.m.field_16_93 = (bit<16>)16w93; + meta.m.field_16_94 = (bit<16>)16w94; + meta.m.field_16_95 = (bit<16>)16w95; + meta.m.field_16_96 = (bit<16>)16w96; + meta.m.field_32_01 = (bit<32>)32w1; + meta.m.field_32_02 = (bit<32>)32w2; + meta.m.field_32_03 = (bit<32>)32w3; + meta.m.field_32_04 = (bit<32>)32w4; + meta.m.field_32_05 = (bit<32>)32w5; + meta.m.field_32_06 = (bit<32>)32w6; + meta.m.field_32_07 = (bit<32>)32w7; + meta.m.field_32_08 = (bit<32>)32w8; + meta.m.field_32_09 = (bit<32>)32w9; + meta.m.field_32_10 = (bit<32>)32w10; + meta.m.field_32_11 = (bit<32>)32w11; + meta.m.field_32_12 = (bit<32>)32w12; + meta.m.field_32_13 = (bit<32>)32w13; + meta.m.field_32_14 = (bit<32>)32w14; + meta.m.field_32_15 = (bit<32>)32w15; + meta.m.field_32_16 = (bit<32>)32w16; + meta.m.field_32_17 = (bit<32>)32w17; + meta.m.field_32_18 = (bit<32>)32w18; + meta.m.field_32_19 = (bit<32>)32w19; + meta.m.field_32_20 = (bit<32>)32w20; + meta.m.field_32_21 = (bit<32>)32w21; + meta.m.field_32_22 = (bit<32>)32w22; + meta.m.field_32_23 = (bit<32>)32w23; + meta.m.field_32_24 = (bit<32>)32w24; + meta.m.field_32_25 = (bit<32>)32w25; + meta.m.field_32_26 = (bit<32>)32w26; + meta.m.field_32_27 = (bit<32>)32w27; + meta.m.field_32_28 = (bit<32>)32w28; + meta.m.field_32_29 = (bit<32>)32w29; + meta.m.field_32_30 = (bit<32>)32w30; + meta.m.field_32_31 = (bit<32>)32w31; + meta.m.field_32_32 = (bit<32>)32w32; + meta.m.field_32_33 = (bit<32>)32w33; + meta.m.field_32_34 = (bit<32>)32w34; + meta.m.field_32_35 = (bit<32>)32w35; + meta.m.field_32_36 = (bit<32>)32w36; + meta.m.field_32_37 = (bit<32>)32w37; + meta.m.field_32_38 = (bit<32>)32w38; + meta.m.field_32_39 = (bit<32>)32w39; + meta.m.field_32_40 = (bit<32>)32w40; + meta.m.field_32_41 = (bit<32>)32w41; + meta.m.field_32_42 = (bit<32>)32w42; + meta.m.field_32_43 = (bit<32>)32w43; + meta.m.field_32_44 = (bit<32>)32w44; + meta.m.field_32_45 = (bit<32>)32w45; + meta.m.field_32_46 = (bit<32>)32w46; + meta.m.field_32_47 = (bit<32>)32w47; + meta.m.field_32_48 = (bit<32>)32w48; + meta.m.field_32_49 = (bit<32>)32w49; + meta.m.field_32_50 = (bit<32>)32w50; + meta.m.field_32_51 = (bit<32>)32w51; + meta.m.field_32_52 = (bit<32>)32w52; + meta.m.field_32_53 = (bit<32>)32w53; + meta.m.field_32_54 = (bit<32>)32w54; + meta.m.field_32_55 = (bit<32>)32w55; + meta.m.field_32_56 = (bit<32>)32w56; + meta.m.field_32_57 = (bit<32>)32w57; + meta.m.field_32_58 = (bit<32>)32w58; + meta.m.field_32_59 = (bit<32>)32w59; + meta.m.field_32_60 = (bit<32>)32w60; + meta.m.field_32_61 = (bit<32>)32w61; + meta.m.field_32_62 = (bit<32>)32w62; + meta.m.field_32_63 = (bit<32>)32w63; + meta.m.field_32_64 = (bit<32>)32w64; } @name(".set_egress_spec") action set_egress_spec(bit<9> port) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name("t1") table t1 { actions = { diff --git a/testdata/p4_14_samples_outputs/07-MultiProtocol.p4 b/testdata/p4_14_samples_outputs/07-MultiProtocol.p4 index c8fcf46bfaa..a41794e5334 100644 --- a/testdata/p4_14_samples_outputs/07-MultiProtocol.p4 +++ b/testdata/p4_14_samples_outputs/07-MultiProtocol.p4 @@ -151,30 +151,30 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".l2_packet") action l2_packet() { - meta.ing_metadata.packet_type = 4w0; + meta.ing_metadata.packet_type = (bit<4>)4w0; } @name(".ipv4_packet") action ipv4_packet() { - meta.ing_metadata.packet_type = 4w1; + meta.ing_metadata.packet_type = (bit<4>)4w1; } @name(".ipv6_packet") action ipv6_packet() { - meta.ing_metadata.packet_type = 4w2; + meta.ing_metadata.packet_type = (bit<4>)4w2; } @name(".mpls_packet") action mpls_packet() { - meta.ing_metadata.packet_type = 4w3; + meta.ing_metadata.packet_type = (bit<4>)4w3; } @name(".mim_packet") action mim_packet() { - meta.ing_metadata.packet_type = 4w4; + meta.ing_metadata.packet_type = (bit<4>)4w4; } @name(".nop") action nop() { } @name(".drop") action drop() { - meta.ing_metadata.drop = 1w1; + meta.ing_metadata.drop = (bit<1>)1w1; } @name(".set_egress_port") action set_egress_port(bit<9> egress_port) { - meta.ing_metadata.egress_port = egress_port; + meta.ing_metadata.egress_port = (bit<9>)egress_port; } @name(".send_packet") action send_packet() { - standard_metadata.egress_spec = meta.ing_metadata.egress_port; + standard_metadata.egress_spec = (bit<9>)meta.ing_metadata.egress_port; } @name("ethertype_match") table ethertype_match { actions = { diff --git a/testdata/p4_14_samples_outputs/08-FullTPHV3.p4 b/testdata/p4_14_samples_outputs/08-FullTPHV3.p4 index d3f1dbb89fd..f3e75e1c657 100644 --- a/testdata/p4_14_samples_outputs/08-FullTPHV3.p4 +++ b/testdata/p4_14_samples_outputs/08-FullTPHV3.p4 @@ -497,233 +497,233 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".a1") action a1() { - meta.m.field_8_01 = 8w1; - meta.m.field_8_02 = 8w2; - meta.m.field_8_03 = 8w3; - meta.m.field_8_04 = 8w4; - meta.m.field_8_05 = 8w5; - meta.m.field_8_06 = 8w6; - meta.m.field_8_07 = 8w7; - meta.m.field_8_08 = 8w8; - meta.m.field_8_09 = 8w9; - meta.m.field_8_10 = 8w10; - meta.m.field_8_11 = 8w11; - meta.m.field_8_12 = 8w12; - meta.m.field_8_13 = 8w13; - meta.m.field_8_14 = 8w14; - meta.m.field_8_15 = 8w15; - meta.m.field_8_16 = 8w16; - meta.m.field_8_17 = 8w17; - meta.m.field_8_18 = 8w18; - meta.m.field_8_19 = 8w19; - meta.m.field_8_20 = 8w20; - meta.m.field_8_21 = 8w21; - meta.m.field_8_22 = 8w22; - meta.m.field_8_23 = 8w23; - meta.m.field_8_24 = 8w24; - meta.m.field_8_25 = 8w25; - meta.m.field_8_26 = 8w26; - meta.m.field_8_27 = 8w27; - meta.m.field_8_28 = 8w28; - meta.m.field_8_29 = 8w29; - meta.m.field_8_30 = 8w30; - meta.m.field_8_31 = 8w31; - meta.m.field_8_32 = 8w32; - meta.m.field_8_33 = 8w33; - meta.m.field_8_34 = 8w34; - meta.m.field_8_35 = 8w35; - meta.m.field_8_36 = 8w36; - meta.m.field_8_37 = 8w37; - meta.m.field_8_38 = 8w38; - meta.m.field_8_39 = 8w39; - meta.m.field_8_40 = 8w40; - meta.m.field_8_41 = 8w41; - meta.m.field_8_42 = 8w42; - meta.m.field_8_43 = 8w43; - meta.m.field_8_44 = 8w44; - meta.m.field_8_45 = 8w45; - meta.m.field_8_46 = 8w46; - meta.m.field_8_47 = 8w47; - meta.m.field_8_48 = 8w48; - meta.m.field_8_49 = 8w49; - meta.m.field_8_50 = 8w50; - meta.m.field_8_51 = 8w51; - meta.m.field_8_52 = 8w52; - meta.m.field_8_53 = 8w53; - meta.m.field_8_54 = 8w54; - meta.m.field_8_55 = 8w55; - meta.m.field_8_56 = 8w56; - meta.m.field_8_57 = 8w57; - meta.m.field_8_58 = 8w58; - meta.m.field_8_59 = 8w59; - meta.m.field_8_60 = 8w60; - meta.m.field_8_61 = 8w61; - meta.m.field_8_62 = 8w62; - meta.m.field_8_63 = 8w63; - meta.m.field_8_64 = 8w64; - meta.m.field_16_01 = 16w1; - meta.m.field_16_02 = 16w2; - meta.m.field_16_03 = 16w3; - meta.m.field_16_04 = 16w4; - meta.m.field_16_05 = 16w5; - meta.m.field_16_06 = 16w6; - meta.m.field_16_07 = 16w7; - meta.m.field_16_08 = 16w8; - meta.m.field_16_09 = 16w9; - meta.m.field_16_10 = 16w10; - meta.m.field_16_11 = 16w11; - meta.m.field_16_12 = 16w12; - meta.m.field_16_13 = 16w13; - meta.m.field_16_14 = 16w14; - meta.m.field_16_15 = 16w15; - meta.m.field_16_16 = 16w16; - meta.m.field_16_17 = 16w17; - meta.m.field_16_18 = 16w18; - meta.m.field_16_19 = 16w19; - meta.m.field_16_20 = 16w20; - meta.m.field_16_21 = 16w21; - meta.m.field_16_22 = 16w22; - meta.m.field_16_23 = 16w23; - meta.m.field_16_24 = 16w24; - meta.m.field_16_25 = 16w25; - meta.m.field_16_26 = 16w26; - meta.m.field_16_27 = 16w27; - meta.m.field_16_28 = 16w28; - meta.m.field_16_29 = 16w29; - meta.m.field_16_30 = 16w30; - meta.m.field_16_31 = 16w31; - meta.m.field_16_32 = 16w32; - meta.m.field_16_33 = 16w33; - meta.m.field_16_34 = 16w34; - meta.m.field_16_35 = 16w35; - meta.m.field_16_36 = 16w36; - meta.m.field_16_37 = 16w37; - meta.m.field_16_38 = 16w38; - meta.m.field_16_39 = 16w39; - meta.m.field_16_40 = 16w40; - meta.m.field_16_41 = 16w41; - meta.m.field_16_42 = 16w42; - meta.m.field_16_43 = 16w43; - meta.m.field_16_44 = 16w44; - meta.m.field_16_45 = 16w45; - meta.m.field_16_46 = 16w46; - meta.m.field_16_47 = 16w47; - meta.m.field_16_48 = 16w48; - meta.m.field_16_49 = 16w49; - meta.m.field_16_50 = 16w50; - meta.m.field_16_51 = 16w51; - meta.m.field_16_52 = 16w52; - meta.m.field_16_53 = 16w53; - meta.m.field_16_54 = 16w54; - meta.m.field_16_55 = 16w55; - meta.m.field_16_56 = 16w56; - meta.m.field_16_57 = 16w57; - meta.m.field_16_58 = 16w58; - meta.m.field_16_59 = 16w59; - meta.m.field_16_60 = 16w60; - meta.m.field_16_61 = 16w61; - meta.m.field_16_62 = 16w62; - meta.m.field_16_63 = 16w63; - meta.m.field_16_64 = 16w64; - meta.m.field_16_65 = 16w65; - meta.m.field_16_66 = 16w66; - meta.m.field_16_67 = 16w67; - meta.m.field_16_68 = 16w68; - meta.m.field_16_69 = 16w69; - meta.m.field_16_70 = 16w70; - meta.m.field_16_71 = 16w71; - meta.m.field_16_72 = 16w72; - meta.m.field_16_73 = 16w73; - meta.m.field_16_74 = 16w74; - meta.m.field_16_75 = 16w75; - meta.m.field_16_76 = 16w76; - meta.m.field_16_77 = 16w77; - meta.m.field_16_78 = 16w78; - meta.m.field_16_79 = 16w79; - meta.m.field_16_80 = 16w80; - meta.m.field_16_81 = 16w81; - meta.m.field_16_82 = 16w82; - meta.m.field_16_83 = 16w83; - meta.m.field_16_84 = 16w84; - meta.m.field_16_85 = 16w85; - meta.m.field_16_86 = 16w86; - meta.m.field_16_87 = 16w87; - meta.m.field_16_88 = 16w88; - meta.m.field_16_89 = 16w89; - meta.m.field_16_90 = 16w90; - meta.m.field_16_91 = 16w91; - meta.m.field_16_92 = 16w92; - meta.m.field_16_93 = 16w93; - meta.m.field_16_94 = 16w94; - meta.m.field_16_95 = 16w95; - meta.m.field_16_96 = 16w96; - meta.m.field_32_01 = 32w1; - meta.m.field_32_02 = 32w2; - meta.m.field_32_03 = 32w3; - meta.m.field_32_04 = 32w4; - meta.m.field_32_05 = 32w5; - meta.m.field_32_06 = 32w6; - meta.m.field_32_07 = 32w7; - meta.m.field_32_08 = 32w8; - meta.m.field_32_09 = 32w9; - meta.m.field_32_10 = 32w10; - meta.m.field_32_11 = 32w11; - meta.m.field_32_12 = 32w12; - meta.m.field_32_13 = 32w13; - meta.m.field_32_14 = 32w14; - meta.m.field_32_15 = 32w15; - meta.m.field_32_16 = 32w16; - meta.m.field_32_17 = 32w17; - meta.m.field_32_18 = 32w18; - meta.m.field_32_19 = 32w19; - meta.m.field_32_20 = 32w20; - meta.m.field_32_21 = 32w21; - meta.m.field_32_22 = 32w22; - meta.m.field_32_23 = 32w23; - meta.m.field_32_24 = 32w24; - meta.m.field_32_25 = 32w25; - meta.m.field_32_26 = 32w26; - meta.m.field_32_27 = 32w27; - meta.m.field_32_28 = 32w28; - meta.m.field_32_29 = 32w29; - meta.m.field_32_30 = 32w30; - meta.m.field_32_31 = 32w31; - meta.m.field_32_32 = 32w32; - meta.m.field_32_33 = 32w33; - meta.m.field_32_34 = 32w34; - meta.m.field_32_35 = 32w35; - meta.m.field_32_36 = 32w36; - meta.m.field_32_37 = 32w37; - meta.m.field_32_38 = 32w38; - meta.m.field_32_39 = 32w39; - meta.m.field_32_40 = 32w40; - meta.m.field_32_41 = 32w41; - meta.m.field_32_42 = 32w42; - meta.m.field_32_43 = 32w43; - meta.m.field_32_44 = 32w44; - meta.m.field_32_45 = 32w45; - meta.m.field_32_46 = 32w46; - meta.m.field_32_47 = 32w47; - meta.m.field_32_48 = 32w48; - meta.m.field_32_49 = 32w49; - meta.m.field_32_50 = 32w50; - meta.m.field_32_51 = 32w51; - meta.m.field_32_52 = 32w52; - meta.m.field_32_53 = 32w53; - meta.m.field_32_54 = 32w54; - meta.m.field_32_55 = 32w55; - meta.m.field_32_56 = 32w56; - meta.m.field_32_57 = 32w57; - meta.m.field_32_58 = 32w58; - meta.m.field_32_59 = 32w59; - meta.m.field_32_60 = 32w60; - meta.m.field_32_61 = 32w61; - meta.m.field_32_62 = 32w62; + meta.m.field_8_01 = (bit<8>)8w1; + meta.m.field_8_02 = (bit<8>)8w2; + meta.m.field_8_03 = (bit<8>)8w3; + meta.m.field_8_04 = (bit<8>)8w4; + meta.m.field_8_05 = (bit<8>)8w5; + meta.m.field_8_06 = (bit<8>)8w6; + meta.m.field_8_07 = (bit<8>)8w7; + meta.m.field_8_08 = (bit<8>)8w8; + meta.m.field_8_09 = (bit<8>)8w9; + meta.m.field_8_10 = (bit<8>)8w10; + meta.m.field_8_11 = (bit<8>)8w11; + meta.m.field_8_12 = (bit<8>)8w12; + meta.m.field_8_13 = (bit<8>)8w13; + meta.m.field_8_14 = (bit<8>)8w14; + meta.m.field_8_15 = (bit<8>)8w15; + meta.m.field_8_16 = (bit<8>)8w16; + meta.m.field_8_17 = (bit<8>)8w17; + meta.m.field_8_18 = (bit<8>)8w18; + meta.m.field_8_19 = (bit<8>)8w19; + meta.m.field_8_20 = (bit<8>)8w20; + meta.m.field_8_21 = (bit<8>)8w21; + meta.m.field_8_22 = (bit<8>)8w22; + meta.m.field_8_23 = (bit<8>)8w23; + meta.m.field_8_24 = (bit<8>)8w24; + meta.m.field_8_25 = (bit<8>)8w25; + meta.m.field_8_26 = (bit<8>)8w26; + meta.m.field_8_27 = (bit<8>)8w27; + meta.m.field_8_28 = (bit<8>)8w28; + meta.m.field_8_29 = (bit<8>)8w29; + meta.m.field_8_30 = (bit<8>)8w30; + meta.m.field_8_31 = (bit<8>)8w31; + meta.m.field_8_32 = (bit<8>)8w32; + meta.m.field_8_33 = (bit<8>)8w33; + meta.m.field_8_34 = (bit<8>)8w34; + meta.m.field_8_35 = (bit<8>)8w35; + meta.m.field_8_36 = (bit<8>)8w36; + meta.m.field_8_37 = (bit<8>)8w37; + meta.m.field_8_38 = (bit<8>)8w38; + meta.m.field_8_39 = (bit<8>)8w39; + meta.m.field_8_40 = (bit<8>)8w40; + meta.m.field_8_41 = (bit<8>)8w41; + meta.m.field_8_42 = (bit<8>)8w42; + meta.m.field_8_43 = (bit<8>)8w43; + meta.m.field_8_44 = (bit<8>)8w44; + meta.m.field_8_45 = (bit<8>)8w45; + meta.m.field_8_46 = (bit<8>)8w46; + meta.m.field_8_47 = (bit<8>)8w47; + meta.m.field_8_48 = (bit<8>)8w48; + meta.m.field_8_49 = (bit<8>)8w49; + meta.m.field_8_50 = (bit<8>)8w50; + meta.m.field_8_51 = (bit<8>)8w51; + meta.m.field_8_52 = (bit<8>)8w52; + meta.m.field_8_53 = (bit<8>)8w53; + meta.m.field_8_54 = (bit<8>)8w54; + meta.m.field_8_55 = (bit<8>)8w55; + meta.m.field_8_56 = (bit<8>)8w56; + meta.m.field_8_57 = (bit<8>)8w57; + meta.m.field_8_58 = (bit<8>)8w58; + meta.m.field_8_59 = (bit<8>)8w59; + meta.m.field_8_60 = (bit<8>)8w60; + meta.m.field_8_61 = (bit<8>)8w61; + meta.m.field_8_62 = (bit<8>)8w62; + meta.m.field_8_63 = (bit<8>)8w63; + meta.m.field_8_64 = (bit<8>)8w64; + meta.m.field_16_01 = (bit<16>)16w1; + meta.m.field_16_02 = (bit<16>)16w2; + meta.m.field_16_03 = (bit<16>)16w3; + meta.m.field_16_04 = (bit<16>)16w4; + meta.m.field_16_05 = (bit<16>)16w5; + meta.m.field_16_06 = (bit<16>)16w6; + meta.m.field_16_07 = (bit<16>)16w7; + meta.m.field_16_08 = (bit<16>)16w8; + meta.m.field_16_09 = (bit<16>)16w9; + meta.m.field_16_10 = (bit<16>)16w10; + meta.m.field_16_11 = (bit<16>)16w11; + meta.m.field_16_12 = (bit<16>)16w12; + meta.m.field_16_13 = (bit<16>)16w13; + meta.m.field_16_14 = (bit<16>)16w14; + meta.m.field_16_15 = (bit<16>)16w15; + meta.m.field_16_16 = (bit<16>)16w16; + meta.m.field_16_17 = (bit<16>)16w17; + meta.m.field_16_18 = (bit<16>)16w18; + meta.m.field_16_19 = (bit<16>)16w19; + meta.m.field_16_20 = (bit<16>)16w20; + meta.m.field_16_21 = (bit<16>)16w21; + meta.m.field_16_22 = (bit<16>)16w22; + meta.m.field_16_23 = (bit<16>)16w23; + meta.m.field_16_24 = (bit<16>)16w24; + meta.m.field_16_25 = (bit<16>)16w25; + meta.m.field_16_26 = (bit<16>)16w26; + meta.m.field_16_27 = (bit<16>)16w27; + meta.m.field_16_28 = (bit<16>)16w28; + meta.m.field_16_29 = (bit<16>)16w29; + meta.m.field_16_30 = (bit<16>)16w30; + meta.m.field_16_31 = (bit<16>)16w31; + meta.m.field_16_32 = (bit<16>)16w32; + meta.m.field_16_33 = (bit<16>)16w33; + meta.m.field_16_34 = (bit<16>)16w34; + meta.m.field_16_35 = (bit<16>)16w35; + meta.m.field_16_36 = (bit<16>)16w36; + meta.m.field_16_37 = (bit<16>)16w37; + meta.m.field_16_38 = (bit<16>)16w38; + meta.m.field_16_39 = (bit<16>)16w39; + meta.m.field_16_40 = (bit<16>)16w40; + meta.m.field_16_41 = (bit<16>)16w41; + meta.m.field_16_42 = (bit<16>)16w42; + meta.m.field_16_43 = (bit<16>)16w43; + meta.m.field_16_44 = (bit<16>)16w44; + meta.m.field_16_45 = (bit<16>)16w45; + meta.m.field_16_46 = (bit<16>)16w46; + meta.m.field_16_47 = (bit<16>)16w47; + meta.m.field_16_48 = (bit<16>)16w48; + meta.m.field_16_49 = (bit<16>)16w49; + meta.m.field_16_50 = (bit<16>)16w50; + meta.m.field_16_51 = (bit<16>)16w51; + meta.m.field_16_52 = (bit<16>)16w52; + meta.m.field_16_53 = (bit<16>)16w53; + meta.m.field_16_54 = (bit<16>)16w54; + meta.m.field_16_55 = (bit<16>)16w55; + meta.m.field_16_56 = (bit<16>)16w56; + meta.m.field_16_57 = (bit<16>)16w57; + meta.m.field_16_58 = (bit<16>)16w58; + meta.m.field_16_59 = (bit<16>)16w59; + meta.m.field_16_60 = (bit<16>)16w60; + meta.m.field_16_61 = (bit<16>)16w61; + meta.m.field_16_62 = (bit<16>)16w62; + meta.m.field_16_63 = (bit<16>)16w63; + meta.m.field_16_64 = (bit<16>)16w64; + meta.m.field_16_65 = (bit<16>)16w65; + meta.m.field_16_66 = (bit<16>)16w66; + meta.m.field_16_67 = (bit<16>)16w67; + meta.m.field_16_68 = (bit<16>)16w68; + meta.m.field_16_69 = (bit<16>)16w69; + meta.m.field_16_70 = (bit<16>)16w70; + meta.m.field_16_71 = (bit<16>)16w71; + meta.m.field_16_72 = (bit<16>)16w72; + meta.m.field_16_73 = (bit<16>)16w73; + meta.m.field_16_74 = (bit<16>)16w74; + meta.m.field_16_75 = (bit<16>)16w75; + meta.m.field_16_76 = (bit<16>)16w76; + meta.m.field_16_77 = (bit<16>)16w77; + meta.m.field_16_78 = (bit<16>)16w78; + meta.m.field_16_79 = (bit<16>)16w79; + meta.m.field_16_80 = (bit<16>)16w80; + meta.m.field_16_81 = (bit<16>)16w81; + meta.m.field_16_82 = (bit<16>)16w82; + meta.m.field_16_83 = (bit<16>)16w83; + meta.m.field_16_84 = (bit<16>)16w84; + meta.m.field_16_85 = (bit<16>)16w85; + meta.m.field_16_86 = (bit<16>)16w86; + meta.m.field_16_87 = (bit<16>)16w87; + meta.m.field_16_88 = (bit<16>)16w88; + meta.m.field_16_89 = (bit<16>)16w89; + meta.m.field_16_90 = (bit<16>)16w90; + meta.m.field_16_91 = (bit<16>)16w91; + meta.m.field_16_92 = (bit<16>)16w92; + meta.m.field_16_93 = (bit<16>)16w93; + meta.m.field_16_94 = (bit<16>)16w94; + meta.m.field_16_95 = (bit<16>)16w95; + meta.m.field_16_96 = (bit<16>)16w96; + meta.m.field_32_01 = (bit<32>)32w1; + meta.m.field_32_02 = (bit<32>)32w2; + meta.m.field_32_03 = (bit<32>)32w3; + meta.m.field_32_04 = (bit<32>)32w4; + meta.m.field_32_05 = (bit<32>)32w5; + meta.m.field_32_06 = (bit<32>)32w6; + meta.m.field_32_07 = (bit<32>)32w7; + meta.m.field_32_08 = (bit<32>)32w8; + meta.m.field_32_09 = (bit<32>)32w9; + meta.m.field_32_10 = (bit<32>)32w10; + meta.m.field_32_11 = (bit<32>)32w11; + meta.m.field_32_12 = (bit<32>)32w12; + meta.m.field_32_13 = (bit<32>)32w13; + meta.m.field_32_14 = (bit<32>)32w14; + meta.m.field_32_15 = (bit<32>)32w15; + meta.m.field_32_16 = (bit<32>)32w16; + meta.m.field_32_17 = (bit<32>)32w17; + meta.m.field_32_18 = (bit<32>)32w18; + meta.m.field_32_19 = (bit<32>)32w19; + meta.m.field_32_20 = (bit<32>)32w20; + meta.m.field_32_21 = (bit<32>)32w21; + meta.m.field_32_22 = (bit<32>)32w22; + meta.m.field_32_23 = (bit<32>)32w23; + meta.m.field_32_24 = (bit<32>)32w24; + meta.m.field_32_25 = (bit<32>)32w25; + meta.m.field_32_26 = (bit<32>)32w26; + meta.m.field_32_27 = (bit<32>)32w27; + meta.m.field_32_28 = (bit<32>)32w28; + meta.m.field_32_29 = (bit<32>)32w29; + meta.m.field_32_30 = (bit<32>)32w30; + meta.m.field_32_31 = (bit<32>)32w31; + meta.m.field_32_32 = (bit<32>)32w32; + meta.m.field_32_33 = (bit<32>)32w33; + meta.m.field_32_34 = (bit<32>)32w34; + meta.m.field_32_35 = (bit<32>)32w35; + meta.m.field_32_36 = (bit<32>)32w36; + meta.m.field_32_37 = (bit<32>)32w37; + meta.m.field_32_38 = (bit<32>)32w38; + meta.m.field_32_39 = (bit<32>)32w39; + meta.m.field_32_40 = (bit<32>)32w40; + meta.m.field_32_41 = (bit<32>)32w41; + meta.m.field_32_42 = (bit<32>)32w42; + meta.m.field_32_43 = (bit<32>)32w43; + meta.m.field_32_44 = (bit<32>)32w44; + meta.m.field_32_45 = (bit<32>)32w45; + meta.m.field_32_46 = (bit<32>)32w46; + meta.m.field_32_47 = (bit<32>)32w47; + meta.m.field_32_48 = (bit<32>)32w48; + meta.m.field_32_49 = (bit<32>)32w49; + meta.m.field_32_50 = (bit<32>)32w50; + meta.m.field_32_51 = (bit<32>)32w51; + meta.m.field_32_52 = (bit<32>)32w52; + meta.m.field_32_53 = (bit<32>)32w53; + meta.m.field_32_54 = (bit<32>)32w54; + meta.m.field_32_55 = (bit<32>)32w55; + meta.m.field_32_56 = (bit<32>)32w56; + meta.m.field_32_57 = (bit<32>)32w57; + meta.m.field_32_58 = (bit<32>)32w58; + meta.m.field_32_59 = (bit<32>)32w59; + meta.m.field_32_60 = (bit<32>)32w60; + meta.m.field_32_61 = (bit<32>)32w61; + meta.m.field_32_62 = (bit<32>)32w62; hdr.h_8_2.setInvalid(); hdr.h_32_15.setInvalid(); } @name(".set_egress_spec") action set_egress_spec(bit<9> port) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name("t1") table t1 { actions = { diff --git a/testdata/p4_14_samples_outputs/08-MultiProtocolIfElse.p4 b/testdata/p4_14_samples_outputs/08-MultiProtocolIfElse.p4 index 7d1d2e89918..7555a54c861 100644 --- a/testdata/p4_14_samples_outputs/08-MultiProtocolIfElse.p4 +++ b/testdata/p4_14_samples_outputs/08-MultiProtocolIfElse.p4 @@ -153,7 +153,7 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name(".nop") action nop() { } @name(".set_egress_port") action set_egress_port(bit<8> egress_port) { - meta.ing_metadata.egress_port = egress_port; + meta.ing_metadata.egress_port = (bit<8>)egress_port; } @name("ipv4_match") table ipv4_match { actions = { diff --git a/testdata/p4_14_samples_outputs/09-IPv4OptionsUnparsed-first.p4 b/testdata/p4_14_samples_outputs/09-IPv4OptionsUnparsed-first.p4 deleted file mode 100644 index 3442b3f0653..00000000000 --- a/testdata/p4_14_samples_outputs/09-IPv4OptionsUnparsed-first.p4 +++ /dev/null @@ -1,128 +0,0 @@ -#include -#include - -header ethernet_t { - bit<48> dstAddr; - bit<48> srcAddr; - bit<16> ethertype; -} - -header ipv4_t { - bit<4> version; - bit<4> ihl; - bit<8> diffserv; - bit<16> totalLen; - bit<16> identification; - bit<1> reserved_0; - bit<1> df; - bit<1> mf; - bit<13> fragOffset; - bit<8> ttl; - bit<8> protocol; - bit<16> hdrChecksum; - bit<32> srcAddr; - bit<32> dstAddr; - @length(ihl << 2) - varbit<352> options; -} - -header vlan_tag_t { - bit<3> pcp; - bit<1> cfi; - bit<12> vlan_id; - bit<16> ethertype; -} - -struct metadata { -} - -struct headers { - @name("ethernet") - ethernet_t ethernet; - @name("ipv4") - ipv4_t ipv4; - @name("vlan_tag") - vlan_tag_t[2] vlan_tag; -} - -parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - @name("parse_ethernet") state parse_ethernet { - packet.extract(hdr.ethernet); - transition select(hdr.ethernet.ethertype) { - 16w0x8100 &&& 16w0xefff: parse_vlan_tag; - 16w0x800: parse_ipv4; - default: accept; - } - } - @name("parse_ipv4") state parse_ipv4 { - packet.extract(hdr.ipv4); - transition accept; - } - @name("parse_vlan_tag") state parse_vlan_tag { - packet.extract(hdr.vlan_tag.next); - transition select(hdr.vlan_tag.last.ethertype) { - 16w0x8100 &&& 16w0xefff: parse_vlan_tag; - 16w0x800: parse_ipv4; - default: accept; - } - } - @name("start") state start { - transition parse_ethernet; - } -} - -control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - @name(".nop") action nop() { - } - @name("t2") table t2 { - actions = { - nop(); - @default_only NoAction(); - } - key = { - hdr.ethernet.srcAddr: exact @name("hdr.ethernet.srcAddr") ; - } - default_action = NoAction(); - } - apply { - t2.apply(); - } -} - -control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - @name(".nop") action nop() { - } - @name("t1") table t1 { - actions = { - nop(); - @default_only NoAction(); - } - key = { - hdr.ethernet.dstAddr: exact @name("hdr.ethernet.dstAddr") ; - } - default_action = NoAction(); - } - apply { - t1.apply(); - } -} - -control DeparserImpl(packet_out packet, in headers hdr) { - apply { - packet.emit(hdr.ethernet); - packet.emit(hdr.vlan_tag); - packet.emit(hdr.ipv4); - } -} - -control verifyChecksum(in headers hdr, inout metadata meta) { - apply { - } -} - -control computeChecksum(inout headers hdr, inout metadata meta) { - apply { - } -} - -V1Switch(ParserImpl(), verifyChecksum(), ingress(), egress(), computeChecksum(), DeparserImpl()) main; diff --git a/testdata/p4_14_samples_outputs/09-IPv4OptionsUnparsed-frontend.p4 b/testdata/p4_14_samples_outputs/09-IPv4OptionsUnparsed-frontend.p4 deleted file mode 100644 index cf62adf0120..00000000000 --- a/testdata/p4_14_samples_outputs/09-IPv4OptionsUnparsed-frontend.p4 +++ /dev/null @@ -1,128 +0,0 @@ -#include -#include - -header ethernet_t { - bit<48> dstAddr; - bit<48> srcAddr; - bit<16> ethertype; -} - -header ipv4_t { - bit<4> version; - bit<4> ihl; - bit<8> diffserv; - bit<16> totalLen; - bit<16> identification; - bit<1> reserved_0; - bit<1> df; - bit<1> mf; - bit<13> fragOffset; - bit<8> ttl; - bit<8> protocol; - bit<16> hdrChecksum; - bit<32> srcAddr; - bit<32> dstAddr; - @length(ihl << 2) - varbit<352> options; -} - -header vlan_tag_t { - bit<3> pcp; - bit<1> cfi; - bit<12> vlan_id; - bit<16> ethertype; -} - -struct metadata { -} - -struct headers { - @name("ethernet") - ethernet_t ethernet; - @name("ipv4") - ipv4_t ipv4; - @name("vlan_tag") - vlan_tag_t[2] vlan_tag; -} - -parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - @name("parse_ethernet") state parse_ethernet { - packet.extract(hdr.ethernet); - transition select(hdr.ethernet.ethertype) { - 16w0x8100 &&& 16w0xefff: parse_vlan_tag; - 16w0x800: parse_ipv4; - default: accept; - } - } - @name("parse_ipv4") state parse_ipv4 { - packet.extract(hdr.ipv4); - transition accept; - } - @name("parse_vlan_tag") state parse_vlan_tag { - packet.extract(hdr.vlan_tag.next); - transition select(hdr.vlan_tag.last.ethertype) { - 16w0x8100 &&& 16w0xefff: parse_vlan_tag; - 16w0x800: parse_ipv4; - default: accept; - } - } - @name("start") state start { - transition parse_ethernet; - } -} - -control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - @name(".nop") action nop_0() { - } - @name("t2") table t2_0 { - actions = { - nop_0(); - @default_only NoAction(); - } - key = { - hdr.ethernet.srcAddr: exact @name("hdr.ethernet.srcAddr") ; - } - default_action = NoAction(); - } - apply { - t2_0.apply(); - } -} - -control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - @name(".nop") action nop_1() { - } - @name("t1") table t1_0 { - actions = { - nop_1(); - @default_only NoAction(); - } - key = { - hdr.ethernet.dstAddr: exact @name("hdr.ethernet.dstAddr") ; - } - default_action = NoAction(); - } - apply { - t1_0.apply(); - } -} - -control DeparserImpl(packet_out packet, in headers hdr) { - apply { - packet.emit(hdr.ethernet); - packet.emit(hdr.vlan_tag); - packet.emit(hdr.ipv4); - } -} - -control verifyChecksum(in headers hdr, inout metadata meta) { - apply { - } -} - -control computeChecksum(inout headers hdr, inout metadata meta) { - apply { - } -} - -V1Switch(ParserImpl(), verifyChecksum(), ingress(), egress(), computeChecksum(), DeparserImpl()) main; diff --git a/testdata/p4_14_samples_outputs/09-IPv4OptionsUnparsed-midend.p4 b/testdata/p4_14_samples_outputs/09-IPv4OptionsUnparsed-midend.p4 deleted file mode 100644 index 09e36fd0ac8..00000000000 --- a/testdata/p4_14_samples_outputs/09-IPv4OptionsUnparsed-midend.p4 +++ /dev/null @@ -1,132 +0,0 @@ -#include -#include - -header ethernet_t { - bit<48> dstAddr; - bit<48> srcAddr; - bit<16> ethertype; -} - -header ipv4_t { - bit<4> version; - bit<4> ihl; - bit<8> diffserv; - bit<16> totalLen; - bit<16> identification; - bit<1> reserved_0; - bit<1> df; - bit<1> mf; - bit<13> fragOffset; - bit<8> ttl; - bit<8> protocol; - bit<16> hdrChecksum; - bit<32> srcAddr; - bit<32> dstAddr; - @length(ihl << 2) - varbit<352> options; -} - -header vlan_tag_t { - bit<3> pcp; - bit<1> cfi; - bit<12> vlan_id; - bit<16> ethertype; -} - -struct metadata { -} - -struct headers { - @name("ethernet") - ethernet_t ethernet; - @name("ipv4") - ipv4_t ipv4; - @name("vlan_tag") - vlan_tag_t[2] vlan_tag; -} - -parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - @name("parse_ethernet") state parse_ethernet { - packet.extract(hdr.ethernet); - transition select(hdr.ethernet.ethertype) { - 16w0x8100 &&& 16w0xefff: parse_vlan_tag; - 16w0x800: parse_ipv4; - default: accept; - } - } - @name("parse_ipv4") state parse_ipv4 { - packet.extract(hdr.ipv4); - transition accept; - } - @name("parse_vlan_tag") state parse_vlan_tag { - packet.extract(hdr.vlan_tag.next); - transition select(hdr.vlan_tag.last.ethertype) { - 16w0x8100 &&& 16w0xefff: parse_vlan_tag; - 16w0x800: parse_ipv4; - default: accept; - } - } - @name("start") state start { - transition parse_ethernet; - } -} - -control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - @name("NoAction") action NoAction_0() { - } - @name(".nop") action nop_0() { - } - @name("t2") table t2 { - actions = { - nop_0(); - @default_only NoAction_0(); - } - key = { - hdr.ethernet.srcAddr: exact @name("hdr.ethernet.srcAddr") ; - } - default_action = NoAction_0(); - } - apply { - t2.apply(); - } -} - -control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - @name("NoAction") action NoAction_1() { - } - @name(".nop") action nop_1() { - } - @name("t1") table t1 { - actions = { - nop_1(); - @default_only NoAction_1(); - } - key = { - hdr.ethernet.dstAddr: exact @name("hdr.ethernet.dstAddr") ; - } - default_action = NoAction_1(); - } - apply { - t1.apply(); - } -} - -control DeparserImpl(packet_out packet, in headers hdr) { - apply { - packet.emit(hdr.ethernet); - packet.emit(hdr.vlan_tag); - packet.emit(hdr.ipv4); - } -} - -control verifyChecksum(in headers hdr, inout metadata meta) { - apply { - } -} - -control computeChecksum(inout headers hdr, inout metadata meta) { - apply { - } -} - -V1Switch(ParserImpl(), verifyChecksum(), ingress(), egress(), computeChecksum(), DeparserImpl()) main; diff --git a/testdata/p4_14_samples_outputs/09-IPv4OptionsUnparsed.p4 b/testdata/p4_14_samples_outputs/09-IPv4OptionsUnparsed.p4 deleted file mode 100644 index 8ac2316735e..00000000000 --- a/testdata/p4_14_samples_outputs/09-IPv4OptionsUnparsed.p4 +++ /dev/null @@ -1,128 +0,0 @@ -#include -#include - -header ethernet_t { - bit<48> dstAddr; - bit<48> srcAddr; - bit<16> ethertype; -} - -header ipv4_t { - bit<4> version; - bit<4> ihl; - bit<8> diffserv; - bit<16> totalLen; - bit<16> identification; - bit<1> reserved_0; - bit<1> df; - bit<1> mf; - bit<13> fragOffset; - bit<8> ttl; - bit<8> protocol; - bit<16> hdrChecksum; - bit<32> srcAddr; - bit<32> dstAddr; - @length(ihl * 4w4) - varbit<352> options; -} - -header vlan_tag_t { - bit<3> pcp; - bit<1> cfi; - bit<12> vlan_id; - bit<16> ethertype; -} - -struct metadata { -} - -struct headers { - @name("ethernet") - ethernet_t ethernet; - @name("ipv4") - ipv4_t ipv4; - @name("vlan_tag") - vlan_tag_t[2] vlan_tag; -} - -parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - @name("parse_ethernet") state parse_ethernet { - packet.extract(hdr.ethernet); - transition select(hdr.ethernet.ethertype) { - 16w0x8100 &&& 16w0xefff: parse_vlan_tag; - 16w0x800: parse_ipv4; - default: accept; - } - } - @name("parse_ipv4") state parse_ipv4 { - packet.extract(hdr.ipv4); - transition accept; - } - @name("parse_vlan_tag") state parse_vlan_tag { - packet.extract(hdr.vlan_tag.next); - transition select(hdr.vlan_tag.last.ethertype) { - 16w0x8100 &&& 16w0xefff: parse_vlan_tag; - 16w0x800: parse_ipv4; - default: accept; - } - } - @name("start") state start { - transition parse_ethernet; - } -} - -control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - @name(".nop") action nop() { - } - @name("t2") table t2 { - actions = { - nop; - @default_only NoAction; - } - key = { - hdr.ethernet.srcAddr: exact; - } - default_action = NoAction(); - } - apply { - t2.apply(); - } -} - -control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - @name(".nop") action nop() { - } - @name("t1") table t1 { - actions = { - nop; - @default_only NoAction; - } - key = { - hdr.ethernet.dstAddr: exact; - } - default_action = NoAction(); - } - apply { - t1.apply(); - } -} - -control DeparserImpl(packet_out packet, in headers hdr) { - apply { - packet.emit(hdr.ethernet); - packet.emit(hdr.vlan_tag); - packet.emit(hdr.ipv4); - } -} - -control verifyChecksum(in headers hdr, inout metadata meta) { - apply { - } -} - -control computeChecksum(inout headers hdr, inout metadata meta) { - apply { - } -} - -V1Switch(ParserImpl(), verifyChecksum(), ingress(), egress(), computeChecksum(), DeparserImpl()) main; diff --git a/testdata/p4_14_samples_outputs/15-MultiProtocolIfElseMinimal.p4 b/testdata/p4_14_samples_outputs/15-MultiProtocolIfElseMinimal.p4 index 5be7b4ae069..ff89d1c07f3 100644 --- a/testdata/p4_14_samples_outputs/15-MultiProtocolIfElseMinimal.p4 +++ b/testdata/p4_14_samples_outputs/15-MultiProtocolIfElseMinimal.p4 @@ -81,7 +81,7 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name(".nop") action nop() { } @name(".set_egress_port") action set_egress_port(bit<8> egress_port) { - meta.ing_metadata.egress_port = egress_port; + meta.ing_metadata.egress_port = (bit<8>)egress_port; } @name("ipv4_match") table ipv4_match { actions = { diff --git a/testdata/p4_14_samples_outputs/TLV_parsing-first.p4 b/testdata/p4_14_samples_outputs/TLV_parsing-first.p4 deleted file mode 100644 index 562463953e9..00000000000 --- a/testdata/p4_14_samples_outputs/TLV_parsing-first.p4 +++ /dev/null @@ -1,198 +0,0 @@ -#include -#include - -struct intrinsic_metadata_t { - bit<4> mcast_grp; - bit<4> egress_rid; - bit<16> mcast_hash; - bit<32> lf_field_list; -} - -struct my_metadata_t { - bit<8> parse_ipv4_counter; -} - -header ethernet_t { - bit<48> dstAddr; - bit<48> srcAddr; - bit<16> etherType; -} - -header ipv4_base_t { - bit<4> version; - bit<4> ihl; - bit<8> diffserv; - bit<16> totalLen; - bit<16> identification; - bit<3> flags; - bit<13> fragOffset; - bit<8> ttl; - bit<8> protocol; - bit<16> hdrChecksum; - bit<32> srcAddr; - bit<32> dstAddr; -} - -header ipv4_option_security_t { - bit<8> value; - bit<8> len; - bit<72> security; -} - -header ipv4_option_timestamp_t { - bit<8> value; - bit<8> len; - @length(len) - varbit<304> data; -} - -header ipv4_option_EOL_t { - bit<8> value; -} - -header ipv4_option_NOP_t { - bit<8> value; -} - -struct metadata { - @name("intrinsic_metadata") - intrinsic_metadata_t intrinsic_metadata; - @name("my_metadata") - my_metadata_t my_metadata; -} - -struct headers { - @name("ethernet") - ethernet_t ethernet; - @name("ipv4_base") - ipv4_base_t ipv4_base; - @name("ipv4_option_security") - ipv4_option_security_t ipv4_option_security; - @name("ipv4_option_timestamp") - ipv4_option_timestamp_t ipv4_option_timestamp; - @name("ipv4_option_EOL") - ipv4_option_EOL_t[3] ipv4_option_EOL; - @name("ipv4_option_NOP") - ipv4_option_NOP_t[3] ipv4_option_NOP; -} - -parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - @name("parse_ethernet") state parse_ethernet { - packet.extract(hdr.ethernet); - transition select(hdr.ethernet.etherType) { - 16w0x800: parse_ipv4; - default: accept; - } - } - @name("parse_ipv4") state parse_ipv4 { - packet.extract(hdr.ipv4_base); - meta.my_metadata.parse_ipv4_counter = (bit<8>)((hdr.ipv4_base.ihl << 2) + 4w12); - transition select(hdr.ipv4_base.ihl) { - 4w0x5: accept; - default: parse_ipv4_options; - } - } - @name("parse_ipv4_option_EOL") state parse_ipv4_option_EOL { - packet.extract(hdr.ipv4_option_EOL.next); - meta.my_metadata.parse_ipv4_counter = meta.my_metadata.parse_ipv4_counter + 8w255; - transition parse_ipv4_options; - } - @name("parse_ipv4_option_NOP") state parse_ipv4_option_NOP { - packet.extract(hdr.ipv4_option_NOP.next); - meta.my_metadata.parse_ipv4_counter = meta.my_metadata.parse_ipv4_counter + 8w255; - transition parse_ipv4_options; - } - @name("parse_ipv4_option_security") state parse_ipv4_option_security { - packet.extract(hdr.ipv4_option_security); - meta.my_metadata.parse_ipv4_counter = meta.my_metadata.parse_ipv4_counter + 8w245; - transition parse_ipv4_options; - } - @name("parse_ipv4_option_timestamp") state parse_ipv4_option_timestamp { - packet.extract(hdr.ipv4_option_timestamp); - meta.my_metadata.parse_ipv4_counter = meta.my_metadata.parse_ipv4_counter - hdr.ipv4_option_timestamp.len; - transition parse_ipv4_options; - } - @name("parse_ipv4_options") state parse_ipv4_options { - transition select(meta.my_metadata.parse_ipv4_counter, (packet.lookahead>())[7:0]) { - (8w0x0 &&& 8w0xff, 8w0x0 &&& 8w0x0): accept; - (8w0x0 &&& 8w0x0, 8w0x0 &&& 8w0xff): parse_ipv4_option_EOL; - (8w0x0 &&& 8w0x0, 8w0x1 &&& 8w0xff): parse_ipv4_option_NOP; - (8w0x0 &&& 8w0x0, 8w0x82 &&& 8w0xff): parse_ipv4_option_security; - (8w0x0 &&& 8w0x0, 8w0x44 &&& 8w0xff): parse_ipv4_option_timestamp; - } - } - @header_ordering("ethernet", "ipv4_base", "ipv4_option_security", "ipv4_option_NOP", "ipv4_option_timestamp", "ipv4_option_EOL") @name("start") state start { - transition parse_ethernet; - } -} - -control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - @name(".format_options_security") action format_options_security() { - hdr.ipv4_option_NOP.pop_front(3); - hdr.ipv4_option_EOL.pop_front(3); - hdr.ipv4_option_EOL.push_front(1); - hdr.ipv4_base.ihl = 4w8; - } - @name(".format_options_timestamp") action format_options_timestamp() { - hdr.ipv4_option_NOP.pop_front(3); - hdr.ipv4_option_EOL.pop_front(3); - hdr.ipv4_base.ihl = (bit<4>)(8w5 + (hdr.ipv4_option_timestamp.len >> 8w3)); - } - @name(".format_options_both") action format_options_both() { - hdr.ipv4_option_NOP.pop_front(3); - hdr.ipv4_option_EOL.pop_front(3); - hdr.ipv4_option_NOP.push_front(1); - hdr.ipv4_option_NOP[0].value = 8w0x1; - hdr.ipv4_base.ihl = (bit<4>)(8w8 + (hdr.ipv4_option_timestamp.len >> 8w2)); - } - @name("._nop") action _nop() { - } - @name("format_options") table format_options { - actions = { - format_options_security(); - format_options_timestamp(); - format_options_both(); - _nop(); - @default_only NoAction(); - } - key = { - hdr.ipv4_option_security.isValid() : exact @name("hdr.ipv4_option_security.isValid()") ; - hdr.ipv4_option_timestamp.isValid(): exact @name("hdr.ipv4_option_timestamp.isValid()") ; - } - size = 4; - default_action = NoAction(); - } - apply { - format_options.apply(); - } -} - -control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - apply { - } -} - -control DeparserImpl(packet_out packet, in headers hdr) { - apply { - packet.emit(hdr.ethernet); - packet.emit(hdr.ipv4_base); - packet.emit(hdr.ipv4_option_EOL); - packet.emit(hdr.ipv4_option_NOP); - packet.emit(hdr.ipv4_option_security); - packet.emit(hdr.ipv4_option_timestamp); - } -} - -control verifyChecksum(in headers hdr, inout metadata meta) { - apply { - } -} - -control computeChecksum(inout headers hdr, inout metadata meta) { - Checksum16() ipv4_checksum; - apply { - hdr.ipv4_base.hdrChecksum = ipv4_checksum.get, bit<4>, bit<8>, bit<16>, bit<16>, bit<3>, bit<13>, bit<8>, bit<8>, bit<32>, bit<32>, ipv4_option_security_t, ipv4_option_EOL_t, ipv4_option_timestamp_t>>({ hdr.ipv4_base.version, hdr.ipv4_base.ihl, hdr.ipv4_base.diffserv, hdr.ipv4_base.totalLen, hdr.ipv4_base.identification, hdr.ipv4_base.flags, hdr.ipv4_base.fragOffset, hdr.ipv4_base.ttl, hdr.ipv4_base.protocol, hdr.ipv4_base.srcAddr, hdr.ipv4_base.dstAddr, hdr.ipv4_option_security, hdr.ipv4_option_NOP[0], hdr.ipv4_option_timestamp }); - } -} - -V1Switch(ParserImpl(), verifyChecksum(), ingress(), egress(), computeChecksum(), DeparserImpl()) main; diff --git a/testdata/p4_14_samples_outputs/TLV_parsing-frontend.p4 b/testdata/p4_14_samples_outputs/TLV_parsing-frontend.p4 deleted file mode 100644 index 46ce6dc20a5..00000000000 --- a/testdata/p4_14_samples_outputs/TLV_parsing-frontend.p4 +++ /dev/null @@ -1,202 +0,0 @@ -#include -#include - -struct intrinsic_metadata_t { - bit<4> mcast_grp; - bit<4> egress_rid; - bit<16> mcast_hash; - bit<32> lf_field_list; -} - -struct my_metadata_t { - bit<8> parse_ipv4_counter; -} - -header ethernet_t { - bit<48> dstAddr; - bit<48> srcAddr; - bit<16> etherType; -} - -header ipv4_base_t { - bit<4> version; - bit<4> ihl; - bit<8> diffserv; - bit<16> totalLen; - bit<16> identification; - bit<3> flags; - bit<13> fragOffset; - bit<8> ttl; - bit<8> protocol; - bit<16> hdrChecksum; - bit<32> srcAddr; - bit<32> dstAddr; -} - -header ipv4_option_security_t { - bit<8> value; - bit<8> len; - bit<72> security; -} - -header ipv4_option_timestamp_t { - bit<8> value; - bit<8> len; - @length(len) - varbit<304> data; -} - -header ipv4_option_EOL_t { - bit<8> value; -} - -header ipv4_option_NOP_t { - bit<8> value; -} - -struct metadata { - @name("intrinsic_metadata") - intrinsic_metadata_t intrinsic_metadata; - @name("my_metadata") - my_metadata_t my_metadata; -} - -struct headers { - @name("ethernet") - ethernet_t ethernet; - @name("ipv4_base") - ipv4_base_t ipv4_base; - @name("ipv4_option_security") - ipv4_option_security_t ipv4_option_security; - @name("ipv4_option_timestamp") - ipv4_option_timestamp_t ipv4_option_timestamp; - @name("ipv4_option_EOL") - ipv4_option_EOL_t[3] ipv4_option_EOL; - @name("ipv4_option_NOP") - ipv4_option_NOP_t[3] ipv4_option_NOP; -} - -parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - bit<8> tmp; - @name("parse_ethernet") state parse_ethernet { - packet.extract(hdr.ethernet); - transition select(hdr.ethernet.etherType) { - 16w0x800: parse_ipv4; - default: accept; - } - } - @name("parse_ipv4") state parse_ipv4 { - packet.extract(hdr.ipv4_base); - meta.my_metadata.parse_ipv4_counter = (bit<8>)((hdr.ipv4_base.ihl << 2) + 4w12); - transition select(hdr.ipv4_base.ihl) { - 4w0x5: accept; - default: parse_ipv4_options; - } - } - @name("parse_ipv4_option_EOL") state parse_ipv4_option_EOL { - packet.extract(hdr.ipv4_option_EOL.next); - meta.my_metadata.parse_ipv4_counter = meta.my_metadata.parse_ipv4_counter + 8w255; - transition parse_ipv4_options; - } - @name("parse_ipv4_option_NOP") state parse_ipv4_option_NOP { - packet.extract(hdr.ipv4_option_NOP.next); - meta.my_metadata.parse_ipv4_counter = meta.my_metadata.parse_ipv4_counter + 8w255; - transition parse_ipv4_options; - } - @name("parse_ipv4_option_security") state parse_ipv4_option_security { - packet.extract(hdr.ipv4_option_security); - meta.my_metadata.parse_ipv4_counter = meta.my_metadata.parse_ipv4_counter + 8w245; - transition parse_ipv4_options; - } - @name("parse_ipv4_option_timestamp") state parse_ipv4_option_timestamp { - packet.extract(hdr.ipv4_option_timestamp); - meta.my_metadata.parse_ipv4_counter = meta.my_metadata.parse_ipv4_counter - hdr.ipv4_option_timestamp.len; - transition parse_ipv4_options; - } - @name("parse_ipv4_options") state parse_ipv4_options { - tmp = packet.lookahead>(); - transition select(meta.my_metadata.parse_ipv4_counter, tmp[7:0]) { - (8w0x0 &&& 8w0xff, 8w0x0 &&& 8w0x0): accept; - (8w0x0 &&& 8w0x0, 8w0x0 &&& 8w0xff): parse_ipv4_option_EOL; - (8w0x0 &&& 8w0x0, 8w0x1 &&& 8w0xff): parse_ipv4_option_NOP; - (8w0x0 &&& 8w0x0, 8w0x82 &&& 8w0xff): parse_ipv4_option_security; - (8w0x0 &&& 8w0x0, 8w0x44 &&& 8w0xff): parse_ipv4_option_timestamp; - } - } - @header_ordering("ethernet", "ipv4_base", "ipv4_option_security", "ipv4_option_NOP", "ipv4_option_timestamp", "ipv4_option_EOL") @name("start") state start { - transition parse_ethernet; - } -} - -control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - @name(".format_options_security") action format_options_security_0() { - hdr.ipv4_option_NOP.pop_front(3); - hdr.ipv4_option_EOL.pop_front(3); - hdr.ipv4_option_EOL.push_front(1); - hdr.ipv4_base.ihl = 4w8; - } - @name(".format_options_timestamp") action format_options_timestamp_0() { - hdr.ipv4_option_NOP.pop_front(3); - hdr.ipv4_option_EOL.pop_front(3); - hdr.ipv4_base.ihl = (bit<4>)(8w5 + (hdr.ipv4_option_timestamp.len >> 8w3)); - } - @name(".format_options_both") action format_options_both_0() { - hdr.ipv4_option_NOP.pop_front(3); - hdr.ipv4_option_EOL.pop_front(3); - hdr.ipv4_option_NOP.push_front(1); - hdr.ipv4_option_NOP[0].value = 8w0x1; - hdr.ipv4_base.ihl = (bit<4>)(8w8 + (hdr.ipv4_option_timestamp.len >> 8w2)); - } - @name("._nop") action _nop_0() { - } - @name("format_options") table format_options_0 { - actions = { - format_options_security_0(); - format_options_timestamp_0(); - format_options_both_0(); - _nop_0(); - @default_only NoAction(); - } - key = { - hdr.ipv4_option_security.isValid() : exact @name("hdr.ipv4_option_security.isValid()") ; - hdr.ipv4_option_timestamp.isValid(): exact @name("hdr.ipv4_option_timestamp.isValid()") ; - } - size = 4; - default_action = NoAction(); - } - apply { - format_options_0.apply(); - } -} - -control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - apply { - } -} - -control DeparserImpl(packet_out packet, in headers hdr) { - apply { - packet.emit(hdr.ethernet); - packet.emit(hdr.ipv4_base); - packet.emit(hdr.ipv4_option_EOL); - packet.emit(hdr.ipv4_option_NOP); - packet.emit(hdr.ipv4_option_security); - packet.emit(hdr.ipv4_option_timestamp); - } -} - -control verifyChecksum(in headers hdr, inout metadata meta) { - apply { - } -} - -control computeChecksum(inout headers hdr, inout metadata meta) { - bit<16> tmp_0; - @name("ipv4_checksum") Checksum16() ipv4_checksum_0; - apply { - tmp_0 = ipv4_checksum_0.get, bit<4>, bit<8>, bit<16>, bit<16>, bit<3>, bit<13>, bit<8>, bit<8>, bit<32>, bit<32>, ipv4_option_security_t, ipv4_option_EOL_t, ipv4_option_timestamp_t>>({ hdr.ipv4_base.version, hdr.ipv4_base.ihl, hdr.ipv4_base.diffserv, hdr.ipv4_base.totalLen, hdr.ipv4_base.identification, hdr.ipv4_base.flags, hdr.ipv4_base.fragOffset, hdr.ipv4_base.ttl, hdr.ipv4_base.protocol, hdr.ipv4_base.srcAddr, hdr.ipv4_base.dstAddr, hdr.ipv4_option_security, hdr.ipv4_option_NOP[0], hdr.ipv4_option_timestamp }); - hdr.ipv4_base.hdrChecksum = tmp_0; - } -} - -V1Switch(ParserImpl(), verifyChecksum(), ingress(), egress(), computeChecksum(), DeparserImpl()) main; diff --git a/testdata/p4_14_samples_outputs/TLV_parsing-midend.p4 b/testdata/p4_14_samples_outputs/TLV_parsing-midend.p4 deleted file mode 100644 index 1c8f80e33fc..00000000000 --- a/testdata/p4_14_samples_outputs/TLV_parsing-midend.p4 +++ /dev/null @@ -1,226 +0,0 @@ -#include -#include - -struct intrinsic_metadata_t { - bit<4> mcast_grp; - bit<4> egress_rid; - bit<16> mcast_hash; - bit<32> lf_field_list; -} - -struct my_metadata_t { - bit<8> parse_ipv4_counter; -} - -header ethernet_t { - bit<48> dstAddr; - bit<48> srcAddr; - bit<16> etherType; -} - -header ipv4_base_t { - bit<4> version; - bit<4> ihl; - bit<8> diffserv; - bit<16> totalLen; - bit<16> identification; - bit<3> flags; - bit<13> fragOffset; - bit<8> ttl; - bit<8> protocol; - bit<16> hdrChecksum; - bit<32> srcAddr; - bit<32> dstAddr; -} - -header ipv4_option_security_t { - bit<8> value; - bit<8> len; - bit<72> security; -} - -header ipv4_option_timestamp_t { - bit<8> value; - bit<8> len; - @length(len) - varbit<304> data; -} - -header ipv4_option_EOL_t { - bit<8> value; -} - -header ipv4_option_NOP_t { - bit<8> value; -} - -struct metadata { - @name("intrinsic_metadata") - intrinsic_metadata_t intrinsic_metadata; - @name("my_metadata") - my_metadata_t my_metadata; -} - -struct headers { - @name("ethernet") - ethernet_t ethernet; - @name("ipv4_base") - ipv4_base_t ipv4_base; - @name("ipv4_option_security") - ipv4_option_security_t ipv4_option_security; - @name("ipv4_option_timestamp") - ipv4_option_timestamp_t ipv4_option_timestamp; - @name("ipv4_option_EOL") - ipv4_option_EOL_t[3] ipv4_option_EOL; - @name("ipv4_option_NOP") - ipv4_option_NOP_t[3] ipv4_option_NOP; -} - -parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - bit<8> tmp_1; - @name("parse_ethernet") state parse_ethernet { - packet.extract(hdr.ethernet); - transition select(hdr.ethernet.etherType) { - 16w0x800: parse_ipv4; - default: accept; - } - } - @name("parse_ipv4") state parse_ipv4 { - packet.extract(hdr.ipv4_base); - meta.my_metadata.parse_ipv4_counter = (bit<8>)((hdr.ipv4_base.ihl << 2) + 4w12); - transition select(hdr.ipv4_base.ihl) { - 4w0x5: accept; - default: parse_ipv4_options; - } - } - @name("parse_ipv4_option_EOL") state parse_ipv4_option_EOL { - packet.extract(hdr.ipv4_option_EOL.next); - meta.my_metadata.parse_ipv4_counter = meta.my_metadata.parse_ipv4_counter + 8w255; - transition parse_ipv4_options; - } - @name("parse_ipv4_option_NOP") state parse_ipv4_option_NOP { - packet.extract(hdr.ipv4_option_NOP.next); - meta.my_metadata.parse_ipv4_counter = meta.my_metadata.parse_ipv4_counter + 8w255; - transition parse_ipv4_options; - } - @name("parse_ipv4_option_security") state parse_ipv4_option_security { - packet.extract(hdr.ipv4_option_security); - meta.my_metadata.parse_ipv4_counter = meta.my_metadata.parse_ipv4_counter + 8w245; - transition parse_ipv4_options; - } - @name("parse_ipv4_option_timestamp") state parse_ipv4_option_timestamp { - packet.extract(hdr.ipv4_option_timestamp); - meta.my_metadata.parse_ipv4_counter = meta.my_metadata.parse_ipv4_counter - hdr.ipv4_option_timestamp.len; - transition parse_ipv4_options; - } - @name("parse_ipv4_options") state parse_ipv4_options { - tmp_1 = packet.lookahead>(); - transition select(meta.my_metadata.parse_ipv4_counter, tmp_1[7:0]) { - (8w0x0 &&& 8w0xff, 8w0x0 &&& 8w0x0): accept; - (8w0x0 &&& 8w0x0, 8w0x0 &&& 8w0xff): parse_ipv4_option_EOL; - (8w0x0 &&& 8w0x0, 8w0x1 &&& 8w0xff): parse_ipv4_option_NOP; - (8w0x0 &&& 8w0x0, 8w0x82 &&& 8w0xff): parse_ipv4_option_security; - (8w0x0 &&& 8w0x0, 8w0x44 &&& 8w0xff): parse_ipv4_option_timestamp; - default: noMatch; - } - } - @header_ordering("ethernet", "ipv4_base", "ipv4_option_security", "ipv4_option_NOP", "ipv4_option_timestamp", "ipv4_option_EOL") @name("start") state start { - transition parse_ethernet; - } - state noMatch { - verify(false, error.NoMatch); - transition reject; - } -} - -control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - @name("NoAction") action NoAction_0() { - } - @name(".format_options_security") action format_options_security_0() { - hdr.ipv4_option_NOP.pop_front(3); - hdr.ipv4_option_EOL.pop_front(3); - hdr.ipv4_option_EOL.push_front(1); - hdr.ipv4_base.ihl = 4w8; - } - @name(".format_options_timestamp") action format_options_timestamp_0() { - hdr.ipv4_option_NOP.pop_front(3); - hdr.ipv4_option_EOL.pop_front(3); - hdr.ipv4_base.ihl = (bit<4>)(8w5 + (hdr.ipv4_option_timestamp.len >> 8w3)); - } - @name(".format_options_both") action format_options_both_0() { - hdr.ipv4_option_NOP.pop_front(3); - hdr.ipv4_option_EOL.pop_front(3); - hdr.ipv4_option_NOP.push_front(1); - hdr.ipv4_option_NOP[0].value = 8w0x1; - hdr.ipv4_base.ihl = (bit<4>)(8w8 + (hdr.ipv4_option_timestamp.len >> 8w2)); - } - @name("._nop") action _nop_0() { - } - @name("format_options") table format_options { - actions = { - format_options_security_0(); - format_options_timestamp_0(); - format_options_both_0(); - _nop_0(); - @default_only NoAction_0(); - } - key = { - hdr.ipv4_option_security.isValid() : exact @name("hdr.ipv4_option_security.isValid()") ; - hdr.ipv4_option_timestamp.isValid(): exact @name("hdr.ipv4_option_timestamp.isValid()") ; - } - size = 4; - default_action = NoAction_0(); - } - apply { - format_options.apply(); - } -} - -control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - apply { - } -} - -control DeparserImpl(packet_out packet, in headers hdr) { - apply { - packet.emit(hdr.ethernet); - packet.emit(hdr.ipv4_base); - packet.emit(hdr.ipv4_option_EOL); - packet.emit(hdr.ipv4_option_NOP); - packet.emit(hdr.ipv4_option_security); - packet.emit(hdr.ipv4_option_timestamp); - } -} - -control verifyChecksum(in headers hdr, inout metadata meta) { - apply { - } -} - -struct tuple_0 { - bit<4> field; - bit<4> field_0; - bit<8> field_1; - bit<16> field_2; - bit<16> field_3; - bit<3> field_4; - bit<13> field_5; - bit<8> field_6; - bit<8> field_7; - bit<32> field_8; - bit<32> field_9; - ipv4_option_security_t field_10; - ipv4_option_EOL_t field_11; - ipv4_option_timestamp_t field_12; -} - -control computeChecksum(inout headers hdr, inout metadata meta) { - bit<16> tmp_2; - @name("ipv4_checksum") Checksum16() ipv4_checksum; - apply { - tmp_2 = ipv4_checksum.get({ hdr.ipv4_base.version, hdr.ipv4_base.ihl, hdr.ipv4_base.diffserv, hdr.ipv4_base.totalLen, hdr.ipv4_base.identification, hdr.ipv4_base.flags, hdr.ipv4_base.fragOffset, hdr.ipv4_base.ttl, hdr.ipv4_base.protocol, hdr.ipv4_base.srcAddr, hdr.ipv4_base.dstAddr, hdr.ipv4_option_security, hdr.ipv4_option_NOP[0], hdr.ipv4_option_timestamp }); - hdr.ipv4_base.hdrChecksum = tmp_2; - } -} - -V1Switch(ParserImpl(), verifyChecksum(), ingress(), egress(), computeChecksum(), DeparserImpl()) main; diff --git a/testdata/p4_14_samples_outputs/TLV_parsing.p4 b/testdata/p4_14_samples_outputs/TLV_parsing.p4 deleted file mode 100644 index 7ecc13fd786..00000000000 --- a/testdata/p4_14_samples_outputs/TLV_parsing.p4 +++ /dev/null @@ -1,198 +0,0 @@ -#include -#include - -struct intrinsic_metadata_t { - bit<4> mcast_grp; - bit<4> egress_rid; - bit<16> mcast_hash; - bit<32> lf_field_list; -} - -struct my_metadata_t { - bit<8> parse_ipv4_counter; -} - -header ethernet_t { - bit<48> dstAddr; - bit<48> srcAddr; - bit<16> etherType; -} - -header ipv4_base_t { - bit<4> version; - bit<4> ihl; - bit<8> diffserv; - bit<16> totalLen; - bit<16> identification; - bit<3> flags; - bit<13> fragOffset; - bit<8> ttl; - bit<8> protocol; - bit<16> hdrChecksum; - bit<32> srcAddr; - bit<32> dstAddr; -} - -header ipv4_option_security_t { - bit<8> value; - bit<8> len; - bit<72> security; -} - -header ipv4_option_timestamp_t { - bit<8> value; - bit<8> len; - @length(len) - varbit<304> data; -} - -header ipv4_option_EOL_t { - bit<8> value; -} - -header ipv4_option_NOP_t { - bit<8> value; -} - -struct metadata { - @name("intrinsic_metadata") - intrinsic_metadata_t intrinsic_metadata; - @name("my_metadata") - my_metadata_t my_metadata; -} - -struct headers { - @name("ethernet") - ethernet_t ethernet; - @name("ipv4_base") - ipv4_base_t ipv4_base; - @name("ipv4_option_security") - ipv4_option_security_t ipv4_option_security; - @name("ipv4_option_timestamp") - ipv4_option_timestamp_t ipv4_option_timestamp; - @name("ipv4_option_EOL") - ipv4_option_EOL_t[3] ipv4_option_EOL; - @name("ipv4_option_NOP") - ipv4_option_NOP_t[3] ipv4_option_NOP; -} - -parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - @name("parse_ethernet") state parse_ethernet { - packet.extract(hdr.ethernet); - transition select(hdr.ethernet.etherType) { - 16w0x800: parse_ipv4; - default: accept; - } - } - @name("parse_ipv4") state parse_ipv4 { - packet.extract(hdr.ipv4_base); - meta.my_metadata.parse_ipv4_counter = hdr.ipv4_base.ihl * 4w4 - 4w4; - transition select(hdr.ipv4_base.ihl) { - 4w0x5: accept; - default: parse_ipv4_options; - } - } - @name("parse_ipv4_option_EOL") state parse_ipv4_option_EOL { - packet.extract(hdr.ipv4_option_EOL.next); - meta.my_metadata.parse_ipv4_counter = meta.my_metadata.parse_ipv4_counter - 8w1; - transition parse_ipv4_options; - } - @name("parse_ipv4_option_NOP") state parse_ipv4_option_NOP { - packet.extract(hdr.ipv4_option_NOP.next); - meta.my_metadata.parse_ipv4_counter = meta.my_metadata.parse_ipv4_counter - 8w1; - transition parse_ipv4_options; - } - @name("parse_ipv4_option_security") state parse_ipv4_option_security { - packet.extract(hdr.ipv4_option_security); - meta.my_metadata.parse_ipv4_counter = meta.my_metadata.parse_ipv4_counter - 8w11; - transition parse_ipv4_options; - } - @name("parse_ipv4_option_timestamp") state parse_ipv4_option_timestamp { - packet.extract(hdr.ipv4_option_timestamp); - meta.my_metadata.parse_ipv4_counter = meta.my_metadata.parse_ipv4_counter - hdr.ipv4_option_timestamp.len; - transition parse_ipv4_options; - } - @name("parse_ipv4_options") state parse_ipv4_options { - transition select(meta.my_metadata.parse_ipv4_counter, (packet.lookahead>())[7:0]) { - (8w0x0 &&& 8w0xff, 8w0x0 &&& 8w0x0): accept; - (8w0x0 &&& 8w0x0, 8w0x0 &&& 8w0xff): parse_ipv4_option_EOL; - (8w0x0 &&& 8w0x0, 8w0x1 &&& 8w0xff): parse_ipv4_option_NOP; - (8w0x0 &&& 8w0x0, 8w0x82 &&& 8w0xff): parse_ipv4_option_security; - (8w0x0 &&& 8w0x0, 8w0x44 &&& 8w0xff): parse_ipv4_option_timestamp; - } - } - @header_ordering("ethernet", "ipv4_base", "ipv4_option_security", "ipv4_option_NOP", "ipv4_option_timestamp", "ipv4_option_EOL") @name("start") state start { - transition parse_ethernet; - } -} - -control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - @name(".format_options_security") action format_options_security() { - hdr.ipv4_option_NOP.pop_front(3); - hdr.ipv4_option_EOL.pop_front(3); - hdr.ipv4_option_EOL.push_front(1); - hdr.ipv4_base.ihl = 4w8; - } - @name(".format_options_timestamp") action format_options_timestamp() { - hdr.ipv4_option_NOP.pop_front(3); - hdr.ipv4_option_EOL.pop_front(3); - hdr.ipv4_base.ihl = 8w5 + (hdr.ipv4_option_timestamp.len >> 8w3); - } - @name(".format_options_both") action format_options_both() { - hdr.ipv4_option_NOP.pop_front(3); - hdr.ipv4_option_EOL.pop_front(3); - hdr.ipv4_option_NOP.push_front(1); - hdr.ipv4_option_NOP[0].value = 8w0x1; - hdr.ipv4_base.ihl = 8w8 + (hdr.ipv4_option_timestamp.len >> 8w2); - } - @name("._nop") action _nop() { - } - @name("format_options") table format_options { - actions = { - format_options_security; - format_options_timestamp; - format_options_both; - _nop; - @default_only NoAction; - } - key = { - hdr.ipv4_option_security.isValid() : exact; - hdr.ipv4_option_timestamp.isValid(): exact; - } - size = 4; - default_action = NoAction(); - } - apply { - format_options.apply(); - } -} - -control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - apply { - } -} - -control DeparserImpl(packet_out packet, in headers hdr) { - apply { - packet.emit(hdr.ethernet); - packet.emit(hdr.ipv4_base); - packet.emit(hdr.ipv4_option_EOL); - packet.emit(hdr.ipv4_option_NOP); - packet.emit(hdr.ipv4_option_security); - packet.emit(hdr.ipv4_option_timestamp); - } -} - -control verifyChecksum(in headers hdr, inout metadata meta) { - apply { - } -} - -control computeChecksum(inout headers hdr, inout metadata meta) { - Checksum16() ipv4_checksum; - apply { - hdr.ipv4_base.hdrChecksum = ipv4_checksum.get({ hdr.ipv4_base.version, hdr.ipv4_base.ihl, hdr.ipv4_base.diffserv, hdr.ipv4_base.totalLen, hdr.ipv4_base.identification, hdr.ipv4_base.flags, hdr.ipv4_base.fragOffset, hdr.ipv4_base.ttl, hdr.ipv4_base.protocol, hdr.ipv4_base.srcAddr, hdr.ipv4_base.dstAddr, hdr.ipv4_option_security, hdr.ipv4_option_NOP[0], hdr.ipv4_option_timestamp }); - } -} - -V1Switch(ParserImpl(), verifyChecksum(), ingress(), egress(), computeChecksum(), DeparserImpl()) main; diff --git a/testdata/p4_14_samples_outputs/acl1.p4 b/testdata/p4_14_samples_outputs/acl1.p4 index 07549872cd9..526981a405b 100644 --- a/testdata/p4_14_samples_outputs/acl1.p4 +++ b/testdata/p4_14_samples_outputs/acl1.p4 @@ -173,7 +173,7 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name(".nop") action nop() { } @name(".copy_to_cpu") action copy_to_cpu(bit<16> reason_code) { - meta.fabric_metadata.reason_code = reason_code; + meta.fabric_metadata.reason_code = (bit<16>)reason_code; } @name(".redirect_to_cpu") action redirect_to_cpu(bit<16> reason_code) { copy_to_cpu(reason_code); diff --git a/testdata/p4_14_samples_outputs/action_bus1.p4 b/testdata/p4_14_samples_outputs/action_bus1.p4 index 50d9697dffb..f45f681fed5 100644 --- a/testdata/p4_14_samples_outputs/action_bus1.p4 +++ b/testdata/p4_14_samples_outputs/action_bus1.p4 @@ -61,62 +61,62 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set1") action set1(bit<32> v1, bit<32> v2, bit<32> v3, bit<32> v4, bit<32> v5) { - hdr.data.f1_1 = v1; - hdr.data.f1_2 = v2; - hdr.data.f1_3 = v3; - hdr.data.f1_4 = v4; - hdr.data.f1_5 = v5; + hdr.data.f1_1 = (bit<32>)v1; + hdr.data.f1_2 = (bit<32>)v2; + hdr.data.f1_3 = (bit<32>)v3; + hdr.data.f1_4 = (bit<32>)v4; + hdr.data.f1_5 = (bit<32>)v5; } @name(".noop") action noop() { } @name(".set2") action set2(bit<32> v1, bit<32> v2, bit<32> v3, bit<32> v4, bit<32> v5) { - hdr.data.f2_1 = v1; - hdr.data.f2_2 = v2; - hdr.data.f2_3 = v3; - hdr.data.f2_4 = v4; - hdr.data.f2_5 = v5; + hdr.data.f2_1 = (bit<32>)v1; + hdr.data.f2_2 = (bit<32>)v2; + hdr.data.f2_3 = (bit<32>)v3; + hdr.data.f2_4 = (bit<32>)v4; + hdr.data.f2_5 = (bit<32>)v5; } @name(".set3") action set3(bit<32> v1, bit<32> v2, bit<32> v3, bit<32> v4, bit<32> v5) { - hdr.data.f3_1 = v1; - hdr.data.f3_2 = v2; - hdr.data.f3_3 = v3; - hdr.data.f3_4 = v4; - hdr.data.f3_5 = v5; + hdr.data.f3_1 = (bit<32>)v1; + hdr.data.f3_2 = (bit<32>)v2; + hdr.data.f3_3 = (bit<32>)v3; + hdr.data.f3_4 = (bit<32>)v4; + hdr.data.f3_5 = (bit<32>)v5; } @name(".set4") action set4(bit<32> v1, bit<32> v2, bit<32> v3, bit<32> v4, bit<32> v5) { - hdr.data.f4_1 = v1; - hdr.data.f4_2 = v2; - hdr.data.f4_3 = v3; - hdr.data.f4_4 = v4; - hdr.data.f4_5 = v5; + hdr.data.f4_1 = (bit<32>)v1; + hdr.data.f4_2 = (bit<32>)v2; + hdr.data.f4_3 = (bit<32>)v3; + hdr.data.f4_4 = (bit<32>)v4; + hdr.data.f4_5 = (bit<32>)v5; } @name(".set5") action set5(bit<32> v1, bit<32> v2, bit<32> v3, bit<32> v4, bit<32> v5) { - hdr.data.f5_1 = v1; - hdr.data.f5_2 = v2; - hdr.data.f5_3 = v3; - hdr.data.f5_4 = v4; - hdr.data.f5_5 = v5; + hdr.data.f5_1 = (bit<32>)v1; + hdr.data.f5_2 = (bit<32>)v2; + hdr.data.f5_3 = (bit<32>)v3; + hdr.data.f5_4 = (bit<32>)v4; + hdr.data.f5_5 = (bit<32>)v5; } @name(".set6") action set6(bit<32> v1, bit<32> v2, bit<32> v3, bit<32> v4, bit<32> v5) { - hdr.data.f6_1 = v1; - hdr.data.f6_2 = v2; - hdr.data.f6_3 = v3; - hdr.data.f6_4 = v4; - hdr.data.f6_5 = v5; + hdr.data.f6_1 = (bit<32>)v1; + hdr.data.f6_2 = (bit<32>)v2; + hdr.data.f6_3 = (bit<32>)v3; + hdr.data.f6_4 = (bit<32>)v4; + hdr.data.f6_5 = (bit<32>)v5; } @name(".set7") action set7(bit<32> v1, bit<32> v2, bit<32> v3, bit<32> v4, bit<32> v5) { - hdr.data.f7_1 = v1; - hdr.data.f7_2 = v2; - hdr.data.f7_3 = v3; - hdr.data.f7_4 = v4; - hdr.data.f7_5 = v5; + hdr.data.f7_1 = (bit<32>)v1; + hdr.data.f7_2 = (bit<32>)v2; + hdr.data.f7_3 = (bit<32>)v3; + hdr.data.f7_4 = (bit<32>)v4; + hdr.data.f7_5 = (bit<32>)v5; } @name(".set8") action set8(bit<32> v1, bit<32> v2, bit<32> v3, bit<32> v4, bit<32> v5) { - hdr.data.f8_1 = v1; - hdr.data.f8_2 = v2; - hdr.data.f8_3 = v3; - hdr.data.f8_4 = v4; - hdr.data.f8_5 = v5; + hdr.data.f8_1 = (bit<32>)v1; + hdr.data.f8_2 = (bit<32>)v2; + hdr.data.f8_3 = (bit<32>)v3; + hdr.data.f8_4 = (bit<32>)v4; + hdr.data.f8_5 = (bit<32>)v5; } @name("tbl1") table tbl1 { actions = { diff --git a/testdata/p4_14_samples_outputs/action_chain1.p4 b/testdata/p4_14_samples_outputs/action_chain1.p4 index 8db84df4063..03333a64ef6 100644 --- a/testdata/p4_14_samples_outputs/action_chain1.p4 +++ b/testdata/p4_14_samples_outputs/action_chain1.p4 @@ -41,31 +41,31 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set0b1") action set0b1(bit<8> val) { - hdr.extra[0].b1 = val; + hdr.extra[0].b1 = (bit<8>)val; } @name(".act1") action act1(bit<8> val) { - hdr.extra[0].b1 = val; + hdr.extra[0].b1 = (bit<8>)val; } @name(".act2") action act2(bit<8> val) { - hdr.extra[0].b1 = val; + hdr.extra[0].b1 = (bit<8>)val; } @name(".act3") action act3(bit<8> val) { - hdr.extra[0].b1 = val; + hdr.extra[0].b1 = (bit<8>)val; } @name(".noop") action noop() { } @name(".setb2") action setb2(bit<8> val) { - hdr.data.b2 = val; + hdr.data.b2 = (bit<8>)val; } @name(".set1b1") action set1b1(bit<8> val) { - hdr.extra[1].b1 = val; + hdr.extra[1].b1 = (bit<8>)val; } @name(".set2b2") action set2b2(bit<8> val) { - hdr.extra[2].b2 = val; + hdr.extra[2].b2 = (bit<8>)val; } @name(".setb1") action setb1(bit<9> port, bit<8> val) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name("ex1") table ex1 { actions = { diff --git a/testdata/p4_14_samples_outputs/action_inline.p4 b/testdata/p4_14_samples_outputs/action_inline.p4 index 11c0597f95f..d5fd80346e5 100644 --- a/testdata/p4_14_samples_outputs/action_inline.p4 +++ b/testdata/p4_14_samples_outputs/action_inline.p4 @@ -21,7 +21,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".a") action a(inout bit<1> y0) { - y0 = y0 + 1w1; + y0 = (bit<1>)(y0 + 1w1); } @name(".b") action b() { a(meta.md.b); diff --git a/testdata/p4_14_samples_outputs/action_inline1.p4 b/testdata/p4_14_samples_outputs/action_inline1.p4 index ad7ef96cd5b..a6071fb35aa 100644 --- a/testdata/p4_14_samples_outputs/action_inline1.p4 +++ b/testdata/p4_14_samples_outputs/action_inline1.p4 @@ -28,11 +28,11 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setbyte") action setbyte(inout bit<8> dest, bit<8> val) { - dest = val; + dest = (bit<8>)val; } @name(".setb1") action setb1(bit<8> val, bit<9> port) { setbyte(hdr.data.b1, val); - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/action_inline2.p4 b/testdata/p4_14_samples_outputs/action_inline2.p4 index d3435226b0f..5e52c26a893 100644 --- a/testdata/p4_14_samples_outputs/action_inline2.p4 +++ b/testdata/p4_14_samples_outputs/action_inline2.p4 @@ -28,7 +28,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".copy2") action copy2(inout bit<8> dest, bit<8> val) { - dest = val; + dest = (bit<8>)val; } @name(".copy") action copy(inout bit<8> dest, bit<8> val) { copy2(dest, val); @@ -38,7 +38,7 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ } @name(".setb1") action setb1(bit<9> port) { setbyte(hdr.data.b1, hdr.data.b2); - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/axon.p4 b/testdata/p4_14_samples_outputs/axon.p4 index a34ac4c0bf4..0455e74be25 100644 --- a/testdata/p4_14_samples_outputs/axon.p4 +++ b/testdata/p4_14_samples_outputs/axon.p4 @@ -36,14 +36,14 @@ struct headers { parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name("parse_fwdHop") state parse_fwdHop { packet.extract(hdr.axon_fwdHop.next); - meta.my_metadata.fwdHopCount = meta.my_metadata.fwdHopCount - 8w1; + meta.my_metadata.fwdHopCount = (bit<8>)(meta.my_metadata.fwdHopCount - 8w1); transition parse_next_fwdHop; } @name("parse_head") state parse_head { packet.extract(hdr.axon_head); - meta.my_metadata.fwdHopCount = hdr.axon_head.fwdHopCount; - meta.my_metadata.revHopCount = hdr.axon_head.revHopCount; - meta.my_metadata.headerLen = 8w2 + hdr.axon_head.fwdHopCount + hdr.axon_head.revHopCount; + meta.my_metadata.fwdHopCount = (bit<8>)hdr.axon_head.fwdHopCount; + meta.my_metadata.revHopCount = (bit<8>)hdr.axon_head.revHopCount; + meta.my_metadata.headerLen = (bit<16>)(8w2 + hdr.axon_head.fwdHopCount + hdr.axon_head.revHopCount); transition select(hdr.axon_head.fwdHopCount) { 8w0: accept; default: parse_next_fwdHop; @@ -63,7 +63,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_revHop") state parse_revHop { packet.extract(hdr.axon_revHop.next); - meta.my_metadata.revHopCount = meta.my_metadata.revHopCount - 8w1; + meta.my_metadata.revHopCount = (bit<8>)(meta.my_metadata.revHopCount - 8w1); transition parse_next_revHop; } @name("start") state start { @@ -84,12 +84,12 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ mark_to_drop(); } @name(".route") action route() { - standard_metadata.egress_spec = hdr.axon_fwdHop[0].port; - hdr.axon_head.fwdHopCount = hdr.axon_head.fwdHopCount - 8w1; + standard_metadata.egress_spec = (bit<9>)hdr.axon_fwdHop[0].port; + hdr.axon_head.fwdHopCount = (bit<8>)(hdr.axon_head.fwdHopCount - 8w1); hdr.axon_fwdHop.pop_front(1); - hdr.axon_head.revHopCount = hdr.axon_head.revHopCount + 8w1; + hdr.axon_head.revHopCount = (bit<8>)(hdr.axon_head.revHopCount + 8w1); hdr.axon_revHop.push_front(1); - hdr.axon_revHop[0].port = standard_metadata.ingress_port; + hdr.axon_revHop[0].port = (bit<8>)standard_metadata.ingress_port; } @name("drop_pkt") table drop_pkt { actions = { diff --git a/testdata/p4_14_samples_outputs/basic_conditionals.p4 b/testdata/p4_14_samples_outputs/basic_conditionals.p4 index 7d84cbfdcff..f1baa1becac 100644 --- a/testdata/p4_14_samples_outputs/basic_conditionals.p4 +++ b/testdata/p4_14_samples_outputs/basic_conditionals.p4 @@ -27,7 +27,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_port") action set_port(bit<9> port) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name("test1") table test1 { actions = { diff --git a/testdata/p4_14_samples_outputs/basic_routing.p4 b/testdata/p4_14_samples_outputs/basic_routing.p4 index 52ac758a3dc..b82bfdaf579 100644 --- a/testdata/p4_14_samples_outputs/basic_routing.p4 +++ b/testdata/p4_14_samples_outputs/basic_routing.p4 @@ -61,8 +61,8 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t @name(".on_miss") action on_miss() { } @name(".rewrite_src_dst_mac") action rewrite_src_dst_mac(bit<48> smac, bit<48> dmac) { - hdr.ethernet.srcAddr = smac; - hdr.ethernet.dstAddr = dmac; + hdr.ethernet.srcAddr = (bit<48>)smac; + hdr.ethernet.dstAddr = (bit<48>)dmac; } @name("rewrite_mac") table rewrite_mac { actions = { @@ -83,19 +83,19 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_vrf") action set_vrf(bit<12> vrf) { - meta.ingress_metadata.vrf = vrf; + meta.ingress_metadata.vrf = (bit<12>)vrf; } @name(".on_miss") action on_miss() { } @name(".fib_hit_nexthop") action fib_hit_nexthop(bit<16> nexthop_index) { - meta.ingress_metadata.nexthop_index = nexthop_index; - hdr.ipv4.ttl = hdr.ipv4.ttl - 8w1; + meta.ingress_metadata.nexthop_index = (bit<16>)nexthop_index; + hdr.ipv4.ttl = (bit<8>)(hdr.ipv4.ttl - 8w1); } @name(".set_egress_details") action set_egress_details(bit<9> egress_spec) { - standard_metadata.egress_spec = egress_spec; + standard_metadata.egress_spec = (bit<9>)egress_spec; } @name(".set_bd") action set_bd(bit<16> bd) { - meta.ingress_metadata.bd = bd; + meta.ingress_metadata.bd = (bit<16>)bd; } @name("bd") table bd { actions = { diff --git a/testdata/p4_14_samples_outputs/bigfield1.p4 b/testdata/p4_14_samples_outputs/bigfield1.p4 index 0a40ac01b85..37f6895a436 100644 --- a/testdata/p4_14_samples_outputs/bigfield1.p4 +++ b/testdata/p4_14_samples_outputs/bigfield1.p4 @@ -26,8 +26,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setx1") action setx1(bit<48> val, bit<9> port) { - hdr.data.x1 = val; - standard_metadata.egress_spec = port; + hdr.data.x1 = (bit<48>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/bridge1.p4 b/testdata/p4_14_samples_outputs/bridge1.p4 index f1373f16e2d..e1e93bdc969 100644 --- a/testdata/p4_14_samples_outputs/bridge1.p4 +++ b/testdata/p4_14_samples_outputs/bridge1.p4 @@ -32,7 +32,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".copyb1") action copyb1() { - hdr.data.b1 = meta.meta.val; + hdr.data.b1 = (bit<8>)meta.meta.val; } @name("output") table output { actions = { @@ -47,8 +47,8 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - meta.meta.val = val; - standard_metadata.egress_spec = port; + meta.meta.val = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/checksum1.p4 b/testdata/p4_14_samples_outputs/checksum1.p4 index 77d7d55caa4..248d32e6a24 100644 --- a/testdata/p4_14_samples_outputs/checksum1.p4 +++ b/testdata/p4_14_samples_outputs/checksum1.p4 @@ -71,8 +71,8 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name(".drop") action drop() { } @name(".forward") action forward(bit<48> to) { - hdr.ethernet.dstAddr = to; - hdr.ipv4.ttl = hdr.ipv4.ttl + 8w255; + hdr.ethernet.dstAddr = (bit<48>)to; + hdr.ipv4.ttl = (bit<8>)(hdr.ipv4.ttl + 8w255); } @name(".do_setup") action do_setup() { } diff --git a/testdata/p4_14_samples_outputs/copy_to_cpu.p4 b/testdata/p4_14_samples_outputs/copy_to_cpu.p4 index 7ece324540f..c51134fd7cc 100644 --- a/testdata/p4_14_samples_outputs/copy_to_cpu.p4 +++ b/testdata/p4_14_samples_outputs/copy_to_cpu.p4 @@ -54,8 +54,8 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t } @name(".do_cpu_encap") action do_cpu_encap() { hdr.cpu_header.setValid(); - hdr.cpu_header.device = 8w0; - hdr.cpu_header.reason = 8w0xab; + hdr.cpu_header.device = (bit<8>)8w0; + hdr.cpu_header.reason = (bit<8>)8w0xab; } @name("redirect") table redirect { actions = { diff --git a/testdata/p4_14_samples_outputs/counter-first.p4 b/testdata/p4_14_samples_outputs/counter-first.p4 index 378f190825f..45ef3736bc7 100644 --- a/testdata/p4_14_samples_outputs/counter-first.p4 +++ b/testdata/p4_14_samples_outputs/counter-first.p4 @@ -55,9 +55,9 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name("._nop") action _nop() { } @name(".m_action") action m_action_0(bit<14> idx) { + my_direct_counter.count(); my_indirect_counter.count((bit<32>)idx); mark_to_drop(); - my_direct_counter.count(); } @name("._nop") action _nop_0() { my_direct_counter.count(); diff --git a/testdata/p4_14_samples_outputs/counter1-first.p4 b/testdata/p4_14_samples_outputs/counter1-first.p4 index e8cb351a74a..0d4445e527f 100644 --- a/testdata/p4_14_samples_outputs/counter1-first.p4 +++ b/testdata/p4_14_samples_outputs/counter1-first.p4 @@ -34,8 +34,8 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ standard_metadata.egress_spec = port; } @name(".act") action act_0(bit<9> port) { - standard_metadata.egress_spec = port; cnt.count(); + standard_metadata.egress_spec = port; } @name("tab1") table tab1 { actions = { diff --git a/testdata/p4_14_samples_outputs/counter1.p4 b/testdata/p4_14_samples_outputs/counter1.p4 index cfa3a9e71a5..e28ea6023ae 100644 --- a/testdata/p4_14_samples_outputs/counter1.p4 +++ b/testdata/p4_14_samples_outputs/counter1.p4 @@ -31,11 +31,11 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name("cnt") direct_counter(CounterType.packets) cnt; @name(".act") action act(bit<9> port) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name(".act") action act_0(bit<9> port) { cnt.count(); - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name("tab1") table tab1 { actions = { diff --git a/testdata/p4_14_samples_outputs/counter2-first.p4 b/testdata/p4_14_samples_outputs/counter2-first.p4 index 2423c4fd00c..eeb25b71daa 100644 --- a/testdata/p4_14_samples_outputs/counter2-first.p4 +++ b/testdata/p4_14_samples_outputs/counter2-first.p4 @@ -34,8 +34,8 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ standard_metadata.egress_spec = port; } @name(".act") action act_0(bit<9> port) { - standard_metadata.egress_spec = port; cnt.count(); + standard_metadata.egress_spec = port; } @name("tab1") table tab1 { actions = { diff --git a/testdata/p4_14_samples_outputs/counter2.p4 b/testdata/p4_14_samples_outputs/counter2.p4 index 174115a687d..b22ad012a05 100644 --- a/testdata/p4_14_samples_outputs/counter2.p4 +++ b/testdata/p4_14_samples_outputs/counter2.p4 @@ -31,11 +31,11 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name("cnt") direct_counter(CounterType.packets) cnt; @name(".act") action act(bit<9> port) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name(".act") action act_0(bit<9> port) { cnt.count(); - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name("tab1") table tab1 { actions = { diff --git a/testdata/p4_14_samples_outputs/counter3-first.p4 b/testdata/p4_14_samples_outputs/counter3-first.p4 index e8185a42c7e..dd15b2c4278 100644 --- a/testdata/p4_14_samples_outputs/counter3-first.p4 +++ b/testdata/p4_14_samples_outputs/counter3-first.p4 @@ -34,8 +34,8 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ standard_metadata.egress_spec = port; } @name(".act") action act_0(bit<9> port) { - standard_metadata.egress_spec = port; cnt.count(); + standard_metadata.egress_spec = port; } @name("tab1") table tab1 { actions = { diff --git a/testdata/p4_14_samples_outputs/counter3.p4 b/testdata/p4_14_samples_outputs/counter3.p4 index 502d8805b7b..600c5ff17cb 100644 --- a/testdata/p4_14_samples_outputs/counter3.p4 +++ b/testdata/p4_14_samples_outputs/counter3.p4 @@ -31,11 +31,11 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name("cnt") direct_counter(CounterType.bytes) cnt; @name(".act") action act(bit<9> port) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name(".act") action act_0(bit<9> port) { cnt.count(); - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name("tab1") table tab1 { actions = { diff --git a/testdata/p4_14_samples_outputs/counter4.p4 b/testdata/p4_14_samples_outputs/counter4.p4 index 96bbdfbe2f0..e360e16c0f8 100644 --- a/testdata/p4_14_samples_outputs/counter4.p4 +++ b/testdata/p4_14_samples_outputs/counter4.p4 @@ -31,7 +31,7 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name("cntDum") counter(32w200, CounterType.packets) cntDum; @name(".act") action act(bit<9> port, bit<8> idx) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; cntDum.count((bit<32>)idx); } @name("tab1") table tab1 { diff --git a/testdata/p4_14_samples_outputs/counter5.p4 b/testdata/p4_14_samples_outputs/counter5.p4 index dec0c934056..3f431e0b89b 100644 --- a/testdata/p4_14_samples_outputs/counter5.p4 +++ b/testdata/p4_14_samples_outputs/counter5.p4 @@ -31,7 +31,7 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name("cntDum") @min_width(64) counter(32w70000, CounterType.packets) cntDum; @name(".act") action act(bit<9> port, bit<17> idx) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; cntDum.count((bit<32>)idx); } @name("tab1") table tab1 { diff --git a/testdata/p4_14_samples_outputs/exact_match1.p4 b/testdata/p4_14_samples_outputs/exact_match1.p4 index 572293096c9..78660fa87ee 100644 --- a/testdata/p4_14_samples_outputs/exact_match1.p4 +++ b/testdata/p4_14_samples_outputs/exact_match1.p4 @@ -26,8 +26,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/exact_match2.p4 b/testdata/p4_14_samples_outputs/exact_match2.p4 index b042758f5db..904af4273ca 100644 --- a/testdata/p4_14_samples_outputs/exact_match2.p4 +++ b/testdata/p4_14_samples_outputs/exact_match2.p4 @@ -26,8 +26,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/exact_match3.p4 b/testdata/p4_14_samples_outputs/exact_match3.p4 index 013f2ff5e1e..bdaec5295c6 100644 --- a/testdata/p4_14_samples_outputs/exact_match3.p4 +++ b/testdata/p4_14_samples_outputs/exact_match3.p4 @@ -26,8 +26,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/exact_match4.p4 b/testdata/p4_14_samples_outputs/exact_match4.p4 index 13f7ca04e73..37925b155bd 100644 --- a/testdata/p4_14_samples_outputs/exact_match4.p4 +++ b/testdata/p4_14_samples_outputs/exact_match4.p4 @@ -54,8 +54,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/exact_match5.p4 b/testdata/p4_14_samples_outputs/exact_match5.p4 index 4b550429dca..bfa2c2f97e1 100644 --- a/testdata/p4_14_samples_outputs/exact_match5.p4 +++ b/testdata/p4_14_samples_outputs/exact_match5.p4 @@ -54,8 +54,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/exact_match6.p4 b/testdata/p4_14_samples_outputs/exact_match6.p4 index 719061fc3f9..a9948bd0316 100644 --- a/testdata/p4_14_samples_outputs/exact_match6.p4 +++ b/testdata/p4_14_samples_outputs/exact_match6.p4 @@ -35,7 +35,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".addf2") action addf2() { - meta.meta.sum = hdr.data.f2 + 32w100; + meta.meta.sum = (bit<32>)(hdr.data.f2 + 32w100); } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/exact_match7.p4 b/testdata/p4_14_samples_outputs/exact_match7.p4 index 515ad371ec3..19695751200 100644 --- a/testdata/p4_14_samples_outputs/exact_match7.p4 +++ b/testdata/p4_14_samples_outputs/exact_match7.p4 @@ -33,7 +33,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val) { - hdr.data.b1 = val; + hdr.data.b1 = (bit<8>)val; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/exact_match8.p4 b/testdata/p4_14_samples_outputs/exact_match8.p4 index 4d541e0570e..26bac06e34f 100644 --- a/testdata/p4_14_samples_outputs/exact_match8.p4 +++ b/testdata/p4_14_samples_outputs/exact_match8.p4 @@ -31,40 +31,40 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name(".noop") action noop() { } @name(".setb1") action setb1(bit<8> val) { - hdr.data.b1 = val; + hdr.data.b1 = (bit<8>)val; } @name(".setb2") action setb2(bit<8> val) { - hdr.data.b2 = val; + hdr.data.b2 = (bit<8>)val; } @name(".setb3") action setb3(bit<8> val) { - hdr.data.b3 = val; + hdr.data.b3 = (bit<8>)val; } @name(".setb4") action setb4(bit<8> val) { - hdr.data.b4 = val; + hdr.data.b4 = (bit<8>)val; } @name(".setb12") action setb12(bit<8> v1, bit<8> v2) { - hdr.data.b1 = v1; - hdr.data.b2 = v2; + hdr.data.b1 = (bit<8>)v1; + hdr.data.b2 = (bit<8>)v2; } @name(".setb13") action setb13(bit<8> v1, bit<8> v2) { - hdr.data.b1 = v1; - hdr.data.b3 = v2; + hdr.data.b1 = (bit<8>)v1; + hdr.data.b3 = (bit<8>)v2; } @name(".setb14") action setb14(bit<8> v1, bit<8> v2) { - hdr.data.b1 = v1; - hdr.data.b4 = v2; + hdr.data.b1 = (bit<8>)v1; + hdr.data.b4 = (bit<8>)v2; } @name(".setb23") action setb23(bit<8> v1, bit<8> v2) { - hdr.data.b2 = v1; - hdr.data.b3 = v2; + hdr.data.b2 = (bit<8>)v1; + hdr.data.b3 = (bit<8>)v2; } @name(".setb24") action setb24(bit<8> v1, bit<8> v2) { - hdr.data.b2 = v1; - hdr.data.b4 = v2; + hdr.data.b2 = (bit<8>)v1; + hdr.data.b4 = (bit<8>)v2; } @name(".setb34") action setb34(bit<8> v1, bit<8> v2) { - hdr.data.b3 = v1; - hdr.data.b4 = v2; + hdr.data.b3 = (bit<8>)v1; + hdr.data.b4 = (bit<8>)v2; } @name("test1") table test1 { actions = { diff --git a/testdata/p4_14_samples_outputs/exact_match9.p4 b/testdata/p4_14_samples_outputs/exact_match9.p4 index f5a9604fa8c..c022933b483 100644 --- a/testdata/p4_14_samples_outputs/exact_match9.p4 +++ b/testdata/p4_14_samples_outputs/exact_match9.p4 @@ -31,16 +31,16 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name(".noop") action noop() { } @name(".setb1") action setb1(bit<8> val) { - hdr.data.b1 = val; + hdr.data.b1 = (bit<8>)val; } @name(".setb2") action setb2(bit<8> val) { - hdr.data.b2 = val; + hdr.data.b2 = (bit<8>)val; } @name(".setb3") action setb3(bit<8> val) { - hdr.data.b3 = val; + hdr.data.b3 = (bit<8>)val; } @name(".setb4") action setb4(bit<8> val) { - hdr.data.b4 = val; + hdr.data.b4 = (bit<8>)val; } @name("test1") table test1 { actions = { diff --git a/testdata/p4_14_samples_outputs/exact_match_mask1.p4 b/testdata/p4_14_samples_outputs/exact_match_mask1.p4 index bcbde565ad4..5b4d88ecd39 100644 --- a/testdata/p4_14_samples_outputs/exact_match_mask1.p4 +++ b/testdata/p4_14_samples_outputs/exact_match_mask1.p4 @@ -26,8 +26,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/exact_match_valid1.p4 b/testdata/p4_14_samples_outputs/exact_match_valid1.p4 index c88e0f98f01..f41dc793417 100644 --- a/testdata/p4_14_samples_outputs/exact_match_valid1.p4 +++ b/testdata/p4_14_samples_outputs/exact_match_valid1.p4 @@ -38,8 +38,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/flowlet_switching-first.p4 b/testdata/p4_14_samples_outputs/flowlet_switching-first.p4 index a311c6ade1e..14b5badb887 100644 --- a/testdata/p4_14_samples_outputs/flowlet_switching-first.p4 +++ b/testdata/p4_14_samples_outputs/flowlet_switching-first.p4 @@ -143,7 +143,7 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ } @name(".update_flowlet_id") action update_flowlet_id() { meta.ingress_metadata.flowlet_id = meta.ingress_metadata.flowlet_id + 16w1; - flowlet_id.write((bit<32>)meta.ingress_metadata.flowlet_map_index, (bit<16>)meta.ingress_metadata.flowlet_id); + flowlet_id.write((bit<32>)meta.ingress_metadata.flowlet_map_index, meta.ingress_metadata.flowlet_id); } @name("ecmp_group") table ecmp_group { actions = { diff --git a/testdata/p4_14_samples_outputs/flowlet_switching.p4 b/testdata/p4_14_samples_outputs/flowlet_switching.p4 index 70bf1c7ef9e..1820103ada1 100644 --- a/testdata/p4_14_samples_outputs/flowlet_switching.p4 +++ b/testdata/p4_14_samples_outputs/flowlet_switching.p4 @@ -94,7 +94,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".rewrite_mac") action rewrite_mac(bit<48> smac) { - hdr.ethernet.srcAddr = smac; + hdr.ethernet.srcAddr = (bit<48>)smac; } @name("._drop") action _drop() { mark_to_drop(); @@ -126,23 +126,23 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ hash(meta.ingress_metadata.ecmp_offset, HashAlgorithm.crc16, (bit<10>)ecmp_base, { hdr.ipv4.srcAddr, hdr.ipv4.dstAddr, hdr.ipv4.protocol, hdr.tcp.srcPort, hdr.tcp.dstPort, meta.ingress_metadata.flowlet_id }, (bit<20>)ecmp_count); } @name(".set_nhop") action set_nhop(bit<32> nhop_ipv4, bit<9> port) { - meta.ingress_metadata.nhop_ipv4 = nhop_ipv4; - standard_metadata.egress_spec = port; - hdr.ipv4.ttl = hdr.ipv4.ttl + 8w255; + meta.ingress_metadata.nhop_ipv4 = (bit<32>)nhop_ipv4; + standard_metadata.egress_spec = (bit<9>)port; + hdr.ipv4.ttl = (bit<8>)(hdr.ipv4.ttl + 8w255); } @name(".lookup_flowlet_map") action lookup_flowlet_map() { hash(meta.ingress_metadata.flowlet_map_index, HashAlgorithm.crc16, (bit<13>)0, { hdr.ipv4.srcAddr, hdr.ipv4.dstAddr, hdr.ipv4.protocol, hdr.tcp.srcPort, hdr.tcp.dstPort }, (bit<26>)13); flowlet_id.read(meta.ingress_metadata.flowlet_id, (bit<32>)meta.ingress_metadata.flowlet_map_index); - meta.ingress_metadata.flow_ipg = meta.intrinsic_metadata.ingress_global_timestamp; + meta.ingress_metadata.flow_ipg = (bit<32>)meta.intrinsic_metadata.ingress_global_timestamp; flowlet_lasttime.read(meta.ingress_metadata.flowlet_lasttime, (bit<32>)meta.ingress_metadata.flowlet_map_index); - meta.ingress_metadata.flow_ipg = meta.ingress_metadata.flow_ipg - meta.ingress_metadata.flowlet_lasttime; + meta.ingress_metadata.flow_ipg = (bit<32>)(meta.ingress_metadata.flow_ipg - meta.ingress_metadata.flowlet_lasttime); flowlet_lasttime.write((bit<32>)meta.ingress_metadata.flowlet_map_index, (bit<32>)meta.intrinsic_metadata.ingress_global_timestamp); } @name(".set_dmac") action set_dmac(bit<48> dmac) { - hdr.ethernet.dstAddr = dmac; + hdr.ethernet.dstAddr = (bit<48>)dmac; } @name(".update_flowlet_id") action update_flowlet_id() { - meta.ingress_metadata.flowlet_id = meta.ingress_metadata.flowlet_id + 16w1; + meta.ingress_metadata.flowlet_id = (bit<16>)(meta.ingress_metadata.flowlet_id + 16w1); flowlet_id.write((bit<32>)meta.ingress_metadata.flowlet_map_index, (bit<16>)meta.ingress_metadata.flowlet_id); } @name("ecmp_group") table ecmp_group { diff --git a/testdata/p4_14_samples_outputs/gateway1.p4 b/testdata/p4_14_samples_outputs/gateway1.p4 index df55aa6762a..d29905a1be6 100644 --- a/testdata/p4_14_samples_outputs/gateway1.p4 +++ b/testdata/p4_14_samples_outputs/gateway1.p4 @@ -25,8 +25,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/gateway2.p4 b/testdata/p4_14_samples_outputs/gateway2.p4 index 4f9f6a547d9..8b1121bb743 100644 --- a/testdata/p4_14_samples_outputs/gateway2.p4 +++ b/testdata/p4_14_samples_outputs/gateway2.p4 @@ -27,8 +27,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/gateway3.p4 b/testdata/p4_14_samples_outputs/gateway3.p4 index 0f37bc8f51a..7fe8e1892be 100644 --- a/testdata/p4_14_samples_outputs/gateway3.p4 +++ b/testdata/p4_14_samples_outputs/gateway3.p4 @@ -27,8 +27,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/gateway4.p4 b/testdata/p4_14_samples_outputs/gateway4.p4 index f66dede7cc1..e38a52510fd 100644 --- a/testdata/p4_14_samples_outputs/gateway4.p4 +++ b/testdata/p4_14_samples_outputs/gateway4.p4 @@ -41,8 +41,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/gateway5.p4 b/testdata/p4_14_samples_outputs/gateway5.p4 index b2aa813baf0..377ca5a5f43 100644 --- a/testdata/p4_14_samples_outputs/gateway5.p4 +++ b/testdata/p4_14_samples_outputs/gateway5.p4 @@ -33,7 +33,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".output") action output(bit<9> port) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/gateway6.p4 b/testdata/p4_14_samples_outputs/gateway6.p4 index 0d096f97f13..61042e63316 100644 --- a/testdata/p4_14_samples_outputs/gateway6.p4 +++ b/testdata/p4_14_samples_outputs/gateway6.p4 @@ -27,7 +27,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".output") action output(bit<9> port) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/gateway7.p4 b/testdata/p4_14_samples_outputs/gateway7.p4 index de92541079d..2cfbd1e5559 100644 --- a/testdata/p4_14_samples_outputs/gateway7.p4 +++ b/testdata/p4_14_samples_outputs/gateway7.p4 @@ -27,7 +27,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".output") action output(bit<9> port) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/gateway8.p4 b/testdata/p4_14_samples_outputs/gateway8.p4 index 93fe4e6f4de..30898183863 100644 --- a/testdata/p4_14_samples_outputs/gateway8.p4 +++ b/testdata/p4_14_samples_outputs/gateway8.p4 @@ -25,8 +25,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/hash_action_basic.p4 b/testdata/p4_14_samples_outputs/hash_action_basic.p4 index d4ff7a352e3..e92a0020e71 100644 --- a/testdata/p4_14_samples_outputs/hash_action_basic.p4 +++ b/testdata/p4_14_samples_outputs/hash_action_basic.p4 @@ -34,8 +34,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name("count1") @min_width(32) counter(32w16384, CounterType.packets) count1; @name(".set_index") action set_index(bit<16> index, bit<9> port) { - meta.counter_metadata.counter_index = index; - standard_metadata.egress_spec = port; + meta.counter_metadata.counter_index = (bit<16>)index; + standard_metadata.egress_spec = (bit<9>)port; } @name(".count_entries") action count_entries() { count1.count((bit<32>)meta.counter_metadata.counter_index); diff --git a/testdata/p4_14_samples_outputs/hash_action_gateway.p4 b/testdata/p4_14_samples_outputs/hash_action_gateway.p4 index 0240eb9591d..09f1b4617f5 100644 --- a/testdata/p4_14_samples_outputs/hash_action_gateway.p4 +++ b/testdata/p4_14_samples_outputs/hash_action_gateway.p4 @@ -35,9 +35,9 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name("count1") @min_width(32) counter(32w16384, CounterType.packets) count1; @name(".set_index") action set_index(bit<16> index, bit<9> port) { - meta.counter_metadata.counter_index = index; - standard_metadata.egress_spec = port; - meta.counter_metadata.counter_run = 4w1; + meta.counter_metadata.counter_index = (bit<16>)index; + standard_metadata.egress_spec = (bit<9>)port; + meta.counter_metadata.counter_run = (bit<4>)4w1; } @name(".count_entries") action count_entries() { count1.count((bit<32>)meta.counter_metadata.counter_index); diff --git a/testdata/p4_14_samples_outputs/hash_action_gateway2.p4 b/testdata/p4_14_samples_outputs/hash_action_gateway2.p4 index 315211c30d1..97ae4ae692f 100644 --- a/testdata/p4_14_samples_outputs/hash_action_gateway2.p4 +++ b/testdata/p4_14_samples_outputs/hash_action_gateway2.p4 @@ -35,18 +35,18 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name("count1") @min_width(32) counter(32w16384, CounterType.packets) count1; @name(".set_index") action set_index(bit<16> index, bit<9> port) { - meta.counter_metadata.counter_index = index; - standard_metadata.egress_spec = port; - meta.counter_metadata.counter_run = 4w1; + meta.counter_metadata.counter_index = (bit<16>)index; + standard_metadata.egress_spec = (bit<9>)port; + meta.counter_metadata.counter_run = (bit<4>)4w1; } @name(".count_entries") action count_entries() { count1.count((bit<32>)meta.counter_metadata.counter_index); } @name(".seth2") action seth2(bit<16> val) { - hdr.data.h2 = val; + hdr.data.h2 = (bit<16>)val; } @name(".seth4") action seth4(bit<16> val) { - hdr.data.h4 = val; + hdr.data.h4 = (bit<16>)val; } @name("index_setter") table index_setter { actions = { diff --git a/testdata/p4_14_samples_outputs/hash_action_two_same.p4 b/testdata/p4_14_samples_outputs/hash_action_two_same.p4 index e2d06df6310..7a71db4892c 100644 --- a/testdata/p4_14_samples_outputs/hash_action_two_same.p4 +++ b/testdata/p4_14_samples_outputs/hash_action_two_same.p4 @@ -44,9 +44,9 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name("count1") @min_width(32) counter(32w16384, CounterType.packets) count1; @name("meter1") meter(32w1024, MeterType.bytes) meter1; @name(".set_index") action set_index(bit<16> index, bit<9> port) { - meta.counter_metadata.counter_index = index; - meta.meter_metadata.meter_index = index; - standard_metadata.egress_spec = port; + meta.counter_metadata.counter_index = (bit<16>)index; + meta.meter_metadata.meter_index = (bit<16>)index; + standard_metadata.egress_spec = (bit<9>)port; } @name(".count_entries") action count_entries() { count1.count((bit<32>)meta.counter_metadata.counter_index); diff --git a/testdata/p4_14_samples_outputs/hash_action_two_separate.p4 b/testdata/p4_14_samples_outputs/hash_action_two_separate.p4 index a1572d9608a..dc2fe986ae5 100644 --- a/testdata/p4_14_samples_outputs/hash_action_two_separate.p4 +++ b/testdata/p4_14_samples_outputs/hash_action_two_separate.p4 @@ -36,9 +36,9 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name("count1") @min_width(32) counter(32w16384, CounterType.packets) count1; @name("count2") @min_width(32) counter(32w16384, CounterType.packets) count2; @name(".set_index") action set_index(bit<16> index1, bit<16> index2, bit<9> port) { - meta.counter_metadata.counter_index_first = index1; - meta.counter_metadata.counter_index_second = index2; - standard_metadata.egress_spec = port; + meta.counter_metadata.counter_index_first = (bit<16>)index1; + meta.counter_metadata.counter_index_second = (bit<16>)index2; + standard_metadata.egress_spec = (bit<9>)port; } @name(".count_entries") action count_entries() { count1.count((bit<32>)meta.counter_metadata.counter_index_first); diff --git a/testdata/p4_14_samples_outputs/hit.p4 b/testdata/p4_14_samples_outputs/hit.p4 index 8825971980d..0d36f42885d 100644 --- a/testdata/p4_14_samples_outputs/hit.p4 +++ b/testdata/p4_14_samples_outputs/hit.p4 @@ -28,8 +28,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/hitmiss.p4 b/testdata/p4_14_samples_outputs/hitmiss.p4 index 3eabc9984ff..b7d98fb42fb 100644 --- a/testdata/p4_14_samples_outputs/hitmiss.p4 +++ b/testdata/p4_14_samples_outputs/hitmiss.p4 @@ -28,8 +28,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/instruct2.p4 b/testdata/p4_14_samples_outputs/instruct2.p4 index 3155665baba..1b17b4a9c9a 100644 --- a/testdata/p4_14_samples_outputs/instruct2.p4 +++ b/testdata/p4_14_samples_outputs/instruct2.p4 @@ -29,16 +29,16 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".do_add") action do_add() { - hdr.data.b3 = hdr.data.b1 + hdr.data.b2; + hdr.data.b3 = (bit<8>)(hdr.data.b1 + hdr.data.b2); } @name(".do_and") action do_and() { - hdr.data.b2 = hdr.data.b3 & hdr.data.b4; + hdr.data.b2 = (bit<8>)(hdr.data.b3 & hdr.data.b4); } @name(".do_or") action do_or() { - hdr.data.b4 = hdr.data.b3 | hdr.data.b1; + hdr.data.b4 = (bit<8>)(hdr.data.b3 | hdr.data.b1); } @name(".do_xor") action do_xor() { - hdr.data.b1 = hdr.data.b2 ^ hdr.data.b3; + hdr.data.b1 = (bit<8>)(hdr.data.b2 ^ hdr.data.b3); } @name("test1") table test1 { actions = { diff --git a/testdata/p4_14_samples_outputs/instruct3.p4 b/testdata/p4_14_samples_outputs/instruct3.p4 index 167cf279e10..1d20dadb2e5 100644 --- a/testdata/p4_14_samples_outputs/instruct3.p4 +++ b/testdata/p4_14_samples_outputs/instruct3.p4 @@ -27,8 +27,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setx") action setx() { - hdr.data.x2 = 2w2; - hdr.data.x4 = 2w1; + hdr.data.x2 = (bit<2>)2w2; + hdr.data.x4 = (bit<2>)2w1; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/instruct4.p4 b/testdata/p4_14_samples_outputs/instruct4.p4 index 293c5005313..966215994ce 100644 --- a/testdata/p4_14_samples_outputs/instruct4.p4 +++ b/testdata/p4_14_samples_outputs/instruct4.p4 @@ -29,7 +29,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setf4") action setf4() { - hdr.data.f4 = 32w0x70a50; + hdr.data.f4 = (bit<32>)32w0x70a50; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/instruct5.p4 b/testdata/p4_14_samples_outputs/instruct5.p4 index 775685d5a30..66f3ef34267 100644 --- a/testdata/p4_14_samples_outputs/instruct5.p4 +++ b/testdata/p4_14_samples_outputs/instruct5.p4 @@ -44,26 +44,26 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".output") action output(bit<9> port) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } @name(".push1") action push1(bit<24> x1) { hdr.extra.push_front(1); - hdr.extra[0].x1 = x1; - hdr.extra[0].more = hdr.data.more; - hdr.data.more = 8w1; + hdr.extra[0].x1 = (bit<24>)x1; + hdr.extra[0].more = (bit<8>)hdr.data.more; + hdr.data.more = (bit<8>)8w1; } @name(".push2") action push2(bit<24> x1, bit<24> x2) { hdr.extra.push_front(2); - hdr.extra[0].x1 = x1; - hdr.extra[0].more = 8w1; - hdr.extra[1].x1 = x2; - hdr.extra[1].more = hdr.data.more; - hdr.data.more = 8w1; + hdr.extra[0].x1 = (bit<24>)x1; + hdr.extra[0].more = (bit<8>)8w1; + hdr.extra[1].x1 = (bit<24>)x2; + hdr.extra[1].more = (bit<8>)hdr.data.more; + hdr.data.more = (bit<8>)8w1; } @name(".pop1") action pop1() { - hdr.data.more = hdr.extra[0].more; + hdr.data.more = (bit<8>)hdr.extra[0].more; hdr.extra.pop_front(1); } @name("output") table output_0 { diff --git a/testdata/p4_14_samples_outputs/mac_rewrite.p4 b/testdata/p4_14_samples_outputs/mac_rewrite.p4 index 919f4bfddb0..0199a796f0d 100644 --- a/testdata/p4_14_samples_outputs/mac_rewrite.p4 +++ b/testdata/p4_14_samples_outputs/mac_rewrite.p4 @@ -88,24 +88,24 @@ control process_mac_rewrite(inout headers hdr, inout metadata meta, inout standa @name(".nop") action nop() { } @name(".rewrite_ipv4_unicast_mac") action rewrite_ipv4_unicast_mac(bit<48> smac) { - hdr.ethernet.srcAddr = smac; - hdr.ethernet.dstAddr = meta.egress_metadata.mac_da; - hdr.ipv4.ttl = hdr.ipv4.ttl + 8w255; + hdr.ethernet.srcAddr = (bit<48>)smac; + hdr.ethernet.dstAddr = (bit<48>)meta.egress_metadata.mac_da; + hdr.ipv4.ttl = (bit<8>)(hdr.ipv4.ttl + 8w255); } @name(".rewrite_ipv4_multicast_mac") action rewrite_ipv4_multicast_mac(bit<48> smac) { - hdr.ethernet.srcAddr = smac; + hdr.ethernet.srcAddr = (bit<48>)smac; hdr.ethernet.dstAddr[47:23] = 48w0x1005e000000[47:23]; - hdr.ipv4.ttl = hdr.ipv4.ttl + 8w255; + hdr.ipv4.ttl = (bit<8>)(hdr.ipv4.ttl + 8w255); } @name(".rewrite_ipv6_unicast_mac") action rewrite_ipv6_unicast_mac(bit<48> smac) { - hdr.ethernet.srcAddr = smac; - hdr.ethernet.dstAddr = meta.egress_metadata.mac_da; - hdr.ipv6.hopLimit = hdr.ipv6.hopLimit + 8w255; + hdr.ethernet.srcAddr = (bit<48>)smac; + hdr.ethernet.dstAddr = (bit<48>)meta.egress_metadata.mac_da; + hdr.ipv6.hopLimit = (bit<8>)(hdr.ipv6.hopLimit + 8w255); } @name(".rewrite_ipv6_multicast_mac") action rewrite_ipv6_multicast_mac(bit<48> smac) { - hdr.ethernet.srcAddr = smac; + hdr.ethernet.srcAddr = (bit<48>)smac; hdr.ethernet.dstAddr[47:32] = 48w0x333300000000[47:32]; - hdr.ipv6.hopLimit = hdr.ipv6.hopLimit + 8w255; + hdr.ipv6.hopLimit = (bit<8>)(hdr.ipv6.hopLimit + 8w255); } @name("mac_rewrite") table mac_rewrite { actions = { @@ -133,9 +133,9 @@ control process_mac_rewrite(inout headers hdr, inout metadata meta, inout standa control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".do_setup") action do_setup(bit<9> idx, bit<1> routed) { - meta.egress_metadata.mac_da = hdr.ethernet.dstAddr; - meta.egress_metadata.smac_idx = idx; - meta.egress_metadata.routed = routed; + meta.egress_metadata.mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.egress_metadata.smac_idx = (bit<9>)idx; + meta.egress_metadata.routed = (bit<1>)routed; } @name("setup") table setup { actions = { diff --git a/testdata/p4_14_samples_outputs/meter.p4 b/testdata/p4_14_samples_outputs/meter.p4 index 576c482e856..f6b012c0b02 100644 --- a/testdata/p4_14_samples_outputs/meter.p4 +++ b/testdata/p4_14_samples_outputs/meter.p4 @@ -54,7 +54,7 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ } @name(".m_action") action m_action(bit<14> meter_idx) { my_meter.execute_meter((bit<32>)meter_idx, meta.meta.meter_tag); - standard_metadata.egress_spec = 9w1; + standard_metadata.egress_spec = (bit<9>)9w1; } @name("m_filter") table m_filter { actions = { diff --git a/testdata/p4_14_samples_outputs/meter1-first.p4 b/testdata/p4_14_samples_outputs/meter1-first.p4 index 349b682f063..b9f84bddbde 100644 --- a/testdata/p4_14_samples_outputs/meter1-first.p4 +++ b/testdata/p4_14_samples_outputs/meter1-first.p4 @@ -69,9 +69,9 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ default_action = NoAction(); } @name(".m_action") action m_action_0(bit<9> meter_idx) { + my_meter.read(meta.meta.meter_tag); standard_metadata.egress_spec = meter_idx; standard_metadata.egress_spec = 9w1; - my_meter.read(meta.meta.meter_tag); } @name("._nop") action _nop_0() { my_meter.read(meta.meta.meter_tag); diff --git a/testdata/p4_14_samples_outputs/meter1.p4 b/testdata/p4_14_samples_outputs/meter1.p4 index 9f8b9a86dee..b7c53bd6fc3 100644 --- a/testdata/p4_14_samples_outputs/meter1.p4 +++ b/testdata/p4_14_samples_outputs/meter1.p4 @@ -53,8 +53,8 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name("._nop") action _nop() { } @name(".m_action") action m_action(bit<9> meter_idx) { - standard_metadata.egress_spec = meter_idx; - standard_metadata.egress_spec = 9w1; + standard_metadata.egress_spec = (bit<9>)meter_idx; + standard_metadata.egress_spec = (bit<9>)9w1; } @name("m_filter") table m_filter { actions = { @@ -70,8 +70,8 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ } @name(".m_action") action m_action_0(bit<9> meter_idx) { my_meter.read(meta.meta.meter_tag); - standard_metadata.egress_spec = meter_idx; - standard_metadata.egress_spec = 9w1; + standard_metadata.egress_spec = (bit<9>)meter_idx; + standard_metadata.egress_spec = (bit<9>)9w1; } @name("._nop") action _nop_0() { my_meter.read(meta.meta.meter_tag); diff --git a/testdata/p4_14_samples_outputs/misc_prim.p4 b/testdata/p4_14_samples_outputs/misc_prim.p4 index ebc47ceeaa2..bde92ccc0e2 100644 --- a/testdata/p4_14_samples_outputs/misc_prim.p4 +++ b/testdata/p4_14_samples_outputs/misc_prim.p4 @@ -37,46 +37,46 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".action_0") action action_0() { - hdr.pkt.field_a_32 = ~(hdr.pkt.field_b_32 | (int<32>)hdr.pkt.field_c_32); + hdr.pkt.field_a_32 = (bit<32>)~(hdr.pkt.field_b_32 | (int<32>)hdr.pkt.field_c_32); } @name(".action_1") action action_1(bit<32> param0) { - hdr.pkt.field_a_32 = ~(param0 & hdr.pkt.field_c_32); + hdr.pkt.field_a_32 = (bit<32>)~(param0 & hdr.pkt.field_c_32); } @name(".action_2") action action_2(bit<32> param0) { - hdr.pkt.field_a_32 = ~(hdr.pkt.field_b_32 ^ (int<32>)param0); + hdr.pkt.field_a_32 = (bit<32>)~(hdr.pkt.field_b_32 ^ (int<32>)param0); } @name(".action_3") action action_3() { - hdr.pkt.field_a_32 = ~hdr.pkt.field_d_32; + hdr.pkt.field_a_32 = (bit<32>)~hdr.pkt.field_d_32; } @name(".action_4") action action_4(bit<32> param0) { - hdr.pkt.field_a_32 = (hdr.pkt.field_d_32 <= param0 ? hdr.pkt.field_d_32 : param0); + hdr.pkt.field_a_32 = (bit<32>)(hdr.pkt.field_d_32 <= param0 ? hdr.pkt.field_d_32 : param0); } @name(".action_5") action action_5(bit<32> param0) { - hdr.pkt.field_a_32 = (param0 >= hdr.pkt.field_d_32 ? param0 : hdr.pkt.field_d_32); + hdr.pkt.field_a_32 = (bit<32>)(param0 >= hdr.pkt.field_d_32 ? param0 : hdr.pkt.field_d_32); } @name(".action_6") action action_6() { - hdr.pkt.field_b_32 = (hdr.pkt.field_d_32 <= (bit<32>)32s7 ? hdr.pkt.field_d_32 : (bit<32>)32s7); + hdr.pkt.field_b_32 = (int<32>)(hdr.pkt.field_d_32 <= (bit<32>)32s7 ? hdr.pkt.field_d_32 : (bit<32>)32s7); } @name(".action_7") action action_7(int<32> param0) { - hdr.pkt.field_b_32 = (param0 >= (int<32>)hdr.pkt.field_d_32 ? param0 : (int<32>)hdr.pkt.field_d_32); + hdr.pkt.field_b_32 = (int<32>)(param0 >= (int<32>)hdr.pkt.field_d_32 ? param0 : (int<32>)hdr.pkt.field_d_32); } @name(".action_8") action action_8(int<32> param0) { - hdr.pkt.field_x_32 = (hdr.pkt.field_x_32 >= param0 ? hdr.pkt.field_x_32 : param0); + hdr.pkt.field_x_32 = (int<32>)(hdr.pkt.field_x_32 >= param0 ? hdr.pkt.field_x_32 : param0); } @name(".action_9") action action_9() { - hdr.pkt.field_x_32 = hdr.pkt.field_x_32 >> 7; + hdr.pkt.field_x_32 = (int<32>)(hdr.pkt.field_x_32 >> 7); } @name(".action_10") action action_10(bit<32> param0) { - hdr.pkt.field_a_32 = ~param0 & hdr.pkt.field_a_32; + hdr.pkt.field_a_32 = (bit<32>)(~param0 & hdr.pkt.field_a_32); } @name(".action_11") action action_11(bit<32> param0) { - hdr.pkt.field_a_32 = param0 & ~hdr.pkt.field_a_32; + hdr.pkt.field_a_32 = (bit<32>)(param0 & ~hdr.pkt.field_a_32); } @name(".action_12") action action_12(bit<32> param0) { - hdr.pkt.field_a_32 = ~param0 | hdr.pkt.field_a_32; + hdr.pkt.field_a_32 = (bit<32>)(~param0 | hdr.pkt.field_a_32); } @name(".action_13") action action_13(bit<32> param0) { - hdr.pkt.field_a_32 = param0 | ~hdr.pkt.field_a_32; + hdr.pkt.field_a_32 = (bit<32>)(param0 | ~hdr.pkt.field_a_32); } @name(".do_nothing") action do_nothing() { } diff --git a/testdata/p4_14_samples_outputs/miss.p4 b/testdata/p4_14_samples_outputs/miss.p4 index 1aedaa5a760..b05b8b021ab 100644 --- a/testdata/p4_14_samples_outputs/miss.p4 +++ b/testdata/p4_14_samples_outputs/miss.p4 @@ -28,8 +28,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/overflow.p4 b/testdata/p4_14_samples_outputs/overflow.p4 index d7044ce5cf4..5247638caca 100644 --- a/testdata/p4_14_samples_outputs/overflow.p4 +++ b/testdata/p4_14_samples_outputs/overflow.p4 @@ -27,8 +27,8 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".action_1_1") action action_1_1(bit<1> value) { - meta.md.field_1_1_1 = value; - meta.md.field_2_1_1 = 1w1; + meta.md.field_1_1_1 = (bit<1>)value; + meta.md.field_2_1_1 = (bit<1>)1w1; } @name("dmac") table dmac { actions = { diff --git a/testdata/p4_14_samples_outputs/packet_redirect-first.p4 b/testdata/p4_14_samples_outputs/packet_redirect-first.p4 index 890a8ae5eeb..df92422157e 100644 --- a/testdata/p4_14_samples_outputs/packet_redirect-first.p4 +++ b/testdata/p4_14_samples_outputs/packet_redirect-first.p4 @@ -54,7 +54,7 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t recirculate>({ standard_metadata, meta.metaA }); } @name("._clone_e2e") action _clone_e2e(bit<32> mirror_id) { - clone3>(CloneType.E2E, (bit<32>)mirror_id, { standard_metadata, meta.metaA }); + clone3>(CloneType.E2E, mirror_id, { standard_metadata, meta.metaA }); } @name("t_egress") table t_egress { actions = { @@ -89,7 +89,7 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ resubmit>({ standard_metadata, meta.metaA }); } @name("._clone_i2e") action _clone_i2e(bit<32> mirror_id) { - clone3>(CloneType.I2E, (bit<32>)mirror_id, { standard_metadata, meta.metaA }); + clone3>(CloneType.I2E, mirror_id, { standard_metadata, meta.metaA }); } @name("t_ingress_1") table t_ingress_1 { actions = { diff --git a/testdata/p4_14_samples_outputs/packet_redirect.p4 b/testdata/p4_14_samples_outputs/packet_redirect.p4 index ebffa3fffd0..3be2e7dbd08 100644 --- a/testdata/p4_14_samples_outputs/packet_redirect.p4 +++ b/testdata/p4_14_samples_outputs/packet_redirect.p4 @@ -79,11 +79,11 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name("._nop") action _nop() { } @name("._set_port") action _set_port(bit<9> port) { - standard_metadata.egress_spec = port; - meta.metaA.f1 = 8w1; + standard_metadata.egress_spec = (bit<9>)port; + meta.metaA.f1 = (bit<8>)8w1; } @name("._multicast") action _multicast(bit<4> mgrp) { - meta.intrinsic_metadata.mcast_grp = mgrp; + meta.intrinsic_metadata.mcast_grp = (bit<4>)mgrp; } @name("._resubmit") action _resubmit() { resubmit({ standard_metadata, meta.metaA }); diff --git a/testdata/p4_14_samples_outputs/parser_dc_full.p4 b/testdata/p4_14_samples_outputs/parser_dc_full.p4 index b6b4a492bd9..be32771b5e2 100644 --- a/testdata/p4_14_samples_outputs/parser_dc_full.p4 +++ b/testdata/p4_14_samples_outputs/parser_dc_full.p4 @@ -622,8 +622,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".mark_forward") action mark_forward() { - hdr.data.data = 8w255; - standard_metadata.egress_spec = 9w10; + hdr.data.data = (bit<8>)8w255; + standard_metadata.egress_spec = (bit<9>)9w10; } @name("mark_check") table mark_check { actions = { diff --git a/testdata/p4_14_samples_outputs/port_vlan_mapping.p4 b/testdata/p4_14_samples_outputs/port_vlan_mapping.p4 index a5213ebf36e..7f8f600436c 100644 --- a/testdata/p4_14_samples_outputs/port_vlan_mapping.p4 +++ b/testdata/p4_14_samples_outputs/port_vlan_mapping.p4 @@ -730,112 +730,112 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_bd") action set_bd(bit<16> outer_vlan_bd, bit<12> vrf, bit<10> rmac_group, bit<16> bd_label, bit<16> uuc_mc_index, bit<16> bcast_mc_index, bit<16> umc_mc_index, bit<1> ipv4_unicast_enabled, bit<1> igmp_snooping_enabled, bit<10> stp_group) { - meta.ingress_metadata.vrf = vrf; - meta.ingress_metadata.ipv4_unicast_enabled = ipv4_unicast_enabled; - meta.ingress_metadata.igmp_snooping_enabled = igmp_snooping_enabled; - meta.ingress_metadata.rmac_group = rmac_group; - meta.ingress_metadata.uuc_mc_index = uuc_mc_index; - meta.ingress_metadata.umc_mc_index = umc_mc_index; - meta.ingress_metadata.bcast_mc_index = bcast_mc_index; - meta.ingress_metadata.bd_label = bd_label; - meta.ingress_metadata.bd = outer_vlan_bd; - meta.ingress_metadata.stp_group = stp_group; + meta.ingress_metadata.vrf = (bit<12>)vrf; + meta.ingress_metadata.ipv4_unicast_enabled = (bit<1>)ipv4_unicast_enabled; + meta.ingress_metadata.igmp_snooping_enabled = (bit<1>)igmp_snooping_enabled; + meta.ingress_metadata.rmac_group = (bit<10>)rmac_group; + meta.ingress_metadata.uuc_mc_index = (bit<16>)uuc_mc_index; + meta.ingress_metadata.umc_mc_index = (bit<16>)umc_mc_index; + meta.ingress_metadata.bcast_mc_index = (bit<16>)bcast_mc_index; + meta.ingress_metadata.bd_label = (bit<16>)bd_label; + meta.ingress_metadata.bd = (bit<16>)outer_vlan_bd; + meta.ingress_metadata.stp_group = (bit<10>)stp_group; } @name(".set_outer_bd_ipv4_mcast_switch_ipv6_mcast_switch_flags") action set_outer_bd_ipv4_mcast_switch_ipv6_mcast_switch_flags(bit<16> bd, bit<12> vrf, bit<10> rmac_group, bit<16> mrpf_group, bit<16> bd_label, bit<16> uuc_mc_index, bit<16> bcast_mc_index, bit<16> umc_mc_index, bit<1> ipv4_unicast_enabled, bit<1> ipv6_unicast_enabled, bit<2> ipv4_multicast_mode, bit<2> ipv6_multicast_mode, bit<1> igmp_snooping_enabled, bit<1> mld_snooping_enabled, bit<2> ipv4_urpf_mode, bit<2> ipv6_urpf_mode, bit<10> stp_group) { - meta.ingress_metadata.vrf = vrf; - meta.ingress_metadata.bd = bd; - meta.ingress_metadata.outer_bd = bd; - meta.ingress_metadata.outer_ipv4_mcast_key_type = 1w0; - meta.ingress_metadata.outer_ipv4_mcast_key = bd; - meta.ingress_metadata.outer_ipv6_mcast_key_type = 1w0; - meta.ingress_metadata.outer_ipv6_mcast_key = bd; - meta.ingress_metadata.ipv4_unicast_enabled = ipv4_unicast_enabled; - meta.ingress_metadata.ipv6_unicast_enabled = ipv6_unicast_enabled; - meta.ingress_metadata.ipv4_multicast_mode = ipv4_multicast_mode; - meta.ingress_metadata.ipv6_multicast_mode = ipv6_multicast_mode; - meta.ingress_metadata.igmp_snooping_enabled = igmp_snooping_enabled; - meta.ingress_metadata.mld_snooping_enabled = mld_snooping_enabled; - meta.ingress_metadata.ipv4_urpf_mode = ipv4_urpf_mode; - meta.ingress_metadata.ipv6_urpf_mode = ipv6_urpf_mode; - meta.ingress_metadata.rmac_group = rmac_group; - meta.ingress_metadata.bd_mrpf_group = mrpf_group; - meta.ingress_metadata.uuc_mc_index = uuc_mc_index; - meta.ingress_metadata.umc_mc_index = umc_mc_index; - meta.ingress_metadata.bcast_mc_index = bcast_mc_index; - meta.ingress_metadata.bd_label = bd_label; - meta.ingress_metadata.stp_group = stp_group; + meta.ingress_metadata.vrf = (bit<12>)vrf; + meta.ingress_metadata.bd = (bit<16>)bd; + meta.ingress_metadata.outer_bd = (bit<8>)bd; + meta.ingress_metadata.outer_ipv4_mcast_key_type = (bit<1>)1w0; + meta.ingress_metadata.outer_ipv4_mcast_key = (bit<8>)bd; + meta.ingress_metadata.outer_ipv6_mcast_key_type = (bit<1>)1w0; + meta.ingress_metadata.outer_ipv6_mcast_key = (bit<8>)bd; + meta.ingress_metadata.ipv4_unicast_enabled = (bit<1>)ipv4_unicast_enabled; + meta.ingress_metadata.ipv6_unicast_enabled = (bit<1>)ipv6_unicast_enabled; + meta.ingress_metadata.ipv4_multicast_mode = (bit<2>)ipv4_multicast_mode; + meta.ingress_metadata.ipv6_multicast_mode = (bit<2>)ipv6_multicast_mode; + meta.ingress_metadata.igmp_snooping_enabled = (bit<1>)igmp_snooping_enabled; + meta.ingress_metadata.mld_snooping_enabled = (bit<1>)mld_snooping_enabled; + meta.ingress_metadata.ipv4_urpf_mode = (bit<2>)ipv4_urpf_mode; + meta.ingress_metadata.ipv6_urpf_mode = (bit<2>)ipv6_urpf_mode; + meta.ingress_metadata.rmac_group = (bit<10>)rmac_group; + meta.ingress_metadata.bd_mrpf_group = (bit<16>)mrpf_group; + meta.ingress_metadata.uuc_mc_index = (bit<16>)uuc_mc_index; + meta.ingress_metadata.umc_mc_index = (bit<16>)umc_mc_index; + meta.ingress_metadata.bcast_mc_index = (bit<16>)bcast_mc_index; + meta.ingress_metadata.bd_label = (bit<16>)bd_label; + meta.ingress_metadata.stp_group = (bit<10>)stp_group; } @name(".set_outer_bd_ipv4_mcast_switch_ipv6_mcast_route_flags") action set_outer_bd_ipv4_mcast_switch_ipv6_mcast_route_flags(bit<16> bd, bit<12> vrf, bit<10> rmac_group, bit<16> mrpf_group, bit<16> bd_label, bit<16> uuc_mc_index, bit<16> bcast_mc_index, bit<16> umc_mc_index, bit<1> ipv4_unicast_enabled, bit<1> ipv6_unicast_enabled, bit<2> ipv4_multicast_mode, bit<2> ipv6_multicast_mode, bit<1> igmp_snooping_enabled, bit<1> mld_snooping_enabled, bit<2> ipv4_urpf_mode, bit<2> ipv6_urpf_mode, bit<10> stp_group) { - meta.ingress_metadata.vrf = vrf; - meta.ingress_metadata.bd = bd; - meta.ingress_metadata.outer_bd = bd; - meta.ingress_metadata.outer_ipv4_mcast_key_type = 1w0; - meta.ingress_metadata.outer_ipv4_mcast_key = bd; - meta.ingress_metadata.outer_ipv6_mcast_key_type = 1w1; - meta.ingress_metadata.outer_ipv6_mcast_key = vrf; - meta.ingress_metadata.ipv4_unicast_enabled = ipv4_unicast_enabled; - meta.ingress_metadata.ipv6_unicast_enabled = ipv6_unicast_enabled; - meta.ingress_metadata.ipv4_multicast_mode = ipv4_multicast_mode; - meta.ingress_metadata.ipv6_multicast_mode = ipv6_multicast_mode; - meta.ingress_metadata.igmp_snooping_enabled = igmp_snooping_enabled; - meta.ingress_metadata.mld_snooping_enabled = mld_snooping_enabled; - meta.ingress_metadata.ipv4_urpf_mode = ipv4_urpf_mode; - meta.ingress_metadata.ipv6_urpf_mode = ipv6_urpf_mode; - meta.ingress_metadata.rmac_group = rmac_group; - meta.ingress_metadata.bd_mrpf_group = mrpf_group; - meta.ingress_metadata.uuc_mc_index = uuc_mc_index; - meta.ingress_metadata.umc_mc_index = umc_mc_index; - meta.ingress_metadata.bcast_mc_index = bcast_mc_index; - meta.ingress_metadata.bd_label = bd_label; - meta.ingress_metadata.stp_group = stp_group; + meta.ingress_metadata.vrf = (bit<12>)vrf; + meta.ingress_metadata.bd = (bit<16>)bd; + meta.ingress_metadata.outer_bd = (bit<8>)bd; + meta.ingress_metadata.outer_ipv4_mcast_key_type = (bit<1>)1w0; + meta.ingress_metadata.outer_ipv4_mcast_key = (bit<8>)bd; + meta.ingress_metadata.outer_ipv6_mcast_key_type = (bit<1>)1w1; + meta.ingress_metadata.outer_ipv6_mcast_key = (bit<8>)vrf; + meta.ingress_metadata.ipv4_unicast_enabled = (bit<1>)ipv4_unicast_enabled; + meta.ingress_metadata.ipv6_unicast_enabled = (bit<1>)ipv6_unicast_enabled; + meta.ingress_metadata.ipv4_multicast_mode = (bit<2>)ipv4_multicast_mode; + meta.ingress_metadata.ipv6_multicast_mode = (bit<2>)ipv6_multicast_mode; + meta.ingress_metadata.igmp_snooping_enabled = (bit<1>)igmp_snooping_enabled; + meta.ingress_metadata.mld_snooping_enabled = (bit<1>)mld_snooping_enabled; + meta.ingress_metadata.ipv4_urpf_mode = (bit<2>)ipv4_urpf_mode; + meta.ingress_metadata.ipv6_urpf_mode = (bit<2>)ipv6_urpf_mode; + meta.ingress_metadata.rmac_group = (bit<10>)rmac_group; + meta.ingress_metadata.bd_mrpf_group = (bit<16>)mrpf_group; + meta.ingress_metadata.uuc_mc_index = (bit<16>)uuc_mc_index; + meta.ingress_metadata.umc_mc_index = (bit<16>)umc_mc_index; + meta.ingress_metadata.bcast_mc_index = (bit<16>)bcast_mc_index; + meta.ingress_metadata.bd_label = (bit<16>)bd_label; + meta.ingress_metadata.stp_group = (bit<10>)stp_group; } @name(".set_outer_bd_ipv4_mcast_route_ipv6_mcast_switch_flags") action set_outer_bd_ipv4_mcast_route_ipv6_mcast_switch_flags(bit<16> bd, bit<12> vrf, bit<10> rmac_group, bit<16> mrpf_group, bit<16> bd_label, bit<16> uuc_mc_index, bit<16> bcast_mc_index, bit<16> umc_mc_index, bit<1> ipv4_unicast_enabled, bit<1> ipv6_unicast_enabled, bit<2> ipv4_multicast_mode, bit<2> ipv6_multicast_mode, bit<1> igmp_snooping_enabled, bit<1> mld_snooping_enabled, bit<2> ipv4_urpf_mode, bit<2> ipv6_urpf_mode, bit<10> stp_group) { - meta.ingress_metadata.vrf = vrf; - meta.ingress_metadata.bd = bd; - meta.ingress_metadata.outer_bd = bd; - meta.ingress_metadata.outer_ipv4_mcast_key_type = 1w1; - meta.ingress_metadata.outer_ipv4_mcast_key = vrf; - meta.ingress_metadata.outer_ipv6_mcast_key_type = 1w0; - meta.ingress_metadata.outer_ipv6_mcast_key = bd; - meta.ingress_metadata.ipv4_unicast_enabled = ipv4_unicast_enabled; - meta.ingress_metadata.ipv6_unicast_enabled = ipv6_unicast_enabled; - meta.ingress_metadata.ipv4_multicast_mode = ipv4_multicast_mode; - meta.ingress_metadata.ipv6_multicast_mode = ipv6_multicast_mode; - meta.ingress_metadata.igmp_snooping_enabled = igmp_snooping_enabled; - meta.ingress_metadata.mld_snooping_enabled = mld_snooping_enabled; - meta.ingress_metadata.ipv4_urpf_mode = ipv4_urpf_mode; - meta.ingress_metadata.ipv6_urpf_mode = ipv6_urpf_mode; - meta.ingress_metadata.rmac_group = rmac_group; - meta.ingress_metadata.bd_mrpf_group = mrpf_group; - meta.ingress_metadata.uuc_mc_index = uuc_mc_index; - meta.ingress_metadata.umc_mc_index = umc_mc_index; - meta.ingress_metadata.bcast_mc_index = bcast_mc_index; - meta.ingress_metadata.bd_label = bd_label; - meta.ingress_metadata.stp_group = stp_group; + meta.ingress_metadata.vrf = (bit<12>)vrf; + meta.ingress_metadata.bd = (bit<16>)bd; + meta.ingress_metadata.outer_bd = (bit<8>)bd; + meta.ingress_metadata.outer_ipv4_mcast_key_type = (bit<1>)1w1; + meta.ingress_metadata.outer_ipv4_mcast_key = (bit<8>)vrf; + meta.ingress_metadata.outer_ipv6_mcast_key_type = (bit<1>)1w0; + meta.ingress_metadata.outer_ipv6_mcast_key = (bit<8>)bd; + meta.ingress_metadata.ipv4_unicast_enabled = (bit<1>)ipv4_unicast_enabled; + meta.ingress_metadata.ipv6_unicast_enabled = (bit<1>)ipv6_unicast_enabled; + meta.ingress_metadata.ipv4_multicast_mode = (bit<2>)ipv4_multicast_mode; + meta.ingress_metadata.ipv6_multicast_mode = (bit<2>)ipv6_multicast_mode; + meta.ingress_metadata.igmp_snooping_enabled = (bit<1>)igmp_snooping_enabled; + meta.ingress_metadata.mld_snooping_enabled = (bit<1>)mld_snooping_enabled; + meta.ingress_metadata.ipv4_urpf_mode = (bit<2>)ipv4_urpf_mode; + meta.ingress_metadata.ipv6_urpf_mode = (bit<2>)ipv6_urpf_mode; + meta.ingress_metadata.rmac_group = (bit<10>)rmac_group; + meta.ingress_metadata.bd_mrpf_group = (bit<16>)mrpf_group; + meta.ingress_metadata.uuc_mc_index = (bit<16>)uuc_mc_index; + meta.ingress_metadata.umc_mc_index = (bit<16>)umc_mc_index; + meta.ingress_metadata.bcast_mc_index = (bit<16>)bcast_mc_index; + meta.ingress_metadata.bd_label = (bit<16>)bd_label; + meta.ingress_metadata.stp_group = (bit<10>)stp_group; } @name(".set_outer_bd_ipv4_mcast_route_ipv6_mcast_route_flags") action set_outer_bd_ipv4_mcast_route_ipv6_mcast_route_flags(bit<16> bd, bit<12> vrf, bit<10> rmac_group, bit<16> mrpf_group, bit<16> bd_label, bit<16> uuc_mc_index, bit<16> bcast_mc_index, bit<16> umc_mc_index, bit<1> ipv4_unicast_enabled, bit<1> ipv6_unicast_enabled, bit<2> ipv4_multicast_mode, bit<2> ipv6_multicast_mode, bit<1> igmp_snooping_enabled, bit<1> mld_snooping_enabled, bit<2> ipv4_urpf_mode, bit<2> ipv6_urpf_mode, bit<10> stp_group) { - meta.ingress_metadata.vrf = vrf; - meta.ingress_metadata.bd = bd; - meta.ingress_metadata.outer_bd = bd; - meta.ingress_metadata.outer_ipv4_mcast_key_type = 1w1; - meta.ingress_metadata.outer_ipv4_mcast_key = vrf; - meta.ingress_metadata.outer_ipv6_mcast_key_type = 1w1; - meta.ingress_metadata.outer_ipv6_mcast_key = vrf; - meta.ingress_metadata.ipv4_unicast_enabled = ipv4_unicast_enabled; - meta.ingress_metadata.ipv6_unicast_enabled = ipv6_unicast_enabled; - meta.ingress_metadata.ipv4_multicast_mode = ipv4_multicast_mode; - meta.ingress_metadata.ipv6_multicast_mode = ipv6_multicast_mode; - meta.ingress_metadata.igmp_snooping_enabled = igmp_snooping_enabled; - meta.ingress_metadata.mld_snooping_enabled = mld_snooping_enabled; - meta.ingress_metadata.ipv4_urpf_mode = ipv4_urpf_mode; - meta.ingress_metadata.ipv6_urpf_mode = ipv6_urpf_mode; - meta.ingress_metadata.rmac_group = rmac_group; - meta.ingress_metadata.bd_mrpf_group = mrpf_group; - meta.ingress_metadata.uuc_mc_index = uuc_mc_index; - meta.ingress_metadata.umc_mc_index = umc_mc_index; - meta.ingress_metadata.bcast_mc_index = bcast_mc_index; - meta.ingress_metadata.bd_label = bd_label; - meta.ingress_metadata.stp_group = stp_group; + meta.ingress_metadata.vrf = (bit<12>)vrf; + meta.ingress_metadata.bd = (bit<16>)bd; + meta.ingress_metadata.outer_bd = (bit<8>)bd; + meta.ingress_metadata.outer_ipv4_mcast_key_type = (bit<1>)1w1; + meta.ingress_metadata.outer_ipv4_mcast_key = (bit<8>)vrf; + meta.ingress_metadata.outer_ipv6_mcast_key_type = (bit<1>)1w1; + meta.ingress_metadata.outer_ipv6_mcast_key = (bit<8>)vrf; + meta.ingress_metadata.ipv4_unicast_enabled = (bit<1>)ipv4_unicast_enabled; + meta.ingress_metadata.ipv6_unicast_enabled = (bit<1>)ipv6_unicast_enabled; + meta.ingress_metadata.ipv4_multicast_mode = (bit<2>)ipv4_multicast_mode; + meta.ingress_metadata.ipv6_multicast_mode = (bit<2>)ipv6_multicast_mode; + meta.ingress_metadata.igmp_snooping_enabled = (bit<1>)igmp_snooping_enabled; + meta.ingress_metadata.mld_snooping_enabled = (bit<1>)mld_snooping_enabled; + meta.ingress_metadata.ipv4_urpf_mode = (bit<2>)ipv4_urpf_mode; + meta.ingress_metadata.ipv6_urpf_mode = (bit<2>)ipv6_urpf_mode; + meta.ingress_metadata.rmac_group = (bit<10>)rmac_group; + meta.ingress_metadata.bd_mrpf_group = (bit<16>)mrpf_group; + meta.ingress_metadata.uuc_mc_index = (bit<16>)uuc_mc_index; + meta.ingress_metadata.umc_mc_index = (bit<16>)umc_mc_index; + meta.ingress_metadata.bcast_mc_index = (bit<16>)bcast_mc_index; + meta.ingress_metadata.bd_label = (bit<16>)bd_label; + meta.ingress_metadata.stp_group = (bit<10>)stp_group; } @name("port_vlan_mapping") table port_vlan_mapping { actions = { diff --git a/testdata/p4_14_samples_outputs/queueing.p4 b/testdata/p4_14_samples_outputs/queueing.p4 index 3faff8c22a2..db96eac1436 100644 --- a/testdata/p4_14_samples_outputs/queueing.p4 +++ b/testdata/p4_14_samples_outputs/queueing.p4 @@ -49,10 +49,10 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".copy_queueing_data") action copy_queueing_data() { hdr.queueing_hdr.setValid(); - hdr.queueing_hdr.enq_timestamp = meta.queueing_metadata.enq_timestamp; - hdr.queueing_hdr.enq_qdepth = meta.queueing_metadata.enq_qdepth; - hdr.queueing_hdr.deq_timedelta = meta.queueing_metadata.deq_timedelta; - hdr.queueing_hdr.deq_qdepth = meta.queueing_metadata.deq_qdepth; + hdr.queueing_hdr.enq_timestamp = (bit<48>)meta.queueing_metadata.enq_timestamp; + hdr.queueing_hdr.enq_qdepth = (bit<24>)meta.queueing_metadata.enq_qdepth; + hdr.queueing_hdr.deq_timedelta = (bit<32>)meta.queueing_metadata.deq_timedelta; + hdr.queueing_hdr.deq_qdepth = (bit<24>)meta.queueing_metadata.deq_qdepth; } @name("t_egress") table t_egress { actions = { @@ -68,7 +68,7 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_port") action set_port(bit<9> port) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name("._drop") action _drop() { mark_to_drop(); diff --git a/testdata/p4_14_samples_outputs/repeater.p4 b/testdata/p4_14_samples_outputs/repeater.p4 index 2b4e87f163c..6f7bb2a4262 100644 --- a/testdata/p4_14_samples_outputs/repeater.p4 +++ b/testdata/p4_14_samples_outputs/repeater.p4 @@ -30,7 +30,7 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ mark_to_drop(); } @name(".set_egress_port") action set_egress_port(bit<9> egress_port) { - standard_metadata.egress_spec = egress_port; + standard_metadata.egress_spec = (bit<9>)egress_port; } @name("repeater") table repeater { actions = { diff --git a/testdata/p4_14_samples_outputs/resubmit.p4 b/testdata/p4_14_samples_outputs/resubmit.p4 index 0e33c4d3a23..920aafc3829 100644 --- a/testdata/p4_14_samples_outputs/resubmit.p4 +++ b/testdata/p4_14_samples_outputs/resubmit.p4 @@ -50,10 +50,10 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name("._nop") action _nop() { } @name(".set_port") action set_port(bit<9> port) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name("._resubmit") action _resubmit() { - meta.mymeta.f1 = 8w1; + meta.mymeta.f1 = (bit<8>)8w1; resubmit({ standard_metadata, meta.mymeta }); } @name("t_ingress_1") table t_ingress_1 { diff --git a/testdata/p4_14_samples_outputs/sai_p4-first.p4 b/testdata/p4_14_samples_outputs/sai_p4-first.p4 index 371898b1605..6dafe5b60cb 100644 --- a/testdata/p4_14_samples_outputs/sai_p4-first.p4 +++ b/testdata/p4_14_samples_outputs/sai_p4-first.p4 @@ -267,6 +267,7 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ default_action = NoAction(); } @name(".set_in_port") action set_in_port_0(bit<10> port, bit<2> type_, bit<2> oper_status, bit<4> speed, bit<8> admin_state, bit<12> default_vlan, bit<8> default_vlan_priority, bit<1> ingress_filtering, bit<1> drop_untagged, bit<1> drop_tagged, bit<2> port_loopback_mode, bit<2> fdb_learning, bit<3> stp_state, bit<1> update_dscp, bit<14> mtu, bit<8> sflow, bit<8> flood_storm_control, bit<8> broadcast_storm_control, bit<8> multicast_storm_control, bit<2> global_flow_control, bit<16> max_learned_address, bit<8> fdb_learning_limit_violation) { + port_counters.count(); meta.ingress_metadata.port_lag = port; meta.ingress_metadata.mac_limit = max_learned_address; meta.ingress_metadata.port_type = type_; @@ -282,7 +283,6 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ meta.ingress_metadata.update_dscp = update_dscp; meta.ingress_metadata.mtu = mtu; meta.ingress_metadata.vlan_id = default_vlan; - port_counters.count(); } @name("port") table port { actions = { diff --git a/testdata/p4_14_samples_outputs/sai_p4.p4 b/testdata/p4_14_samples_outputs/sai_p4.p4 index a20b1eadd4e..7a542660bf4 100644 --- a/testdata/p4_14_samples_outputs/sai_p4.p4 +++ b/testdata/p4_14_samples_outputs/sai_p4.p4 @@ -139,10 +139,10 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name("port_counters") direct_counter(CounterType.packets) port_counters; @name(".fdb_set") action fdb_set(bit<1> type_, bit<9> port_id) { - meta.ingress_metadata.mac_type = type_; - meta.intrinsic_metadata.ucast_egress_port = port_id; - standard_metadata.egress_spec = port_id; - meta.ingress_metadata.routed = 1w0; + meta.ingress_metadata.mac_type = (bit<1>)type_; + meta.intrinsic_metadata.ucast_egress_port = (bit<9>)port_id; + standard_metadata.egress_spec = (bit<9>)port_id; + meta.ingress_metadata.routed = (bit<1>)1w0; } @name(".nop") action nop() { } @@ -150,77 +150,77 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ digest((bit<32>)1024, { meta.ingress_metadata.vlan_id, hdr.eth.srcAddr, meta.intrinsic_metadata.ingress_port, meta.ingress_metadata.learning }); } @name(".set_dmac") action set_dmac(bit<48> dst_mac_address, bit<9> port_id) { - hdr.eth.dstAddr = dst_mac_address; - hdr.eth.srcAddr = meta.ingress_metadata.def_smac; - meta.intrinsic_metadata.ucast_egress_port = port_id; - standard_metadata.egress_spec = port_id; + hdr.eth.dstAddr = (bit<48>)dst_mac_address; + hdr.eth.srcAddr = (bit<48>)meta.ingress_metadata.def_smac; + meta.intrinsic_metadata.ucast_egress_port = (bit<9>)port_id; + standard_metadata.egress_spec = (bit<9>)port_id; } @name(".set_next_hop") action set_next_hop(bit<8> type_, bit<8> ip, bit<16> router_interface_id) { - meta.ingress_metadata.router_intf = router_interface_id; + meta.ingress_metadata.router_intf = (bit<16>)router_interface_id; } @name(".set_in_port") action set_in_port(bit<10> port, bit<2> type_, bit<2> oper_status, bit<4> speed, bit<8> admin_state, bit<12> default_vlan, bit<8> default_vlan_priority, bit<1> ingress_filtering, bit<1> drop_untagged, bit<1> drop_tagged, bit<2> port_loopback_mode, bit<2> fdb_learning, bit<3> stp_state, bit<1> update_dscp, bit<14> mtu, bit<8> sflow, bit<8> flood_storm_control, bit<8> broadcast_storm_control, bit<8> multicast_storm_control, bit<2> global_flow_control, bit<16> max_learned_address, bit<8> fdb_learning_limit_violation) { - meta.ingress_metadata.port_lag = port; - meta.ingress_metadata.mac_limit = max_learned_address; - meta.ingress_metadata.port_type = type_; - meta.ingress_metadata.oper_status = oper_status; - meta.ingress_metadata.flow_ctrl = global_flow_control; - meta.ingress_metadata.port_speed = speed; - meta.ingress_metadata.drop_vlan = ingress_filtering; - meta.ingress_metadata.drop_tagged = drop_tagged; - meta.ingress_metadata.drop_untagged = drop_untagged; - meta.ingress_metadata.port_mode = port_loopback_mode; - meta.ingress_metadata.learning = fdb_learning; - meta.ingress_metadata.stp_state = stp_state; - meta.ingress_metadata.update_dscp = update_dscp; - meta.ingress_metadata.mtu = mtu; - meta.ingress_metadata.vlan_id = default_vlan; + meta.ingress_metadata.port_lag = (bit<10>)port; + meta.ingress_metadata.mac_limit = (bit<16>)max_learned_address; + meta.ingress_metadata.port_type = (bit<2>)type_; + meta.ingress_metadata.oper_status = (bit<2>)oper_status; + meta.ingress_metadata.flow_ctrl = (bit<2>)global_flow_control; + meta.ingress_metadata.port_speed = (bit<4>)speed; + meta.ingress_metadata.drop_vlan = (bit<1>)ingress_filtering; + meta.ingress_metadata.drop_tagged = (bit<1>)drop_tagged; + meta.ingress_metadata.drop_untagged = (bit<1>)drop_untagged; + meta.ingress_metadata.port_mode = (bit<2>)port_loopback_mode; + meta.ingress_metadata.learning = (bit<2>)fdb_learning; + meta.ingress_metadata.stp_state = (bit<3>)stp_state; + meta.ingress_metadata.update_dscp = (bit<1>)update_dscp; + meta.ingress_metadata.mtu = (bit<14>)mtu; + meta.ingress_metadata.vlan_id = (bit<12>)default_vlan; } @name(".copy_to_cpu") action copy_to_cpu() { - meta.ingress_metadata.copy_to_cpu = 1w1; + meta.ingress_metadata.copy_to_cpu = (bit<1>)1w1; } @name(".route_set_trap") action route_set_trap(bit<3> trap_priority) { - meta.ingress_metadata.pri = trap_priority; + meta.ingress_metadata.pri = (bit<3>)trap_priority; copy_to_cpu(); } @name(".route_set_nexthop") action route_set_nexthop(bit<16> next_hop_id) { - meta.ingress_metadata.nhop = next_hop_id; - meta.ingress_metadata.routed = 1w1; - meta.ingress_metadata.ip_dest = hdr.ipv4.dstAddr; - hdr.ipv4.ttl = hdr.ipv4.ttl + 8w255; + meta.ingress_metadata.nhop = (bit<16>)next_hop_id; + meta.ingress_metadata.routed = (bit<1>)1w1; + meta.ingress_metadata.ip_dest = (bit<32>)hdr.ipv4.dstAddr; + hdr.ipv4.ttl = (bit<8>)(hdr.ipv4.ttl + 8w255); } @name(".route_set_nexthop_group") action route_set_nexthop_group(bit<16> next_hop_group_id) { - meta.ingress_metadata.ecmp_nhop = next_hop_group_id; - meta.ingress_metadata.routed = 1w1; - meta.ingress_metadata.ip_dest = hdr.ipv4.dstAddr; - hdr.ipv4.ttl = hdr.ipv4.ttl + 8w255; + meta.ingress_metadata.ecmp_nhop = (bit<16>)next_hop_group_id; + meta.ingress_metadata.routed = (bit<1>)1w1; + meta.ingress_metadata.ip_dest = (bit<32>)hdr.ipv4.dstAddr; + hdr.ipv4.ttl = (bit<8>)(hdr.ipv4.ttl + 8w255); } @name(".set_router_interface") action set_router_interface(bit<16> virtual_router_id, bit<1> type_, bit<9> port_id, bit<12> vlan_id, bit<48> src_mac_address, bit<1> admin_v4_state, bit<1> admin_v6_state, bit<14> mtu) { - meta.ingress_metadata.vrf = virtual_router_id; - meta.ingress_metadata.interface_type = type_; - meta.intrinsic_metadata.ucast_egress_port = port_id; - meta.ingress_metadata.vlan_id = vlan_id; - meta.ingress_metadata.def_smac = src_mac_address; - meta.ingress_metadata.v4_enable = admin_v4_state; - meta.ingress_metadata.v6_enable = admin_v6_state; - meta.ingress_metadata.mtu = mtu; - meta.ingress_metadata.router_mac = 1w1; + meta.ingress_metadata.vrf = (bit<16>)virtual_router_id; + meta.ingress_metadata.interface_type = (bit<1>)type_; + meta.intrinsic_metadata.ucast_egress_port = (bit<9>)port_id; + meta.ingress_metadata.vlan_id = (bit<12>)vlan_id; + meta.ingress_metadata.def_smac = (bit<48>)src_mac_address; + meta.ingress_metadata.v4_enable = (bit<1>)admin_v4_state; + meta.ingress_metadata.v6_enable = (bit<1>)admin_v6_state; + meta.ingress_metadata.mtu = (bit<14>)mtu; + meta.ingress_metadata.router_mac = (bit<1>)1w1; } @name(".router_interface_miss") action router_interface_miss() { - meta.ingress_metadata.router_mac = 1w0; + meta.ingress_metadata.router_mac = (bit<1>)1w0; } @name(".set_switch") action set_switch(bit<8> port_number, bit<16> cpu_port, bit<8> max_virtual_routers, bit<8> fdb_table_size, bit<8> on_link_route_supported, bit<2> oper_status, bit<8> max_temp, bit<8> switching_mode, bit<8> cpu_flood_enable, bit<8> ttl1_action, bit<12> port_vlan_id, bit<48> src_mac_address, bit<8> fdb_aging_time, bit<8> fdb_unicast_miss_action, bit<8> fdb_broadcast_miss_action, bit<8> fdb_multicast_miss_action, bit<8> ecmp_hash_seed, bit<8> ecmp_hash_type, bit<8> ecmp_hash_fields, bit<8> ecmp_max_paths, bit<16> vr_id) { - meta.ingress_metadata.def_vlan = port_vlan_id; - meta.ingress_metadata.vrf = vr_id; - meta.ingress_metadata.def_smac = src_mac_address; - meta.ingress_metadata.cpu_port = cpu_port; - meta.ingress_metadata.max_ports = port_number; - meta.ingress_metadata.oper_status = oper_status; - meta.intrinsic_metadata.ingress_port = standard_metadata.ingress_port; + meta.ingress_metadata.def_vlan = (bit<12>)port_vlan_id; + meta.ingress_metadata.vrf = (bit<16>)vr_id; + meta.ingress_metadata.def_smac = (bit<48>)src_mac_address; + meta.ingress_metadata.cpu_port = (bit<16>)cpu_port; + meta.ingress_metadata.max_ports = (bit<8>)port_number; + meta.ingress_metadata.oper_status = (bit<2>)oper_status; + meta.intrinsic_metadata.ingress_port = (bit<9>)standard_metadata.ingress_port; } @name(".set_router") action set_router(bit<1> admin_v4_state, bit<1> admin_v6_state, bit<48> src_mac_address, bit<8> violation_ttl1_action, bit<8> violation_ip_options) { - meta.ingress_metadata.def_smac = src_mac_address; - meta.ingress_metadata.v4_enable = admin_v4_state; - meta.ingress_metadata.v6_enable = admin_v6_state; + meta.ingress_metadata.def_smac = (bit<48>)src_mac_address; + meta.ingress_metadata.v4_enable = (bit<1>)admin_v4_state; + meta.ingress_metadata.v6_enable = (bit<1>)admin_v6_state; } @name("fdb") table fdb { actions = { @@ -270,21 +270,21 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ } @name(".set_in_port") action set_in_port_0(bit<10> port, bit<2> type_, bit<2> oper_status, bit<4> speed, bit<8> admin_state, bit<12> default_vlan, bit<8> default_vlan_priority, bit<1> ingress_filtering, bit<1> drop_untagged, bit<1> drop_tagged, bit<2> port_loopback_mode, bit<2> fdb_learning, bit<3> stp_state, bit<1> update_dscp, bit<14> mtu, bit<8> sflow, bit<8> flood_storm_control, bit<8> broadcast_storm_control, bit<8> multicast_storm_control, bit<2> global_flow_control, bit<16> max_learned_address, bit<8> fdb_learning_limit_violation) { port_counters.count(); - meta.ingress_metadata.port_lag = port; - meta.ingress_metadata.mac_limit = max_learned_address; - meta.ingress_metadata.port_type = type_; - meta.ingress_metadata.oper_status = oper_status; - meta.ingress_metadata.flow_ctrl = global_flow_control; - meta.ingress_metadata.port_speed = speed; - meta.ingress_metadata.drop_vlan = ingress_filtering; - meta.ingress_metadata.drop_tagged = drop_tagged; - meta.ingress_metadata.drop_untagged = drop_untagged; - meta.ingress_metadata.port_mode = port_loopback_mode; - meta.ingress_metadata.learning = fdb_learning; - meta.ingress_metadata.stp_state = stp_state; - meta.ingress_metadata.update_dscp = update_dscp; - meta.ingress_metadata.mtu = mtu; - meta.ingress_metadata.vlan_id = default_vlan; + meta.ingress_metadata.port_lag = (bit<10>)port; + meta.ingress_metadata.mac_limit = (bit<16>)max_learned_address; + meta.ingress_metadata.port_type = (bit<2>)type_; + meta.ingress_metadata.oper_status = (bit<2>)oper_status; + meta.ingress_metadata.flow_ctrl = (bit<2>)global_flow_control; + meta.ingress_metadata.port_speed = (bit<4>)speed; + meta.ingress_metadata.drop_vlan = (bit<1>)ingress_filtering; + meta.ingress_metadata.drop_tagged = (bit<1>)drop_tagged; + meta.ingress_metadata.drop_untagged = (bit<1>)drop_untagged; + meta.ingress_metadata.port_mode = (bit<2>)port_loopback_mode; + meta.ingress_metadata.learning = (bit<2>)fdb_learning; + meta.ingress_metadata.stp_state = (bit<3>)stp_state; + meta.ingress_metadata.update_dscp = (bit<1>)update_dscp; + meta.ingress_metadata.mtu = (bit<14>)mtu; + meta.ingress_metadata.vlan_id = (bit<12>)default_vlan; } @name("port") table port { actions = { diff --git a/testdata/p4_14_samples_outputs/selector1.p4 b/testdata/p4_14_samples_outputs/selector1.p4 index 6fb13531d22..ef604d6b551 100644 --- a/testdata/p4_14_samples_outputs/selector1.p4 +++ b/testdata/p4_14_samples_outputs/selector1.p4 @@ -31,7 +31,7 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name(".noop") action noop() { } @name(".setf1") action setf1(bit<32> val) { - hdr.data.f1 = val; + hdr.data.f1 = (bit<32>)val; } @name("test1") table test1 { actions = { diff --git a/testdata/p4_14_samples_outputs/selector2.p4 b/testdata/p4_14_samples_outputs/selector2.p4 index 34c7c5836bf..132740982d7 100644 --- a/testdata/p4_14_samples_outputs/selector2.p4 +++ b/testdata/p4_14_samples_outputs/selector2.p4 @@ -31,7 +31,7 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name(".noop") action noop() { } @name(".setf1") action setf1(bit<32> val) { - hdr.data.f1 = val; + hdr.data.f1 = (bit<32>)val; } @name("test1") table test1 { actions = { diff --git a/testdata/p4_14_samples_outputs/selector3.p4 b/testdata/p4_14_samples_outputs/selector3.p4 index 76760a1a880..8566d4d25b1 100644 --- a/testdata/p4_14_samples_outputs/selector3.p4 +++ b/testdata/p4_14_samples_outputs/selector3.p4 @@ -31,13 +31,13 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name(".noop") action noop() { } @name(".setf1") action setf1(bit<32> val) { - hdr.data.f1 = val; + hdr.data.f1 = (bit<32>)val; } @name(".setall") action setall(bit<32> v1, bit<32> v2, bit<32> v3, bit<32> v4) { - hdr.data.f1 = v1; - hdr.data.f2 = v2; - hdr.data.f3 = v3; - hdr.data.f4 = v4; + hdr.data.f1 = (bit<32>)v1; + hdr.data.f2 = (bit<32>)v2; + hdr.data.f3 = (bit<32>)v3; + hdr.data.f4 = (bit<32>)v4; } @name("test1") table test1 { actions = { diff --git a/testdata/p4_14_samples_outputs/simple_nat.p4 b/testdata/p4_14_samples_outputs/simple_nat.p4 index d6647fde9f7..3188fb77eae 100644 --- a/testdata/p4_14_samples_outputs/simple_nat.p4 +++ b/testdata/p4_14_samples_outputs/simple_nat.p4 @@ -84,7 +84,7 @@ struct headers { parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name("parse_cpu_header") state parse_cpu_header { packet.extract(hdr.cpu_header); - meta.meta.if_index = hdr.cpu_header.if_index; + meta.meta.if_index = (bit<8>)hdr.cpu_header.if_index; transition parse_ethernet; } @name("parse_ethernet") state parse_ethernet { @@ -96,9 +96,9 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_ipv4") state parse_ipv4 { packet.extract(hdr.ipv4); - meta.meta.ipv4_sa = hdr.ipv4.srcAddr; - meta.meta.ipv4_da = hdr.ipv4.dstAddr; - meta.meta.tcpLength = hdr.ipv4.totalLen - 16w20; + meta.meta.ipv4_sa = (bit<32>)hdr.ipv4.srcAddr; + meta.meta.ipv4_da = (bit<32>)hdr.ipv4.dstAddr; + meta.meta.tcpLength = (bit<16>)(hdr.ipv4.totalLen - 16w20); transition select(hdr.ipv4.protocol) { 8w0x6: parse_tcp; default: accept; @@ -106,12 +106,12 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_tcp") state parse_tcp { packet.extract(hdr.tcp); - meta.meta.tcp_sp = hdr.tcp.srcPort; - meta.meta.tcp_dp = hdr.tcp.dstPort; + meta.meta.tcp_sp = (bit<16>)hdr.tcp.srcPort; + meta.meta.tcp_dp = (bit<16>)hdr.tcp.dstPort; transition accept; } @name("start") state start { - meta.meta.if_index = standard_metadata.ingress_port; + meta.meta.if_index = (bit<8>)standard_metadata.ingress_port; transition select((packet.lookahead>())[63:0]) { 64w0: parse_cpu_header; default: parse_ethernet; @@ -122,21 +122,21 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".do_rewrites") action do_rewrites(bit<48> smac) { hdr.cpu_header.setInvalid(); - hdr.ethernet.srcAddr = smac; - hdr.ipv4.srcAddr = meta.meta.ipv4_sa; - hdr.ipv4.dstAddr = meta.meta.ipv4_da; - hdr.tcp.srcPort = meta.meta.tcp_sp; - hdr.tcp.dstPort = meta.meta.tcp_dp; + hdr.ethernet.srcAddr = (bit<48>)smac; + hdr.ipv4.srcAddr = (bit<32>)meta.meta.ipv4_sa; + hdr.ipv4.dstAddr = (bit<32>)meta.meta.ipv4_da; + hdr.tcp.srcPort = (bit<16>)meta.meta.tcp_sp; + hdr.tcp.dstPort = (bit<16>)meta.meta.tcp_dp; } @name("._drop") action _drop() { mark_to_drop(); } @name(".do_cpu_encap") action do_cpu_encap() { hdr.cpu_header.setValid(); - hdr.cpu_header.preamble = 64w0; - hdr.cpu_header.device = 8w0; - hdr.cpu_header.reason = 8w0xab; - hdr.cpu_header.if_index = meta.meta.if_index; + hdr.cpu_header.preamble = (bit<64>)64w0; + hdr.cpu_header.device = (bit<8>)8w0; + hdr.cpu_header.reason = (bit<8>)8w0xab; + hdr.cpu_header.if_index = (bit<8>)meta.meta.if_index; } @name("send_frame") table send_frame { actions = { @@ -169,40 +169,40 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_dmac") action set_dmac(bit<48> dmac) { - hdr.ethernet.dstAddr = dmac; + hdr.ethernet.dstAddr = (bit<48>)dmac; } @name("._drop") action _drop() { mark_to_drop(); } @name(".set_if_info") action set_if_info(bit<32> ipv4_addr, bit<48> mac_addr, bit<1> is_ext) { - meta.meta.if_ipv4_addr = ipv4_addr; - meta.meta.if_mac_addr = mac_addr; - meta.meta.is_ext_if = is_ext; + meta.meta.if_ipv4_addr = (bit<32>)ipv4_addr; + meta.meta.if_mac_addr = (bit<48>)mac_addr; + meta.meta.is_ext_if = (bit<1>)is_ext; } @name(".set_nhop") action set_nhop(bit<32> nhop_ipv4, bit<9> port) { - meta.meta.nhop_ipv4 = nhop_ipv4; - standard_metadata.egress_spec = port; - hdr.ipv4.ttl = hdr.ipv4.ttl + 8w255; + meta.meta.nhop_ipv4 = (bit<32>)nhop_ipv4; + standard_metadata.egress_spec = (bit<9>)port; + hdr.ipv4.ttl = (bit<8>)(hdr.ipv4.ttl + 8w255); } @name(".nat_miss_int_to_ext") action nat_miss_int_to_ext() { clone3(CloneType.I2E, (bit<32>)32w250, { standard_metadata }); } @name(".nat_miss_ext_to_int") action nat_miss_ext_to_int() { - meta.meta.do_forward = 1w0; + meta.meta.do_forward = (bit<1>)1w0; mark_to_drop(); } @name(".nat_hit_int_to_ext") action nat_hit_int_to_ext(bit<32> srcAddr, bit<16> srcPort) { - meta.meta.do_forward = 1w1; - meta.meta.ipv4_sa = srcAddr; - meta.meta.tcp_sp = srcPort; + meta.meta.do_forward = (bit<1>)1w1; + meta.meta.ipv4_sa = (bit<32>)srcAddr; + meta.meta.tcp_sp = (bit<16>)srcPort; } @name(".nat_hit_ext_to_int") action nat_hit_ext_to_int(bit<32> dstAddr, bit<16> dstPort) { - meta.meta.do_forward = 1w1; - meta.meta.ipv4_da = dstAddr; - meta.meta.tcp_dp = dstPort; + meta.meta.do_forward = (bit<1>)1w1; + meta.meta.ipv4_da = (bit<32>)dstAddr; + meta.meta.tcp_dp = (bit<16>)dstPort; } @name(".nat_no_nat") action nat_no_nat() { - meta.meta.do_forward = 1w1; + meta.meta.do_forward = (bit<1>)1w1; } @name("forward") table forward { actions = { diff --git a/testdata/p4_14_samples_outputs/simple_router.p4 b/testdata/p4_14_samples_outputs/simple_router.p4 index 257e86ccdd1..fd9671f28ca 100644 --- a/testdata/p4_14_samples_outputs/simple_router.p4 +++ b/testdata/p4_14_samples_outputs/simple_router.p4 @@ -57,7 +57,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".rewrite_mac") action rewrite_mac(bit<48> smac) { - hdr.ethernet.srcAddr = smac; + hdr.ethernet.srcAddr = (bit<48>)smac; } @name("._drop") action _drop() { mark_to_drop(); @@ -81,15 +81,15 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_dmac") action set_dmac(bit<48> dmac) { - hdr.ethernet.dstAddr = dmac; + hdr.ethernet.dstAddr = (bit<48>)dmac; } @name("._drop") action _drop() { mark_to_drop(); } @name(".set_nhop") action set_nhop(bit<32> nhop_ipv4, bit<9> port) { - meta.routing_metadata.nhop_ipv4 = nhop_ipv4; - standard_metadata.egress_port = port; - hdr.ipv4.ttl = hdr.ipv4.ttl + 8w255; + meta.routing_metadata.nhop_ipv4 = (bit<32>)nhop_ipv4; + standard_metadata.egress_port = (bit<9>)port; + hdr.ipv4.ttl = (bit<8>)(hdr.ipv4.ttl + 8w255); } @name("forward") table forward { actions = { diff --git a/testdata/p4_14_samples_outputs/source_routing.p4 b/testdata/p4_14_samples_outputs/source_routing.p4 index 50e1f2c9ec5..bcf2f59516d 100644 --- a/testdata/p4_14_samples_outputs/source_routing.p4 +++ b/testdata/p4_14_samples_outputs/source_routing.p4 @@ -50,8 +50,8 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ mark_to_drop(); } @name(".route") action route() { - standard_metadata.egress_spec = hdr.easyroute_port.port; - hdr.easyroute_head.num_valid = hdr.easyroute_head.num_valid + 32w4294967295; + standard_metadata.egress_spec = (bit<9>)hdr.easyroute_port.port; + hdr.easyroute_head.num_valid = (bit<32>)(hdr.easyroute_head.num_valid + 32w4294967295); hdr.easyroute_port.setInvalid(); } @name("route_pkt") table route_pkt { diff --git a/testdata/p4_14_samples_outputs/swap_1.p4 b/testdata/p4_14_samples_outputs/swap_1.p4 index bce90524536..a038368d670 100644 --- a/testdata/p4_14_samples_outputs/swap_1.p4 +++ b/testdata/p4_14_samples_outputs/swap_1.p4 @@ -28,10 +28,10 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".a11") action a11() { - standard_metadata.egress_spec = 9w1; + standard_metadata.egress_spec = (bit<9>)9w1; } @name(".a12") action a12() { - standard_metadata.egress_spec = 9w2; + standard_metadata.egress_spec = (bit<9>)9w2; } @name("t_ingress_1") table t_ingress_1 { actions = { diff --git a/testdata/p4_14_samples_outputs/swap_2.p4 b/testdata/p4_14_samples_outputs/swap_2.p4 index 75787e2146a..de22053334f 100644 --- a/testdata/p4_14_samples_outputs/swap_2.p4 +++ b/testdata/p4_14_samples_outputs/swap_2.p4 @@ -29,10 +29,10 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".a21") action a21() { - standard_metadata.egress_spec = 9w3; + standard_metadata.egress_spec = (bit<9>)9w3; } @name(".a22") action a22() { - standard_metadata.egress_spec = 9w4; + standard_metadata.egress_spec = (bit<9>)9w4; } @name("t_ingress_2") table t_ingress_2 { actions = { diff --git a/testdata/p4_14_samples_outputs/switch_20160226/switch-first.p4 b/testdata/p4_14_samples_outputs/switch_20160226/switch-first.p4 index 819e4505cac..db46d3e146f 100644 --- a/testdata/p4_14_samples_outputs/switch_20160226/switch-first.p4 +++ b/testdata/p4_14_samples_outputs/switch_20160226/switch-first.p4 @@ -2750,7 +2750,7 @@ control process_egress_acl(inout headers hdr, inout metadata meta, inout standar } @name(".egress_mirror") action egress_mirror(bit<32> session_id) { meta.i2e_metadata.mirror_session_id = (bit<16>)session_id; - clone3, bit<16>>>(CloneType.E2E, (bit<32>)session_id, { meta.i2e_metadata.ingress_tstamp, meta.i2e_metadata.mirror_session_id }); + clone3, bit<16>>>(CloneType.E2E, session_id, { meta.i2e_metadata.ingress_tstamp, meta.i2e_metadata.mirror_session_id }); } @name(".egress_mirror_drop") action egress_mirror_drop(bit<32> session_id) { egress_mirror(session_id); @@ -3754,7 +3754,7 @@ control process_mac_acl(inout headers hdr, inout metadata meta, inout standard_m meta.i2e_metadata.mirror_session_id = (bit<16>)session_id; meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; meta.ingress_metadata.enable_dod = 1w0; - clone3, bit<16>>>(CloneType.I2E, (bit<32>)session_id, { meta.i2e_metadata.ingress_tstamp, meta.i2e_metadata.mirror_session_id }); + clone3, bit<16>>>(CloneType.I2E, session_id, { meta.i2e_metadata.ingress_tstamp, meta.i2e_metadata.mirror_session_id }); meta.acl_metadata.acl_stats_index = acl_stats_index; } @name("mac_acl") table mac_acl { @@ -3801,7 +3801,7 @@ control process_ip_acl(inout headers hdr, inout metadata meta, inout standard_me meta.i2e_metadata.mirror_session_id = (bit<16>)session_id; meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; meta.ingress_metadata.enable_dod = 1w0; - clone3, bit<16>>>(CloneType.I2E, (bit<32>)session_id, { meta.i2e_metadata.ingress_tstamp, meta.i2e_metadata.mirror_session_id }); + clone3, bit<16>>>(CloneType.I2E, session_id, { meta.i2e_metadata.ingress_tstamp, meta.i2e_metadata.mirror_session_id }); meta.acl_metadata.acl_stats_index = acl_stats_index; } @name(".acl_dod_en") action acl_dod_en() { @@ -4756,7 +4756,7 @@ control process_system_acl(inout headers hdr, inout metadata meta, inout standar mark_to_drop(); } @name(".negative_mirror") action negative_mirror(bit<32> session_id) { - clone3, bit<8>>>(CloneType.I2E, (bit<32>)session_id, { meta.ingress_metadata.ifindex, meta.ingress_metadata.drop_reason }); + clone3, bit<8>>>(CloneType.I2E, session_id, { meta.ingress_metadata.ifindex, meta.ingress_metadata.drop_reason }); mark_to_drop(); } @name(".deflect_on_drop") action deflect_on_drop() { diff --git a/testdata/p4_14_samples_outputs/switch_20160226/switch.p4 b/testdata/p4_14_samples_outputs/switch_20160226/switch.p4 index 690503aca40..05627d33ed1 100644 --- a/testdata/p4_14_samples_outputs/switch_20160226/switch.p4 +++ b/testdata/p4_14_samples_outputs/switch_20160226/switch.p4 @@ -796,7 +796,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout transition parse_set_prio_max; } @name("parse_eompls") state parse_eompls { - meta.tunnel_metadata.ingress_tunnel_type = 5w6; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w6; transition parse_inner_ethernet; } @name("parse_erspan_t3") state parse_erspan_t3 { @@ -805,8 +805,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_ethernet") state parse_ethernet { packet.extract(hdr.ethernet); - meta.l2_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.ethernet.dstAddr; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; transition select(hdr.ethernet.etherType) { 16w0 &&& 16w0xfe00: parse_llc_header; 16w0 &&& 16w0xfa00: parse_llc_header; @@ -870,8 +870,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_geneve") state parse_geneve { packet.extract(hdr.genv); - meta.tunnel_metadata.tunnel_vni = hdr.genv.vni; - meta.tunnel_metadata.ingress_tunnel_type = 5w4; + meta.tunnel_metadata.tunnel_vni = (bit<24>)hdr.genv.vni; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w4; transition select(hdr.genv.ver, hdr.genv.optLen, hdr.genv.protoType) { (2w0x0, 6w0x0, 16w0x6558): parse_inner_ethernet; (2w0x0, 6w0x0, 16w0x800): parse_inner_ipv4; @@ -881,7 +881,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_gpe_int_header") state parse_gpe_int_header { packet.extract(hdr.vxlan_gpe_int_header); - meta.int_metadata.gpe_int_hdr_len = hdr.vxlan_gpe_int_header.len; + meta.int_metadata.gpe_int_hdr_len = (bit<16>)hdr.vxlan_gpe_int_header.len; transition parse_int_header; } @name("parse_gre") state parse_gre { @@ -895,11 +895,11 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } } @name("parse_gre_ipv4") state parse_gre_ipv4 { - meta.tunnel_metadata.ingress_tunnel_type = 5w2; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w2; transition parse_inner_ipv4; } @name("parse_gre_ipv6") state parse_gre_ipv6 { - meta.tunnel_metadata.ingress_tunnel_type = 5w2; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w2; transition parse_inner_ipv6; } @name("parse_gre_v6") state parse_gre_v6 { @@ -911,7 +911,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_icmp") state parse_icmp { packet.extract(hdr.icmp); - meta.l3_metadata.lkp_l4_sport = hdr.icmp.typeCode; + meta.l3_metadata.lkp_l4_sport = (bit<16>)hdr.icmp.typeCode; transition select(hdr.icmp.typeCode) { 16w0x8200 &&& 16w0xfe00: parse_set_prio_med; 16w0x8400 &&& 16w0xfc00: parse_set_prio_med; @@ -929,7 +929,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_inner_icmp") state parse_inner_icmp { packet.extract(hdr.inner_icmp); - meta.l3_metadata.lkp_inner_l4_sport = hdr.inner_icmp.typeCode; + meta.l3_metadata.lkp_inner_l4_sport = (bit<16>)hdr.inner_icmp.typeCode; transition accept; } @name("parse_inner_ipv4") state parse_inner_ipv4 { @@ -956,19 +956,19 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_inner_tcp") state parse_inner_tcp { packet.extract(hdr.inner_tcp); - meta.l3_metadata.lkp_inner_l4_sport = hdr.inner_tcp.srcPort; - meta.l3_metadata.lkp_inner_l4_dport = hdr.inner_tcp.dstPort; + meta.l3_metadata.lkp_inner_l4_sport = (bit<16>)hdr.inner_tcp.srcPort; + meta.l3_metadata.lkp_inner_l4_dport = (bit<16>)hdr.inner_tcp.dstPort; transition accept; } @name("parse_inner_udp") state parse_inner_udp { packet.extract(hdr.inner_udp); - meta.l3_metadata.lkp_inner_l4_sport = hdr.inner_udp.srcPort; - meta.l3_metadata.lkp_inner_l4_dport = hdr.inner_udp.dstPort; + meta.l3_metadata.lkp_inner_l4_sport = (bit<16>)hdr.inner_udp.srcPort; + meta.l3_metadata.lkp_inner_l4_dport = (bit<16>)hdr.inner_udp.dstPort; transition accept; } @name("parse_int_header") state parse_int_header { packet.extract(hdr.int_header); - meta.int_metadata.instruction_cnt = hdr.int_header.ins_cnt; + meta.int_metadata.instruction_cnt = (bit<16>)hdr.int_header.ins_cnt; transition select(hdr.int_header.rsvd1, hdr.int_header.total_hop_cnt) { (5w0x0, 8w0x0): accept; (5w0x1, 8w0x0): parse_all_int_meta_value_heders; @@ -977,10 +977,10 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_ipv4") state parse_ipv4 { packet.extract(hdr.ipv4); - meta.ipv4_metadata.lkp_ipv4_sa = hdr.ipv4.srcAddr; - meta.ipv4_metadata.lkp_ipv4_da = hdr.ipv4.dstAddr; - meta.l3_metadata.lkp_ip_proto = hdr.ipv4.protocol; - meta.l3_metadata.lkp_ip_ttl = hdr.ipv4.ttl; + meta.ipv4_metadata.lkp_ipv4_sa = (bit<32>)hdr.ipv4.srcAddr; + meta.ipv4_metadata.lkp_ipv4_da = (bit<32>)hdr.ipv4.dstAddr; + meta.l3_metadata.lkp_ip_proto = (bit<8>)hdr.ipv4.protocol; + meta.l3_metadata.lkp_ip_ttl = (bit<8>)hdr.ipv4.ttl; transition select(hdr.ipv4.fragOffset, hdr.ipv4.ihl, hdr.ipv4.protocol) { (13w0x0, 4w0x5, 8w0x1): parse_icmp; (13w0x0, 4w0x5, 8w0x6): parse_tcp; @@ -997,15 +997,15 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } } @name("parse_ipv4_in_ip") state parse_ipv4_in_ip { - meta.tunnel_metadata.ingress_tunnel_type = 5w3; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w3; transition parse_inner_ipv4; } @name("parse_ipv6") state parse_ipv6 { packet.extract(hdr.ipv6); - meta.ipv6_metadata.lkp_ipv6_sa = hdr.ipv6.srcAddr; - meta.ipv6_metadata.lkp_ipv6_da = hdr.ipv6.dstAddr; - meta.l3_metadata.lkp_ip_proto = hdr.ipv6.nextHdr; - meta.l3_metadata.lkp_ip_ttl = hdr.ipv6.hopLimit; + meta.ipv6_metadata.lkp_ipv6_sa = (bit<128>)hdr.ipv6.srcAddr; + meta.ipv6_metadata.lkp_ipv6_da = (bit<128>)hdr.ipv6.dstAddr; + meta.l3_metadata.lkp_ip_proto = (bit<8>)hdr.ipv6.nextHdr; + meta.l3_metadata.lkp_ip_ttl = (bit<8>)hdr.ipv6.hopLimit; transition select(hdr.ipv6.nextHdr) { 8w58: parse_icmp; 8w6: parse_tcp; @@ -1021,7 +1021,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } } @name("parse_ipv6_in_ip") state parse_ipv6_in_ip { - meta.tunnel_metadata.ingress_tunnel_type = 5w3; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w3; transition parse_inner_ipv6; } @name("parse_lisp") state parse_lisp { @@ -1056,11 +1056,11 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } } @name("parse_mpls_inner_ipv4") state parse_mpls_inner_ipv4 { - meta.tunnel_metadata.ingress_tunnel_type = 5w9; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w9; transition parse_inner_ipv4; } @name("parse_mpls_inner_ipv6") state parse_mpls_inner_ipv6 { - meta.tunnel_metadata.ingress_tunnel_type = 5w9; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w9; transition parse_inner_ipv6; } @name("parse_nsh") state parse_nsh { @@ -1075,8 +1075,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_nvgre") state parse_nvgre { packet.extract(hdr.nvgre); - meta.tunnel_metadata.ingress_tunnel_type = 5w5; - meta.tunnel_metadata.tunnel_vni = hdr.nvgre.tni; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w5; + meta.tunnel_metadata.tunnel_vni = (bit<24>)hdr.nvgre.tni; transition parse_inner_ethernet; } @name("parse_pw") state parse_pw { @@ -1114,15 +1114,15 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout transition accept; } @name("parse_set_prio_high") state parse_set_prio_high { - meta.intrinsic_metadata.priority = 3w5; + meta.intrinsic_metadata.priority = (bit<3>)3w5; transition accept; } @name("parse_set_prio_max") state parse_set_prio_max { - meta.intrinsic_metadata.priority = 3w7; + meta.intrinsic_metadata.priority = (bit<3>)3w7; transition accept; } @name("parse_set_prio_med") state parse_set_prio_med { - meta.intrinsic_metadata.priority = 3w3; + meta.intrinsic_metadata.priority = (bit<3>)3w3; transition accept; } @name("parse_sflow") state parse_sflow { @@ -1145,8 +1145,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_tcp") state parse_tcp { packet.extract(hdr.tcp); - meta.l3_metadata.lkp_l4_sport = hdr.tcp.srcPort; - meta.l3_metadata.lkp_l4_dport = hdr.tcp.dstPort; + meta.l3_metadata.lkp_l4_sport = (bit<16>)hdr.tcp.srcPort; + meta.l3_metadata.lkp_l4_dport = (bit<16>)hdr.tcp.dstPort; transition select(hdr.tcp.dstPort) { 16w179: parse_set_prio_med; 16w639: parse_set_prio_med; @@ -1159,8 +1159,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_udp") state parse_udp { packet.extract(hdr.udp); - meta.l3_metadata.lkp_l4_sport = hdr.udp.srcPort; - meta.l3_metadata.lkp_l4_dport = hdr.udp.dstPort; + meta.l3_metadata.lkp_l4_sport = (bit<16>)hdr.udp.srcPort; + meta.l3_metadata.lkp_l4_dport = (bit<16>)hdr.udp.dstPort; transition select(hdr.udp.dstPort) { 16w4789: parse_vxlan; 16w6081: parse_geneve; @@ -1177,8 +1177,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_udp_v6") state parse_udp_v6 { packet.extract(hdr.udp); - meta.l3_metadata.lkp_l4_sport = hdr.udp.srcPort; - meta.l3_metadata.lkp_l4_dport = hdr.udp.dstPort; + meta.l3_metadata.lkp_l4_sport = (bit<16>)hdr.udp.srcPort; + meta.l3_metadata.lkp_l4_dport = (bit<16>)hdr.udp.dstPort; transition select(hdr.udp.dstPort) { 16w67: parse_set_prio_med; 16w68: parse_set_prio_med; @@ -1211,14 +1211,14 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_vxlan") state parse_vxlan { packet.extract(hdr.vxlan); - meta.tunnel_metadata.ingress_tunnel_type = 5w1; - meta.tunnel_metadata.tunnel_vni = hdr.vxlan.vni; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w1; + meta.tunnel_metadata.tunnel_vni = (bit<24>)hdr.vxlan.vni; transition parse_inner_ethernet; } @name("parse_vxlan_gpe") state parse_vxlan_gpe { packet.extract(hdr.vxlan_gpe); - meta.tunnel_metadata.ingress_tunnel_type = 5w12; - meta.tunnel_metadata.tunnel_vni = hdr.vxlan_gpe.vni; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w12; + meta.tunnel_metadata.tunnel_vni = (bit<24>)hdr.vxlan_gpe.vni; transition select(hdr.vxlan_gpe.flags, hdr.vxlan_gpe.next_proto) { (8w0x8 &&& 8w0x8, 8w0x5 &&& 8w0xff): parse_gpe_int_header; default: parse_inner_ethernet; @@ -1233,45 +1233,45 @@ control process_replication(inout headers hdr, inout metadata meta, inout standa @name(".nop") action nop() { } @name(".set_replica_copy_bridged") action set_replica_copy_bridged() { - meta.egress_metadata.routed = 1w0; + meta.egress_metadata.routed = (bit<1>)1w0; } @name(".outer_replica_from_rid") action outer_replica_from_rid(bit<16> bd, bit<14> tunnel_index, bit<5> tunnel_type) { - meta.egress_metadata.bd = bd; - meta.multicast_metadata.replica = 1w1; - meta.multicast_metadata.inner_replica = 1w0; - meta.egress_metadata.routed = meta.l3_metadata.routed; - meta.egress_metadata.same_bd_check = bd ^ meta.ingress_metadata.bd; - meta.tunnel_metadata.tunnel_index = tunnel_index; - meta.tunnel_metadata.egress_tunnel_type = tunnel_type; + meta.egress_metadata.bd = (bit<16>)bd; + meta.multicast_metadata.replica = (bit<1>)1w1; + meta.multicast_metadata.inner_replica = (bit<1>)1w0; + meta.egress_metadata.routed = (bit<1>)meta.l3_metadata.routed; + meta.egress_metadata.same_bd_check = (bit<16>)(bd ^ meta.ingress_metadata.bd); + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)tunnel_type; } @name(".outer_replica_from_rid_with_nexthop") action outer_replica_from_rid_with_nexthop(bit<16> bd, bit<16> nexthop_index, bit<14> tunnel_index, bit<5> tunnel_type) { - meta.egress_metadata.bd = bd; - meta.multicast_metadata.replica = 1w1; - meta.multicast_metadata.inner_replica = 1w0; - meta.egress_metadata.routed = meta.l3_metadata.outer_routed; - meta.l3_metadata.nexthop_index = nexthop_index; - meta.egress_metadata.same_bd_check = bd ^ meta.ingress_metadata.bd; - meta.tunnel_metadata.tunnel_index = tunnel_index; - meta.tunnel_metadata.egress_tunnel_type = tunnel_type; + meta.egress_metadata.bd = (bit<16>)bd; + meta.multicast_metadata.replica = (bit<1>)1w1; + meta.multicast_metadata.inner_replica = (bit<1>)1w0; + meta.egress_metadata.routed = (bit<1>)meta.l3_metadata.outer_routed; + meta.l3_metadata.nexthop_index = (bit<16>)nexthop_index; + meta.egress_metadata.same_bd_check = (bit<16>)(bd ^ meta.ingress_metadata.bd); + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)tunnel_type; } @name(".inner_replica_from_rid") action inner_replica_from_rid(bit<16> bd, bit<14> tunnel_index, bit<5> tunnel_type) { - meta.egress_metadata.bd = bd; - meta.multicast_metadata.replica = 1w1; - meta.multicast_metadata.inner_replica = 1w1; - meta.egress_metadata.routed = meta.l3_metadata.routed; - meta.egress_metadata.same_bd_check = bd ^ meta.ingress_metadata.bd; - meta.tunnel_metadata.tunnel_index = tunnel_index; - meta.tunnel_metadata.egress_tunnel_type = tunnel_type; + meta.egress_metadata.bd = (bit<16>)bd; + meta.multicast_metadata.replica = (bit<1>)1w1; + meta.multicast_metadata.inner_replica = (bit<1>)1w1; + meta.egress_metadata.routed = (bit<1>)meta.l3_metadata.routed; + meta.egress_metadata.same_bd_check = (bit<16>)(bd ^ meta.ingress_metadata.bd); + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)tunnel_type; } @name(".inner_replica_from_rid_with_nexthop") action inner_replica_from_rid_with_nexthop(bit<16> bd, bit<16> nexthop_index, bit<14> tunnel_index, bit<5> tunnel_type) { - meta.egress_metadata.bd = bd; - meta.multicast_metadata.replica = 1w1; - meta.multicast_metadata.inner_replica = 1w1; - meta.egress_metadata.routed = meta.l3_metadata.routed; - meta.l3_metadata.nexthop_index = nexthop_index; - meta.egress_metadata.same_bd_check = bd ^ meta.ingress_metadata.bd; - meta.tunnel_metadata.tunnel_index = tunnel_index; - meta.tunnel_metadata.egress_tunnel_type = tunnel_type; + meta.egress_metadata.bd = (bit<16>)bd; + meta.multicast_metadata.replica = (bit<1>)1w1; + meta.multicast_metadata.inner_replica = (bit<1>)1w1; + meta.egress_metadata.routed = (bit<1>)meta.l3_metadata.routed; + meta.l3_metadata.nexthop_index = (bit<16>)nexthop_index; + meta.egress_metadata.same_bd_check = (bit<16>)(bd ^ meta.ingress_metadata.bd); + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)tunnel_type; } @name("replica_type") table replica_type { actions = { @@ -1313,11 +1313,11 @@ control process_vlan_decap(inout headers hdr, inout metadata meta, inout standar @name(".nop") action nop() { } @name(".remove_vlan_single_tagged") action remove_vlan_single_tagged() { - hdr.ethernet.etherType = hdr.vlan_tag_[0].etherType; + hdr.ethernet.etherType = (bit<16>)hdr.vlan_tag_[0].etherType; hdr.vlan_tag_[0].setInvalid(); } @name(".remove_vlan_double_tagged") action remove_vlan_double_tagged() { - hdr.ethernet.etherType = hdr.vlan_tag_[1].etherType; + hdr.ethernet.etherType = (bit<16>)hdr.vlan_tag_[1].etherType; hdr.vlan_tag_[0].setInvalid(); hdr.vlan_tag_[1].setInvalid(); } @@ -1432,26 +1432,26 @@ control process_tunnel_decap(inout headers hdr, inout metadata meta, inout stand hdr.gre.setInvalid(); hdr.ipv6.setInvalid(); hdr.inner_ipv4.setInvalid(); - hdr.ethernet.etherType = 16w0x800; + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".decap_ip_inner_ipv6") action decap_ip_inner_ipv6() { hdr.ipv6 = hdr.inner_ipv6; hdr.gre.setInvalid(); hdr.ipv4.setInvalid(); hdr.inner_ipv6.setInvalid(); - hdr.ethernet.etherType = 16w0x86dd; + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".decap_mpls_inner_ipv4_pop1") action decap_mpls_inner_ipv4_pop1() { hdr.mpls[0].setInvalid(); hdr.ipv4 = hdr.inner_ipv4; hdr.inner_ipv4.setInvalid(); - hdr.ethernet.etherType = 16w0x800; + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".decap_mpls_inner_ipv6_pop1") action decap_mpls_inner_ipv6_pop1() { hdr.mpls[0].setInvalid(); hdr.ipv6 = hdr.inner_ipv6; hdr.inner_ipv6.setInvalid(); - hdr.ethernet.etherType = 16w0x86dd; + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".decap_mpls_inner_ethernet_ipv4_pop1") action decap_mpls_inner_ethernet_ipv4_pop1() { hdr.mpls[0].setInvalid(); @@ -1477,14 +1477,14 @@ control process_tunnel_decap(inout headers hdr, inout metadata meta, inout stand hdr.mpls[1].setInvalid(); hdr.ipv4 = hdr.inner_ipv4; hdr.inner_ipv4.setInvalid(); - hdr.ethernet.etherType = 16w0x800; + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".decap_mpls_inner_ipv6_pop2") action decap_mpls_inner_ipv6_pop2() { hdr.mpls[0].setInvalid(); hdr.mpls[1].setInvalid(); hdr.ipv6 = hdr.inner_ipv6; hdr.inner_ipv6.setInvalid(); - hdr.ethernet.etherType = 16w0x86dd; + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".decap_mpls_inner_ethernet_ipv4_pop2") action decap_mpls_inner_ethernet_ipv4_pop2() { hdr.mpls[0].setInvalid(); @@ -1514,7 +1514,7 @@ control process_tunnel_decap(inout headers hdr, inout metadata meta, inout stand hdr.mpls[2].setInvalid(); hdr.ipv4 = hdr.inner_ipv4; hdr.inner_ipv4.setInvalid(); - hdr.ethernet.etherType = 16w0x800; + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".decap_mpls_inner_ipv6_pop3") action decap_mpls_inner_ipv6_pop3() { hdr.mpls[0].setInvalid(); @@ -1522,7 +1522,7 @@ control process_tunnel_decap(inout headers hdr, inout metadata meta, inout stand hdr.mpls[2].setInvalid(); hdr.ipv6 = hdr.inner_ipv6; hdr.inner_ipv6.setInvalid(); - hdr.ethernet.etherType = 16w0x86dd; + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".decap_mpls_inner_ethernet_ipv4_pop3") action decap_mpls_inner_ethernet_ipv4_pop3() { hdr.mpls[0].setInvalid(); @@ -1639,67 +1639,67 @@ control process_rewrite(inout headers hdr, inout metadata meta, inout standard_m @name(".nop") action nop() { } @name(".set_l2_rewrite") action set_l2_rewrite() { - meta.egress_metadata.routed = 1w0; - meta.egress_metadata.bd = meta.ingress_metadata.bd; - meta.egress_metadata.outer_bd = meta.ingress_metadata.bd; + meta.egress_metadata.routed = (bit<1>)1w0; + meta.egress_metadata.bd = (bit<16>)meta.ingress_metadata.bd; + meta.egress_metadata.outer_bd = (bit<16>)meta.ingress_metadata.bd; } @name(".set_l2_rewrite_with_tunnel") action set_l2_rewrite_with_tunnel(bit<14> tunnel_index, bit<5> tunnel_type) { - meta.egress_metadata.routed = 1w0; - meta.egress_metadata.bd = meta.ingress_metadata.bd; - meta.egress_metadata.outer_bd = meta.ingress_metadata.bd; - meta.tunnel_metadata.tunnel_index = tunnel_index; - meta.tunnel_metadata.egress_tunnel_type = tunnel_type; + meta.egress_metadata.routed = (bit<1>)1w0; + meta.egress_metadata.bd = (bit<16>)meta.ingress_metadata.bd; + meta.egress_metadata.outer_bd = (bit<16>)meta.ingress_metadata.bd; + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)tunnel_type; } @name(".set_l3_rewrite") action set_l3_rewrite(bit<16> bd, bit<8> mtu_index, bit<9> smac_idx, bit<48> dmac) { - meta.egress_metadata.routed = 1w1; - meta.egress_metadata.smac_idx = smac_idx; - meta.egress_metadata.mac_da = dmac; - meta.egress_metadata.bd = bd; - meta.egress_metadata.outer_bd = bd; - meta.l3_metadata.mtu_index = mtu_index; + meta.egress_metadata.routed = (bit<1>)1w1; + meta.egress_metadata.smac_idx = (bit<9>)smac_idx; + meta.egress_metadata.mac_da = (bit<48>)dmac; + meta.egress_metadata.bd = (bit<16>)bd; + meta.egress_metadata.outer_bd = (bit<16>)bd; + meta.l3_metadata.mtu_index = (bit<8>)mtu_index; } @name(".set_l3_rewrite_with_tunnel") action set_l3_rewrite_with_tunnel(bit<16> bd, bit<9> smac_idx, bit<48> dmac, bit<14> tunnel_index, bit<5> tunnel_type) { - meta.egress_metadata.routed = 1w1; - meta.egress_metadata.smac_idx = smac_idx; - meta.egress_metadata.mac_da = dmac; - meta.egress_metadata.bd = bd; - meta.egress_metadata.outer_bd = bd; - meta.tunnel_metadata.tunnel_index = tunnel_index; - meta.tunnel_metadata.egress_tunnel_type = tunnel_type; + meta.egress_metadata.routed = (bit<1>)1w1; + meta.egress_metadata.smac_idx = (bit<9>)smac_idx; + meta.egress_metadata.mac_da = (bit<48>)dmac; + meta.egress_metadata.bd = (bit<16>)bd; + meta.egress_metadata.outer_bd = (bit<16>)bd; + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)tunnel_type; } @name(".set_mpls_swap_push_rewrite_l2") action set_mpls_swap_push_rewrite_l2(bit<20> label, bit<14> tunnel_index, bit<4> header_count) { - meta.egress_metadata.routed = meta.l3_metadata.routed; - meta.egress_metadata.bd = meta.ingress_metadata.bd; - hdr.mpls[0].label = label; - meta.tunnel_metadata.tunnel_index = tunnel_index; - meta.tunnel_metadata.egress_header_count = header_count; - meta.tunnel_metadata.egress_tunnel_type = 5w13; + meta.egress_metadata.routed = (bit<1>)meta.l3_metadata.routed; + meta.egress_metadata.bd = (bit<16>)meta.ingress_metadata.bd; + hdr.mpls[0].label = (bit<20>)label; + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; + meta.tunnel_metadata.egress_header_count = (bit<4>)header_count; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)5w13; } @name(".set_mpls_push_rewrite_l2") action set_mpls_push_rewrite_l2(bit<14> tunnel_index, bit<4> header_count) { - meta.egress_metadata.routed = meta.l3_metadata.routed; - meta.egress_metadata.bd = meta.ingress_metadata.bd; - meta.tunnel_metadata.tunnel_index = tunnel_index; - meta.tunnel_metadata.egress_header_count = header_count; - meta.tunnel_metadata.egress_tunnel_type = 5w13; + meta.egress_metadata.routed = (bit<1>)meta.l3_metadata.routed; + meta.egress_metadata.bd = (bit<16>)meta.ingress_metadata.bd; + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; + meta.tunnel_metadata.egress_header_count = (bit<4>)header_count; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)5w13; } @name(".set_mpls_swap_push_rewrite_l3") action set_mpls_swap_push_rewrite_l3(bit<16> bd, bit<9> smac_idx, bit<48> dmac, bit<20> label, bit<14> tunnel_index, bit<4> header_count) { - meta.egress_metadata.routed = meta.l3_metadata.routed; - meta.egress_metadata.bd = bd; - hdr.mpls[0].label = label; - meta.egress_metadata.smac_idx = smac_idx; - meta.egress_metadata.mac_da = dmac; - meta.tunnel_metadata.tunnel_index = tunnel_index; - meta.tunnel_metadata.egress_header_count = header_count; - meta.tunnel_metadata.egress_tunnel_type = 5w14; + meta.egress_metadata.routed = (bit<1>)meta.l3_metadata.routed; + meta.egress_metadata.bd = (bit<16>)bd; + hdr.mpls[0].label = (bit<20>)label; + meta.egress_metadata.smac_idx = (bit<9>)smac_idx; + meta.egress_metadata.mac_da = (bit<48>)dmac; + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; + meta.tunnel_metadata.egress_header_count = (bit<4>)header_count; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)5w14; } @name(".set_mpls_push_rewrite_l3") action set_mpls_push_rewrite_l3(bit<16> bd, bit<9> smac_idx, bit<48> dmac, bit<14> tunnel_index, bit<4> header_count) { - meta.egress_metadata.routed = meta.l3_metadata.routed; - meta.egress_metadata.bd = bd; - meta.egress_metadata.smac_idx = smac_idx; - meta.egress_metadata.mac_da = dmac; - meta.tunnel_metadata.tunnel_index = tunnel_index; - meta.tunnel_metadata.egress_header_count = header_count; - meta.tunnel_metadata.egress_tunnel_type = 5w14; + meta.egress_metadata.routed = (bit<1>)meta.l3_metadata.routed; + meta.egress_metadata.bd = (bit<16>)bd; + meta.egress_metadata.smac_idx = (bit<9>)smac_idx; + meta.egress_metadata.mac_da = (bit<48>)dmac; + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; + meta.tunnel_metadata.egress_header_count = (bit<4>)header_count; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)5w14; } @name("rewrite") table rewrite { actions = { @@ -1727,57 +1727,57 @@ control process_rewrite(inout headers hdr, inout metadata meta, inout standard_m control process_int_insertion(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".int_set_header_0_bos") action int_set_header_0_bos() { - hdr.int_switch_id_header.bos = 1w1; + hdr.int_switch_id_header.bos = (bit<1>)1w1; } @name(".int_set_header_1_bos") action int_set_header_1_bos() { - hdr.int_ingress_port_id_header.bos = 1w1; + hdr.int_ingress_port_id_header.bos = (bit<1>)1w1; } @name(".int_set_header_2_bos") action int_set_header_2_bos() { - hdr.int_hop_latency_header.bos = 1w1; + hdr.int_hop_latency_header.bos = (bit<1>)1w1; } @name(".int_set_header_3_bos") action int_set_header_3_bos() { - hdr.int_q_occupancy_header.bos = 1w1; + hdr.int_q_occupancy_header.bos = (bit<1>)1w1; } @name(".int_set_header_4_bos") action int_set_header_4_bos() { - hdr.int_ingress_tstamp_header.bos = 1w1; + hdr.int_ingress_tstamp_header.bos = (bit<1>)1w1; } @name(".int_set_header_5_bos") action int_set_header_5_bos() { - hdr.int_egress_port_id_header.bos = 1w1; + hdr.int_egress_port_id_header.bos = (bit<1>)1w1; } @name(".int_set_header_6_bos") action int_set_header_6_bos() { - hdr.int_q_congestion_header.bos = 1w1; + hdr.int_q_congestion_header.bos = (bit<1>)1w1; } @name(".int_set_header_7_bos") action int_set_header_7_bos() { - hdr.int_egress_port_tx_utilization_header.bos = 1w1; + hdr.int_egress_port_tx_utilization_header.bos = (bit<1>)1w1; } @name(".nop") action nop() { } @name(".int_transit") action int_transit(bit<32> switch_id) { - meta.int_metadata.insert_cnt = hdr.int_header.max_hop_cnt - hdr.int_header.total_hop_cnt; - meta.int_metadata.switch_id = switch_id; - meta.int_metadata.insert_byte_cnt = meta.int_metadata.instruction_cnt << 2; - meta.int_metadata.gpe_int_hdr_len8 = hdr.int_header.ins_cnt; + meta.int_metadata.insert_cnt = (bit<8>)(hdr.int_header.max_hop_cnt - hdr.int_header.total_hop_cnt); + meta.int_metadata.switch_id = (bit<32>)switch_id; + meta.int_metadata.insert_byte_cnt = (bit<16>)(meta.int_metadata.instruction_cnt << 2); + meta.int_metadata.gpe_int_hdr_len8 = (bit<8>)hdr.int_header.ins_cnt; } @name(".int_reset") action int_reset() { - meta.int_metadata.switch_id = 32w0; - meta.int_metadata.insert_byte_cnt = 16w0; - meta.int_metadata.insert_cnt = 8w0; - meta.int_metadata.gpe_int_hdr_len8 = 8w0; - meta.int_metadata.gpe_int_hdr_len = 16w0; - meta.int_metadata.instruction_cnt = 16w0; + meta.int_metadata.switch_id = (bit<32>)32w0; + meta.int_metadata.insert_byte_cnt = (bit<16>)16w0; + meta.int_metadata.insert_cnt = (bit<8>)8w0; + meta.int_metadata.gpe_int_hdr_len8 = (bit<8>)8w0; + meta.int_metadata.gpe_int_hdr_len = (bit<16>)16w0; + meta.int_metadata.instruction_cnt = (bit<16>)16w0; } @name(".int_set_header_0003_i0") action int_set_header_0003_i0() { } @name(".int_set_header_3") action int_set_header_3() { hdr.int_q_occupancy_header.setValid(); - hdr.int_q_occupancy_header.q_occupancy = meta.intrinsic_metadata.enq_qdepth; + hdr.int_q_occupancy_header.q_occupancy = (bit<31>)meta.intrinsic_metadata.enq_qdepth; } @name(".int_set_header_0003_i1") action int_set_header_0003_i1() { int_set_header_3(); } @name(".int_set_header_2") action int_set_header_2() { hdr.int_hop_latency_header.setValid(); - hdr.int_hop_latency_header.hop_latency = meta.intrinsic_metadata.deq_timedelta; + hdr.int_hop_latency_header.hop_latency = (bit<31>)meta.intrinsic_metadata.deq_timedelta; } @name(".int_set_header_0003_i2") action int_set_header_0003_i2() { int_set_header_2(); @@ -1788,7 +1788,7 @@ control process_int_insertion(inout headers hdr, inout metadata meta, inout stan } @name(".int_set_header_1") action int_set_header_1() { hdr.int_ingress_port_id_header.setValid(); - hdr.int_ingress_port_id_header.ingress_port_id = meta.ingress_metadata.ifindex; + hdr.int_ingress_port_id_header.ingress_port_id = (bit<31>)meta.ingress_metadata.ifindex; } @name(".int_set_header_0003_i4") action int_set_header_0003_i4() { int_set_header_1(); @@ -1808,7 +1808,7 @@ control process_int_insertion(inout headers hdr, inout metadata meta, inout stan } @name(".int_set_header_0") action int_set_header_0() { hdr.int_switch_id_header.setValid(); - hdr.int_switch_id_header.switch_id = meta.int_metadata.switch_id; + hdr.int_switch_id_header.switch_id = (bit<31>)meta.int_metadata.switch_id; } @name(".int_set_header_0003_i8") action int_set_header_0003_i8() { int_set_header_0(); @@ -1850,14 +1850,14 @@ control process_int_insertion(inout headers hdr, inout metadata meta, inout stan } @name(".int_set_header_7") action int_set_header_7() { hdr.int_egress_port_tx_utilization_header.setValid(); - hdr.int_egress_port_tx_utilization_header.egress_port_tx_utilization = 31w0x7fffffff; + hdr.int_egress_port_tx_utilization_header.egress_port_tx_utilization = (bit<31>)31w0x7fffffff; } @name(".int_set_header_0407_i1") action int_set_header_0407_i1() { int_set_header_7(); } @name(".int_set_header_6") action int_set_header_6() { hdr.int_q_congestion_header.setValid(); - hdr.int_q_congestion_header.q_congestion = 31w0x7fffffff; + hdr.int_q_congestion_header.q_congestion = (bit<31>)31w0x7fffffff; } @name(".int_set_header_0407_i2") action int_set_header_0407_i2() { int_set_header_6(); @@ -1868,7 +1868,7 @@ control process_int_insertion(inout headers hdr, inout metadata meta, inout stan } @name(".int_set_header_5") action int_set_header_5() { hdr.int_egress_port_id_header.setValid(); - hdr.int_egress_port_id_header.egress_port_id = standard_metadata.egress_port; + hdr.int_egress_port_id_header.egress_port_id = (bit<31>)standard_metadata.egress_port; } @name(".int_set_header_0407_i4") action int_set_header_0407_i4() { int_set_header_5(); @@ -1888,7 +1888,7 @@ control process_int_insertion(inout headers hdr, inout metadata meta, inout stan } @name(".int_set_header_4") action int_set_header_4() { hdr.int_ingress_tstamp_header.setValid(); - hdr.int_ingress_tstamp_header.ingress_tstamp = meta.i2e_metadata.ingress_tstamp; + hdr.int_ingress_tstamp_header.ingress_tstamp = (bit<31>)meta.i2e_metadata.ingress_tstamp; } @name(".int_set_header_0407_i8") action int_set_header_0407_i8() { int_set_header_4(); @@ -1927,10 +1927,10 @@ control process_int_insertion(inout headers hdr, inout metadata meta, inout stan int_set_header_4(); } @name(".int_set_e_bit") action int_set_e_bit() { - hdr.int_header.e = 1w1; + hdr.int_header.e = (bit<1>)1w1; } @name(".int_update_total_hop_cnt") action int_update_total_hop_cnt() { - hdr.int_header.total_hop_cnt = hdr.int_header.total_hop_cnt + 8w1; + hdr.int_header.total_hop_cnt = (bit<8>)(hdr.int_header.total_hop_cnt + 8w1); } @name("int_bos") table int_bos { actions = { @@ -2076,29 +2076,29 @@ control process_mac_rewrite(inout headers hdr, inout metadata meta, inout standa @name(".nop") action nop() { } @name(".rewrite_ipv4_unicast_mac") action rewrite_ipv4_unicast_mac(bit<48> smac) { - hdr.ethernet.srcAddr = smac; - hdr.ethernet.dstAddr = meta.egress_metadata.mac_da; - hdr.ipv4.ttl = hdr.ipv4.ttl + 8w255; + hdr.ethernet.srcAddr = (bit<48>)smac; + hdr.ethernet.dstAddr = (bit<48>)meta.egress_metadata.mac_da; + hdr.ipv4.ttl = (bit<8>)(hdr.ipv4.ttl + 8w255); } @name(".rewrite_ipv4_multicast_mac") action rewrite_ipv4_multicast_mac(bit<48> smac) { - hdr.ethernet.srcAddr = smac; + hdr.ethernet.srcAddr = (bit<48>)smac; hdr.ethernet.dstAddr[47:23] = 48w0x1005e000000[47:23]; - hdr.ipv4.ttl = hdr.ipv4.ttl + 8w255; + hdr.ipv4.ttl = (bit<8>)(hdr.ipv4.ttl + 8w255); } @name(".rewrite_ipv6_unicast_mac") action rewrite_ipv6_unicast_mac(bit<48> smac) { - hdr.ethernet.srcAddr = smac; - hdr.ethernet.dstAddr = meta.egress_metadata.mac_da; - hdr.ipv6.hopLimit = hdr.ipv6.hopLimit + 8w255; + hdr.ethernet.srcAddr = (bit<48>)smac; + hdr.ethernet.dstAddr = (bit<48>)meta.egress_metadata.mac_da; + hdr.ipv6.hopLimit = (bit<8>)(hdr.ipv6.hopLimit + 8w255); } @name(".rewrite_ipv6_multicast_mac") action rewrite_ipv6_multicast_mac(bit<48> smac) { - hdr.ethernet.srcAddr = smac; + hdr.ethernet.srcAddr = (bit<48>)smac; hdr.ethernet.dstAddr[47:32] = 48w0x333300000000[47:32]; - hdr.ipv6.hopLimit = hdr.ipv6.hopLimit + 8w255; + hdr.ipv6.hopLimit = (bit<8>)(hdr.ipv6.hopLimit + 8w255); } @name(".rewrite_mpls_mac") action rewrite_mpls_mac(bit<48> smac) { - hdr.ethernet.srcAddr = smac; - hdr.ethernet.dstAddr = meta.egress_metadata.mac_da; - hdr.mpls[0].ttl = hdr.mpls[0].ttl + 8w255; + hdr.ethernet.srcAddr = (bit<48>)smac; + hdr.ethernet.dstAddr = (bit<48>)meta.egress_metadata.mac_da; + hdr.mpls[0].ttl = (bit<8>)(hdr.mpls[0].ttl + 8w255); } @name("mac_rewrite") table mac_rewrite { actions = { @@ -2130,369 +2130,369 @@ control process_tunnel_encap(inout headers hdr, inout metadata meta, inout stand @name(".nop") action nop() { } @name(".set_egress_tunnel_vni") action set_egress_tunnel_vni(bit<24> vnid) { - meta.tunnel_metadata.vnid = vnid; + meta.tunnel_metadata.vnid = (bit<24>)vnid; } @name(".rewrite_tunnel_dmac") action rewrite_tunnel_dmac(bit<48> dmac) { - hdr.ethernet.dstAddr = dmac; + hdr.ethernet.dstAddr = (bit<48>)dmac; } @name(".rewrite_tunnel_ipv4_dst") action rewrite_tunnel_ipv4_dst(bit<32> ip) { - hdr.ipv4.dstAddr = ip; + hdr.ipv4.dstAddr = (bit<32>)ip; } @name(".rewrite_tunnel_ipv6_dst") action rewrite_tunnel_ipv6_dst(bit<128> ip) { - hdr.ipv6.dstAddr = ip; + hdr.ipv6.dstAddr = (bit<128>)ip; } @name(".inner_ipv4_udp_rewrite") action inner_ipv4_udp_rewrite() { hdr.inner_ipv4 = hdr.ipv4; hdr.inner_udp = hdr.udp; - meta.egress_metadata.payload_length = hdr.ipv4.totalLen; + meta.egress_metadata.payload_length = (bit<16>)hdr.ipv4.totalLen; hdr.udp.setInvalid(); hdr.ipv4.setInvalid(); } @name(".inner_ipv4_tcp_rewrite") action inner_ipv4_tcp_rewrite() { hdr.inner_ipv4 = hdr.ipv4; hdr.inner_tcp = hdr.tcp; - meta.egress_metadata.payload_length = hdr.ipv4.totalLen; + meta.egress_metadata.payload_length = (bit<16>)hdr.ipv4.totalLen; hdr.tcp.setInvalid(); hdr.ipv4.setInvalid(); } @name(".inner_ipv4_icmp_rewrite") action inner_ipv4_icmp_rewrite() { hdr.inner_ipv4 = hdr.ipv4; hdr.inner_icmp = hdr.icmp; - meta.egress_metadata.payload_length = hdr.ipv4.totalLen; + meta.egress_metadata.payload_length = (bit<16>)hdr.ipv4.totalLen; hdr.icmp.setInvalid(); hdr.ipv4.setInvalid(); } @name(".inner_ipv4_unknown_rewrite") action inner_ipv4_unknown_rewrite() { hdr.inner_ipv4 = hdr.ipv4; - meta.egress_metadata.payload_length = hdr.ipv4.totalLen; + meta.egress_metadata.payload_length = (bit<16>)hdr.ipv4.totalLen; hdr.ipv4.setInvalid(); } @name(".inner_ipv6_udp_rewrite") action inner_ipv6_udp_rewrite() { hdr.inner_ipv6 = hdr.ipv6; hdr.inner_udp = hdr.udp; - meta.egress_metadata.payload_length = hdr.ipv6.payloadLen + 16w40; + meta.egress_metadata.payload_length = (bit<16>)(hdr.ipv6.payloadLen + 16w40); hdr.ipv6.setInvalid(); } @name(".inner_ipv6_tcp_rewrite") action inner_ipv6_tcp_rewrite() { hdr.inner_ipv6 = hdr.ipv6; hdr.inner_tcp = hdr.tcp; - meta.egress_metadata.payload_length = hdr.ipv6.payloadLen + 16w40; + meta.egress_metadata.payload_length = (bit<16>)(hdr.ipv6.payloadLen + 16w40); hdr.tcp.setInvalid(); hdr.ipv6.setInvalid(); } @name(".inner_ipv6_icmp_rewrite") action inner_ipv6_icmp_rewrite() { hdr.inner_ipv6 = hdr.ipv6; hdr.inner_icmp = hdr.icmp; - meta.egress_metadata.payload_length = hdr.ipv6.payloadLen + 16w40; + meta.egress_metadata.payload_length = (bit<16>)(hdr.ipv6.payloadLen + 16w40); hdr.icmp.setInvalid(); hdr.ipv6.setInvalid(); } @name(".inner_ipv6_unknown_rewrite") action inner_ipv6_unknown_rewrite() { hdr.inner_ipv6 = hdr.ipv6; - meta.egress_metadata.payload_length = hdr.ipv6.payloadLen + 16w40; + meta.egress_metadata.payload_length = (bit<16>)(hdr.ipv6.payloadLen + 16w40); hdr.ipv6.setInvalid(); } @name(".inner_non_ip_rewrite") action inner_non_ip_rewrite() { - meta.egress_metadata.payload_length = standard_metadata.packet_length + (bit<32>)16w65522; + meta.egress_metadata.payload_length = (bit<16>)(standard_metadata.packet_length + (bit<32>)16w65522); } @name(".f_insert_vxlan_header") action f_insert_vxlan_header() { hdr.inner_ethernet = hdr.ethernet; hdr.udp.setValid(); hdr.vxlan.setValid(); - hdr.udp.srcPort = meta.hash_metadata.entropy_hash; - hdr.udp.dstPort = 16w4789; - hdr.udp.checksum = 16w0; - hdr.udp.length_ = meta.egress_metadata.payload_length + 16w30; - hdr.vxlan.flags = 8w0x8; - hdr.vxlan.reserved = 24w0; - hdr.vxlan.vni = meta.tunnel_metadata.vnid; - hdr.vxlan.reserved2 = 8w0; + hdr.udp.srcPort = (bit<16>)meta.hash_metadata.entropy_hash; + hdr.udp.dstPort = (bit<16>)16w4789; + hdr.udp.checksum = (bit<16>)16w0; + hdr.udp.length_ = (bit<16>)(meta.egress_metadata.payload_length + 16w30); + hdr.vxlan.flags = (bit<8>)8w0x8; + hdr.vxlan.reserved = (bit<24>)24w0; + hdr.vxlan.vni = (bit<24>)meta.tunnel_metadata.vnid; + hdr.vxlan.reserved2 = (bit<8>)8w0; } @name(".f_insert_ipv4_header") action f_insert_ipv4_header(bit<8> proto) { hdr.ipv4.setValid(); - hdr.ipv4.protocol = proto; - hdr.ipv4.ttl = 8w64; - hdr.ipv4.version = 4w0x4; - hdr.ipv4.ihl = 4w0x5; - hdr.ipv4.identification = 16w0; + hdr.ipv4.protocol = (bit<8>)proto; + hdr.ipv4.ttl = (bit<8>)8w64; + hdr.ipv4.version = (bit<4>)4w0x4; + hdr.ipv4.ihl = (bit<4>)4w0x5; + hdr.ipv4.identification = (bit<16>)16w0; } @name(".ipv4_vxlan_rewrite") action ipv4_vxlan_rewrite() { f_insert_vxlan_header(); f_insert_ipv4_header(8w17); - hdr.ipv4.totalLen = meta.egress_metadata.payload_length + 16w50; - hdr.ethernet.etherType = 16w0x800; + hdr.ipv4.totalLen = (bit<16>)(meta.egress_metadata.payload_length + 16w50); + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".f_insert_ipv6_header") action f_insert_ipv6_header(bit<8> proto) { hdr.ipv6.setValid(); - hdr.ipv6.version = 4w0x6; - hdr.ipv6.nextHdr = proto; - hdr.ipv6.hopLimit = 8w64; - hdr.ipv6.trafficClass = 8w0; - hdr.ipv6.flowLabel = 20w0; + hdr.ipv6.version = (bit<4>)4w0x6; + hdr.ipv6.nextHdr = (bit<8>)proto; + hdr.ipv6.hopLimit = (bit<8>)8w64; + hdr.ipv6.trafficClass = (bit<8>)8w0; + hdr.ipv6.flowLabel = (bit<20>)20w0; } @name(".ipv6_vxlan_rewrite") action ipv6_vxlan_rewrite() { f_insert_vxlan_header(); f_insert_ipv6_header(8w17); - hdr.ipv6.payloadLen = meta.egress_metadata.payload_length + 16w30; - hdr.ethernet.etherType = 16w0x86dd; + hdr.ipv6.payloadLen = (bit<16>)(meta.egress_metadata.payload_length + 16w30); + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".f_insert_genv_header") action f_insert_genv_header() { hdr.inner_ethernet = hdr.ethernet; hdr.udp.setValid(); hdr.genv.setValid(); - hdr.udp.srcPort = meta.hash_metadata.entropy_hash; - hdr.udp.dstPort = 16w6081; - hdr.udp.checksum = 16w0; - hdr.udp.length_ = meta.egress_metadata.payload_length + 16w30; - hdr.genv.ver = 2w0; - hdr.genv.oam = 1w0; - hdr.genv.critical = 1w0; - hdr.genv.optLen = 6w0; - hdr.genv.protoType = 16w0x6558; - hdr.genv.vni = meta.tunnel_metadata.vnid; - hdr.genv.reserved = 6w0; - hdr.genv.reserved2 = 8w0; + hdr.udp.srcPort = (bit<16>)meta.hash_metadata.entropy_hash; + hdr.udp.dstPort = (bit<16>)16w6081; + hdr.udp.checksum = (bit<16>)16w0; + hdr.udp.length_ = (bit<16>)(meta.egress_metadata.payload_length + 16w30); + hdr.genv.ver = (bit<2>)2w0; + hdr.genv.oam = (bit<1>)1w0; + hdr.genv.critical = (bit<1>)1w0; + hdr.genv.optLen = (bit<6>)6w0; + hdr.genv.protoType = (bit<16>)16w0x6558; + hdr.genv.vni = (bit<24>)meta.tunnel_metadata.vnid; + hdr.genv.reserved = (bit<6>)6w0; + hdr.genv.reserved2 = (bit<8>)8w0; } @name(".ipv4_genv_rewrite") action ipv4_genv_rewrite() { f_insert_genv_header(); f_insert_ipv4_header(8w17); - hdr.ipv4.totalLen = meta.egress_metadata.payload_length + 16w50; - hdr.ethernet.etherType = 16w0x800; + hdr.ipv4.totalLen = (bit<16>)(meta.egress_metadata.payload_length + 16w50); + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".ipv6_genv_rewrite") action ipv6_genv_rewrite() { f_insert_genv_header(); f_insert_ipv6_header(8w17); - hdr.ipv6.payloadLen = meta.egress_metadata.payload_length + 16w30; - hdr.ethernet.etherType = 16w0x86dd; + hdr.ipv6.payloadLen = (bit<16>)(meta.egress_metadata.payload_length + 16w30); + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".f_insert_nvgre_header") action f_insert_nvgre_header() { hdr.inner_ethernet = hdr.ethernet; hdr.gre.setValid(); hdr.nvgre.setValid(); - hdr.gre.proto = 16w0x6558; - hdr.gre.recurse = 3w0; - hdr.gre.flags = 5w0; - hdr.gre.ver = 3w0; - hdr.gre.R = 1w0; - hdr.gre.K = 1w1; - hdr.gre.C = 1w0; - hdr.gre.S = 1w0; - hdr.gre.s = 1w0; - hdr.nvgre.tni = meta.tunnel_metadata.vnid; + hdr.gre.proto = (bit<16>)16w0x6558; + hdr.gre.recurse = (bit<3>)3w0; + hdr.gre.flags = (bit<5>)5w0; + hdr.gre.ver = (bit<3>)3w0; + hdr.gre.R = (bit<1>)1w0; + hdr.gre.K = (bit<1>)1w1; + hdr.gre.C = (bit<1>)1w0; + hdr.gre.S = (bit<1>)1w0; + hdr.gre.s = (bit<1>)1w0; + hdr.nvgre.tni = (bit<24>)meta.tunnel_metadata.vnid; hdr.nvgre.flow_id[7:0] = meta.hash_metadata.entropy_hash[7:0]; } @name(".ipv4_nvgre_rewrite") action ipv4_nvgre_rewrite() { f_insert_nvgre_header(); f_insert_ipv4_header(8w47); - hdr.ipv4.totalLen = meta.egress_metadata.payload_length + 16w42; - hdr.ethernet.etherType = 16w0x800; + hdr.ipv4.totalLen = (bit<16>)(meta.egress_metadata.payload_length + 16w42); + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".ipv6_nvgre_rewrite") action ipv6_nvgre_rewrite() { f_insert_nvgre_header(); f_insert_ipv6_header(8w47); - hdr.ipv6.payloadLen = meta.egress_metadata.payload_length + 16w22; - hdr.ethernet.etherType = 16w0x86dd; + hdr.ipv6.payloadLen = (bit<16>)(meta.egress_metadata.payload_length + 16w22); + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".f_insert_gre_header") action f_insert_gre_header() { hdr.gre.setValid(); } @name(".ipv4_gre_rewrite") action ipv4_gre_rewrite() { f_insert_gre_header(); - hdr.gre.proto = hdr.ethernet.etherType; + hdr.gre.proto = (bit<16>)hdr.ethernet.etherType; f_insert_ipv4_header(8w47); - hdr.ipv4.totalLen = meta.egress_metadata.payload_length + 16w38; - hdr.ethernet.etherType = 16w0x800; + hdr.ipv4.totalLen = (bit<16>)(meta.egress_metadata.payload_length + 16w38); + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".ipv6_gre_rewrite") action ipv6_gre_rewrite() { f_insert_gre_header(); - hdr.gre.proto = 16w0x800; + hdr.gre.proto = (bit<16>)16w0x800; f_insert_ipv6_header(8w47); - hdr.ipv6.payloadLen = meta.egress_metadata.payload_length + 16w18; - hdr.ethernet.etherType = 16w0x86dd; + hdr.ipv6.payloadLen = (bit<16>)(meta.egress_metadata.payload_length + 16w18); + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".ipv4_ipv4_rewrite") action ipv4_ipv4_rewrite() { f_insert_ipv4_header(8w4); - hdr.ipv4.totalLen = meta.egress_metadata.payload_length + 16w20; - hdr.ethernet.etherType = 16w0x800; + hdr.ipv4.totalLen = (bit<16>)(meta.egress_metadata.payload_length + 16w20); + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".ipv4_ipv6_rewrite") action ipv4_ipv6_rewrite() { f_insert_ipv4_header(8w41); - hdr.ipv4.totalLen = meta.egress_metadata.payload_length + 16w40; - hdr.ethernet.etherType = 16w0x800; + hdr.ipv4.totalLen = (bit<16>)(meta.egress_metadata.payload_length + 16w40); + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".ipv6_ipv4_rewrite") action ipv6_ipv4_rewrite() { f_insert_ipv6_header(8w4); - hdr.ipv6.payloadLen = meta.egress_metadata.payload_length + 16w20; - hdr.ethernet.etherType = 16w0x86dd; + hdr.ipv6.payloadLen = (bit<16>)(meta.egress_metadata.payload_length + 16w20); + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".ipv6_ipv6_rewrite") action ipv6_ipv6_rewrite() { f_insert_ipv6_header(8w41); - hdr.ipv6.payloadLen = meta.egress_metadata.payload_length + 16w40; - hdr.ethernet.etherType = 16w0x86dd; + hdr.ipv6.payloadLen = (bit<16>)(meta.egress_metadata.payload_length + 16w40); + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".f_insert_erspan_t3_header") action f_insert_erspan_t3_header() { hdr.inner_ethernet = hdr.ethernet; hdr.gre.setValid(); hdr.erspan_t3_header.setValid(); - hdr.gre.C = 1w0; - hdr.gre.R = 1w0; - hdr.gre.K = 1w0; - hdr.gre.S = 1w0; - hdr.gre.s = 1w0; - hdr.gre.recurse = 3w0; - hdr.gre.flags = 5w0; - hdr.gre.ver = 3w0; - hdr.gre.proto = 16w0x22eb; - hdr.erspan_t3_header.timestamp = meta.i2e_metadata.ingress_tstamp; - hdr.erspan_t3_header.span_id = meta.i2e_metadata.mirror_session_id; - hdr.erspan_t3_header.version = 4w2; - hdr.erspan_t3_header.sgt_other = 32w0; + hdr.gre.C = (bit<1>)1w0; + hdr.gre.R = (bit<1>)1w0; + hdr.gre.K = (bit<1>)1w0; + hdr.gre.S = (bit<1>)1w0; + hdr.gre.s = (bit<1>)1w0; + hdr.gre.recurse = (bit<3>)3w0; + hdr.gre.flags = (bit<5>)5w0; + hdr.gre.ver = (bit<3>)3w0; + hdr.gre.proto = (bit<16>)16w0x22eb; + hdr.erspan_t3_header.timestamp = (bit<32>)meta.i2e_metadata.ingress_tstamp; + hdr.erspan_t3_header.span_id = (bit<10>)meta.i2e_metadata.mirror_session_id; + hdr.erspan_t3_header.version = (bit<4>)4w2; + hdr.erspan_t3_header.sgt_other = (bit<32>)32w0; } @name(".ipv4_erspan_t3_rewrite") action ipv4_erspan_t3_rewrite() { f_insert_erspan_t3_header(); f_insert_ipv4_header(8w47); - hdr.ipv4.totalLen = meta.egress_metadata.payload_length + 16w50; + hdr.ipv4.totalLen = (bit<16>)(meta.egress_metadata.payload_length + 16w50); } @name(".ipv6_erspan_t3_rewrite") action ipv6_erspan_t3_rewrite() { f_insert_erspan_t3_header(); f_insert_ipv6_header(8w47); - hdr.ipv6.payloadLen = meta.egress_metadata.payload_length + 16w26; + hdr.ipv6.payloadLen = (bit<16>)(meta.egress_metadata.payload_length + 16w26); } @name(".mpls_ethernet_push1_rewrite") action mpls_ethernet_push1_rewrite() { hdr.inner_ethernet = hdr.ethernet; hdr.mpls.push_front(1); - hdr.ethernet.etherType = 16w0x8847; + hdr.ethernet.etherType = (bit<16>)16w0x8847; } @name(".mpls_ip_push1_rewrite") action mpls_ip_push1_rewrite() { hdr.mpls.push_front(1); - hdr.ethernet.etherType = 16w0x8847; + hdr.ethernet.etherType = (bit<16>)16w0x8847; } @name(".mpls_ethernet_push2_rewrite") action mpls_ethernet_push2_rewrite() { hdr.inner_ethernet = hdr.ethernet; hdr.mpls.push_front(2); - hdr.ethernet.etherType = 16w0x8847; + hdr.ethernet.etherType = (bit<16>)16w0x8847; } @name(".mpls_ip_push2_rewrite") action mpls_ip_push2_rewrite() { hdr.mpls.push_front(2); - hdr.ethernet.etherType = 16w0x8847; + hdr.ethernet.etherType = (bit<16>)16w0x8847; } @name(".mpls_ethernet_push3_rewrite") action mpls_ethernet_push3_rewrite() { hdr.inner_ethernet = hdr.ethernet; hdr.mpls.push_front(3); - hdr.ethernet.etherType = 16w0x8847; + hdr.ethernet.etherType = (bit<16>)16w0x8847; } @name(".mpls_ip_push3_rewrite") action mpls_ip_push3_rewrite() { hdr.mpls.push_front(3); - hdr.ethernet.etherType = 16w0x8847; + hdr.ethernet.etherType = (bit<16>)16w0x8847; } @name(".fabric_rewrite") action fabric_rewrite(bit<14> tunnel_index) { - meta.tunnel_metadata.tunnel_index = tunnel_index; + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; } @name(".set_tunnel_rewrite_details") action set_tunnel_rewrite_details(bit<16> outer_bd, bit<8> mtu_index, bit<9> smac_idx, bit<14> dmac_idx, bit<9> sip_index, bit<14> dip_index) { - meta.egress_metadata.outer_bd = outer_bd; - meta.tunnel_metadata.tunnel_smac_index = smac_idx; - meta.tunnel_metadata.tunnel_dmac_index = dmac_idx; - meta.tunnel_metadata.tunnel_src_index = sip_index; - meta.tunnel_metadata.tunnel_dst_index = dip_index; - meta.l3_metadata.mtu_index = mtu_index; + meta.egress_metadata.outer_bd = (bit<16>)outer_bd; + meta.tunnel_metadata.tunnel_smac_index = (bit<9>)smac_idx; + meta.tunnel_metadata.tunnel_dmac_index = (bit<14>)dmac_idx; + meta.tunnel_metadata.tunnel_src_index = (bit<9>)sip_index; + meta.tunnel_metadata.tunnel_dst_index = (bit<14>)dip_index; + meta.l3_metadata.mtu_index = (bit<8>)mtu_index; } @name(".set_mpls_rewrite_push1") action set_mpls_rewrite_push1(bit<20> label1, bit<3> exp1, bit<8> ttl1, bit<9> smac_idx, bit<14> dmac_idx) { - hdr.mpls[0].label = label1; - hdr.mpls[0].exp = exp1; - hdr.mpls[0].bos = 1w0x1; - hdr.mpls[0].ttl = ttl1; - meta.tunnel_metadata.tunnel_smac_index = smac_idx; - meta.tunnel_metadata.tunnel_dmac_index = dmac_idx; + hdr.mpls[0].label = (bit<20>)label1; + hdr.mpls[0].exp = (bit<3>)exp1; + hdr.mpls[0].bos = (bit<1>)1w0x1; + hdr.mpls[0].ttl = (bit<8>)ttl1; + meta.tunnel_metadata.tunnel_smac_index = (bit<9>)smac_idx; + meta.tunnel_metadata.tunnel_dmac_index = (bit<14>)dmac_idx; } @name(".set_mpls_rewrite_push2") action set_mpls_rewrite_push2(bit<20> label1, bit<3> exp1, bit<8> ttl1, bit<20> label2, bit<3> exp2, bit<8> ttl2, bit<9> smac_idx, bit<14> dmac_idx) { - hdr.mpls[0].label = label1; - hdr.mpls[0].exp = exp1; - hdr.mpls[0].ttl = ttl1; - hdr.mpls[0].bos = 1w0x0; - hdr.mpls[1].label = label2; - hdr.mpls[1].exp = exp2; - hdr.mpls[1].ttl = ttl2; - hdr.mpls[1].bos = 1w0x1; - meta.tunnel_metadata.tunnel_smac_index = smac_idx; - meta.tunnel_metadata.tunnel_dmac_index = dmac_idx; + hdr.mpls[0].label = (bit<20>)label1; + hdr.mpls[0].exp = (bit<3>)exp1; + hdr.mpls[0].ttl = (bit<8>)ttl1; + hdr.mpls[0].bos = (bit<1>)1w0x0; + hdr.mpls[1].label = (bit<20>)label2; + hdr.mpls[1].exp = (bit<3>)exp2; + hdr.mpls[1].ttl = (bit<8>)ttl2; + hdr.mpls[1].bos = (bit<1>)1w0x1; + meta.tunnel_metadata.tunnel_smac_index = (bit<9>)smac_idx; + meta.tunnel_metadata.tunnel_dmac_index = (bit<14>)dmac_idx; } @name(".set_mpls_rewrite_push3") action set_mpls_rewrite_push3(bit<20> label1, bit<3> exp1, bit<8> ttl1, bit<20> label2, bit<3> exp2, bit<8> ttl2, bit<20> label3, bit<3> exp3, bit<8> ttl3, bit<9> smac_idx, bit<14> dmac_idx) { - hdr.mpls[0].label = label1; - hdr.mpls[0].exp = exp1; - hdr.mpls[0].ttl = ttl1; - hdr.mpls[0].bos = 1w0x0; - hdr.mpls[1].label = label2; - hdr.mpls[1].exp = exp2; - hdr.mpls[1].ttl = ttl2; - hdr.mpls[1].bos = 1w0x0; - hdr.mpls[2].label = label3; - hdr.mpls[2].exp = exp3; - hdr.mpls[2].ttl = ttl3; - hdr.mpls[2].bos = 1w0x1; - meta.tunnel_metadata.tunnel_smac_index = smac_idx; - meta.tunnel_metadata.tunnel_dmac_index = dmac_idx; + hdr.mpls[0].label = (bit<20>)label1; + hdr.mpls[0].exp = (bit<3>)exp1; + hdr.mpls[0].ttl = (bit<8>)ttl1; + hdr.mpls[0].bos = (bit<1>)1w0x0; + hdr.mpls[1].label = (bit<20>)label2; + hdr.mpls[1].exp = (bit<3>)exp2; + hdr.mpls[1].ttl = (bit<8>)ttl2; + hdr.mpls[1].bos = (bit<1>)1w0x0; + hdr.mpls[2].label = (bit<20>)label3; + hdr.mpls[2].exp = (bit<3>)exp3; + hdr.mpls[2].ttl = (bit<8>)ttl3; + hdr.mpls[2].bos = (bit<1>)1w0x1; + meta.tunnel_metadata.tunnel_smac_index = (bit<9>)smac_idx; + meta.tunnel_metadata.tunnel_dmac_index = (bit<14>)dmac_idx; } @name(".cpu_rx_rewrite") action cpu_rx_rewrite() { hdr.fabric_header.setValid(); - hdr.fabric_header.headerVersion = 2w0; - hdr.fabric_header.packetVersion = 2w0; - hdr.fabric_header.pad1 = 1w0; - hdr.fabric_header.packetType = 3w5; + hdr.fabric_header.headerVersion = (bit<2>)2w0; + hdr.fabric_header.packetVersion = (bit<2>)2w0; + hdr.fabric_header.pad1 = (bit<1>)1w0; + hdr.fabric_header.packetType = (bit<3>)3w5; hdr.fabric_header_cpu.setValid(); - hdr.fabric_header_cpu.ingressPort = meta.ingress_metadata.ingress_port; - hdr.fabric_header_cpu.ingressIfindex = meta.ingress_metadata.ifindex; - hdr.fabric_header_cpu.ingressBd = meta.ingress_metadata.bd; - hdr.fabric_header_cpu.reasonCode = meta.fabric_metadata.reason_code; + hdr.fabric_header_cpu.ingressPort = (bit<16>)meta.ingress_metadata.ingress_port; + hdr.fabric_header_cpu.ingressIfindex = (bit<16>)meta.ingress_metadata.ifindex; + hdr.fabric_header_cpu.ingressBd = (bit<16>)meta.ingress_metadata.bd; + hdr.fabric_header_cpu.reasonCode = (bit<16>)meta.fabric_metadata.reason_code; hdr.fabric_payload_header.setValid(); - hdr.fabric_payload_header.etherType = hdr.ethernet.etherType; - hdr.ethernet.etherType = 16w0x9000; + hdr.fabric_payload_header.etherType = (bit<16>)hdr.ethernet.etherType; + hdr.ethernet.etherType = (bit<16>)16w0x9000; } @name(".fabric_unicast_rewrite") action fabric_unicast_rewrite() { hdr.fabric_header.setValid(); - hdr.fabric_header.headerVersion = 2w0; - hdr.fabric_header.packetVersion = 2w0; - hdr.fabric_header.pad1 = 1w0; - hdr.fabric_header.packetType = 3w1; - hdr.fabric_header.dstDevice = meta.fabric_metadata.dst_device; - hdr.fabric_header.dstPortOrGroup = meta.fabric_metadata.dst_port; + hdr.fabric_header.headerVersion = (bit<2>)2w0; + hdr.fabric_header.packetVersion = (bit<2>)2w0; + hdr.fabric_header.pad1 = (bit<1>)1w0; + hdr.fabric_header.packetType = (bit<3>)3w1; + hdr.fabric_header.dstDevice = (bit<8>)meta.fabric_metadata.dst_device; + hdr.fabric_header.dstPortOrGroup = (bit<16>)meta.fabric_metadata.dst_port; hdr.fabric_header_unicast.setValid(); - hdr.fabric_header_unicast.tunnelTerminate = meta.tunnel_metadata.tunnel_terminate; - hdr.fabric_header_unicast.routed = meta.l3_metadata.routed; - hdr.fabric_header_unicast.outerRouted = meta.l3_metadata.outer_routed; - hdr.fabric_header_unicast.ingressTunnelType = meta.tunnel_metadata.ingress_tunnel_type; - hdr.fabric_header_unicast.nexthopIndex = meta.l3_metadata.nexthop_index; + hdr.fabric_header_unicast.tunnelTerminate = (bit<1>)meta.tunnel_metadata.tunnel_terminate; + hdr.fabric_header_unicast.routed = (bit<1>)meta.l3_metadata.routed; + hdr.fabric_header_unicast.outerRouted = (bit<1>)meta.l3_metadata.outer_routed; + hdr.fabric_header_unicast.ingressTunnelType = (bit<5>)meta.tunnel_metadata.ingress_tunnel_type; + hdr.fabric_header_unicast.nexthopIndex = (bit<16>)meta.l3_metadata.nexthop_index; hdr.fabric_payload_header.setValid(); - hdr.fabric_payload_header.etherType = hdr.ethernet.etherType; - hdr.ethernet.etherType = 16w0x9000; + hdr.fabric_payload_header.etherType = (bit<16>)hdr.ethernet.etherType; + hdr.ethernet.etherType = (bit<16>)16w0x9000; } @name(".fabric_multicast_rewrite") action fabric_multicast_rewrite(bit<16> fabric_mgid) { hdr.fabric_header.setValid(); - hdr.fabric_header.headerVersion = 2w0; - hdr.fabric_header.packetVersion = 2w0; - hdr.fabric_header.pad1 = 1w0; - hdr.fabric_header.packetType = 3w2; - hdr.fabric_header.dstDevice = 8w127; - hdr.fabric_header.dstPortOrGroup = fabric_mgid; - hdr.fabric_header_multicast.ingressIfindex = meta.ingress_metadata.ifindex; - hdr.fabric_header_multicast.ingressBd = meta.ingress_metadata.bd; + hdr.fabric_header.headerVersion = (bit<2>)2w0; + hdr.fabric_header.packetVersion = (bit<2>)2w0; + hdr.fabric_header.pad1 = (bit<1>)1w0; + hdr.fabric_header.packetType = (bit<3>)3w2; + hdr.fabric_header.dstDevice = (bit<8>)8w127; + hdr.fabric_header.dstPortOrGroup = (bit<16>)fabric_mgid; + hdr.fabric_header_multicast.ingressIfindex = (bit<16>)meta.ingress_metadata.ifindex; + hdr.fabric_header_multicast.ingressBd = (bit<16>)meta.ingress_metadata.bd; hdr.fabric_header_multicast.setValid(); - hdr.fabric_header_multicast.tunnelTerminate = meta.tunnel_metadata.tunnel_terminate; - hdr.fabric_header_multicast.routed = meta.l3_metadata.routed; - hdr.fabric_header_multicast.outerRouted = meta.l3_metadata.outer_routed; - hdr.fabric_header_multicast.ingressTunnelType = meta.tunnel_metadata.ingress_tunnel_type; - hdr.fabric_header_multicast.mcastGrp = meta.multicast_metadata.mcast_grp; + hdr.fabric_header_multicast.tunnelTerminate = (bit<1>)meta.tunnel_metadata.tunnel_terminate; + hdr.fabric_header_multicast.routed = (bit<1>)meta.l3_metadata.routed; + hdr.fabric_header_multicast.outerRouted = (bit<1>)meta.l3_metadata.outer_routed; + hdr.fabric_header_multicast.ingressTunnelType = (bit<5>)meta.tunnel_metadata.ingress_tunnel_type; + hdr.fabric_header_multicast.mcastGrp = (bit<16>)meta.multicast_metadata.mcast_grp; hdr.fabric_payload_header.setValid(); - hdr.fabric_payload_header.etherType = hdr.ethernet.etherType; - hdr.ethernet.etherType = 16w0x9000; + hdr.fabric_payload_header.etherType = (bit<16>)hdr.ethernet.etherType; + hdr.ethernet.etherType = (bit<16>)16w0x9000; } @name(".rewrite_tunnel_smac") action rewrite_tunnel_smac(bit<48> smac) { - hdr.ethernet.srcAddr = smac; + hdr.ethernet.srcAddr = (bit<48>)smac; } @name(".rewrite_tunnel_ipv4_src") action rewrite_tunnel_ipv4_src(bit<32> ip) { - hdr.ipv4.srcAddr = ip; + hdr.ipv4.srcAddr = (bit<32>)ip; } @name(".rewrite_tunnel_ipv6_src") action rewrite_tunnel_ipv6_src(bit<128> ip) { - hdr.ipv6.srcAddr = ip; + hdr.ipv6.srcAddr = (bit<128>)ip; } @name("egress_vni") table egress_vni { actions = { @@ -2650,9 +2650,9 @@ control process_tunnel_encap(inout headers hdr, inout metadata meta, inout stand control process_int_outer_encap(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".int_update_vxlan_gpe_ipv4") action int_update_vxlan_gpe_ipv4() { - hdr.ipv4.totalLen = hdr.ipv4.totalLen + meta.int_metadata.insert_byte_cnt; - hdr.udp.length_ = hdr.udp.length_ + meta.int_metadata.insert_byte_cnt; - hdr.vxlan_gpe_int_header.len = hdr.vxlan_gpe_int_header.len + meta.int_metadata.gpe_int_hdr_len8; + hdr.ipv4.totalLen = (bit<16>)(hdr.ipv4.totalLen + meta.int_metadata.insert_byte_cnt); + hdr.udp.length_ = (bit<16>)(hdr.udp.length_ + meta.int_metadata.insert_byte_cnt); + hdr.vxlan_gpe_int_header.len = (bit<8>)(hdr.vxlan_gpe_int_header.len + meta.int_metadata.gpe_int_hdr_len8); } @name(".nop") action nop() { } @@ -2683,18 +2683,18 @@ control process_vlan_xlate(inout headers hdr, inout metadata meta, inout standar } @name(".set_egress_packet_vlan_tagged") action set_egress_packet_vlan_tagged(bit<12> vlan_id) { hdr.vlan_tag_[0].setValid(); - hdr.vlan_tag_[0].etherType = hdr.ethernet.etherType; - hdr.vlan_tag_[0].vid = vlan_id; - hdr.ethernet.etherType = 16w0x8100; + hdr.vlan_tag_[0].etherType = (bit<16>)hdr.ethernet.etherType; + hdr.vlan_tag_[0].vid = (bit<12>)vlan_id; + hdr.ethernet.etherType = (bit<16>)16w0x8100; } @name(".set_egress_packet_vlan_double_tagged") action set_egress_packet_vlan_double_tagged(bit<12> s_tag, bit<12> c_tag) { hdr.vlan_tag_[1].setValid(); hdr.vlan_tag_[0].setValid(); - hdr.vlan_tag_[1].etherType = hdr.ethernet.etherType; - hdr.vlan_tag_[1].vid = c_tag; - hdr.vlan_tag_[0].etherType = 16w0x8100; - hdr.vlan_tag_[0].vid = s_tag; - hdr.ethernet.etherType = 16w0x9100; + hdr.vlan_tag_[1].etherType = (bit<16>)hdr.ethernet.etherType; + hdr.vlan_tag_[1].vid = (bit<12>)c_tag; + hdr.vlan_tag_[0].etherType = (bit<16>)16w0x8100; + hdr.vlan_tag_[0].vid = (bit<12>)s_tag; + hdr.ethernet.etherType = (bit<16>)16w0x9100; } @name("egress_vlan_xlate") table egress_vlan_xlate { actions = { @@ -2720,9 +2720,9 @@ control process_egress_filter(inout headers hdr, inout metadata meta, inout stan mark_to_drop(); } @name(".set_egress_ifindex") action set_egress_ifindex(bit<16> egress_ifindex) { - meta.egress_filter_metadata.ifindex = meta.ingress_metadata.ifindex ^ egress_ifindex; - meta.egress_filter_metadata.bd = meta.ingress_metadata.outer_bd ^ meta.egress_metadata.outer_bd; - meta.egress_filter_metadata.inner_bd = meta.ingress_metadata.bd ^ meta.egress_metadata.bd; + meta.egress_filter_metadata.ifindex = (bit<16>)(meta.ingress_metadata.ifindex ^ egress_ifindex); + meta.egress_filter_metadata.bd = (bit<16>)(meta.ingress_metadata.outer_bd ^ meta.egress_metadata.outer_bd); + meta.egress_filter_metadata.inner_bd = (bit<16>)(meta.ingress_metadata.bd ^ meta.egress_metadata.bd); } @name("egress_filter") table egress_filter { actions = { @@ -2755,7 +2755,7 @@ control process_egress_acl(inout headers hdr, inout metadata meta, inout standar @name(".nop") action nop() { } @name(".egress_mirror") action egress_mirror(bit<32> session_id) { - meta.i2e_metadata.mirror_session_id = session_id; + meta.i2e_metadata.mirror_session_id = (bit<16>)session_id; clone3(CloneType.E2E, (bit<32>)session_id, { meta.i2e_metadata.ingress_tstamp, meta.i2e_metadata.mirror_session_id }); } @name(".egress_mirror_drop") action egress_mirror_drop(bit<32> session_id) { @@ -2763,7 +2763,7 @@ control process_egress_acl(inout headers hdr, inout metadata meta, inout standar mark_to_drop(); } @name(".egress_copy_to_cpu") action egress_copy_to_cpu(bit<16> reason_code) { - meta.fabric_metadata.reason_code = reason_code; + meta.fabric_metadata.reason_code = (bit<16>)reason_code; clone3(CloneType.E2E, (bit<32>)32w250, { meta.ingress_metadata.bd, meta.ingress_metadata.ifindex, meta.fabric_metadata.reason_code, meta.ingress_metadata.ingress_port }); } @name(".egress_redirect_to_cpu") action egress_redirect_to_cpu(bit<16> reason_code) { @@ -2793,23 +2793,23 @@ control process_egress_acl(inout headers hdr, inout metadata meta, inout standar control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".egress_port_type_normal") action egress_port_type_normal() { - meta.egress_metadata.port_type = 2w0; + meta.egress_metadata.port_type = (bit<2>)2w0; } @name(".egress_port_type_fabric") action egress_port_type_fabric() { - meta.egress_metadata.port_type = 2w1; - meta.tunnel_metadata.egress_tunnel_type = 5w15; + meta.egress_metadata.port_type = (bit<2>)2w1; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)5w15; } @name(".egress_port_type_cpu") action egress_port_type_cpu() { - meta.egress_metadata.port_type = 2w2; - meta.tunnel_metadata.egress_tunnel_type = 5w16; + meta.egress_metadata.port_type = (bit<2>)2w2; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)5w16; } @name(".nop") action nop() { } @name(".set_mirror_nhop") action set_mirror_nhop(bit<16> nhop_idx) { - meta.l3_metadata.nexthop_index = nhop_idx; + meta.l3_metadata.nexthop_index = (bit<16>)nhop_idx; } @name(".set_mirror_bd") action set_mirror_bd(bit<16> bd) { - meta.egress_metadata.bd = bd; + meta.egress_metadata.bd = (bit<16>)bd; } @name("egress_port_mapping") table egress_port_mapping { actions = { @@ -2883,9 +2883,9 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control process_ingress_port_mapping(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_ifindex") action set_ifindex(bit<16> ifindex, bit<15> if_label, bit<2> port_type) { - meta.ingress_metadata.ifindex = ifindex; - meta.acl_metadata.if_label = if_label; - meta.ingress_metadata.port_type = port_type; + meta.ingress_metadata.ifindex = (bit<16>)ifindex; + meta.acl_metadata.if_label = (bit<15>)if_label; + meta.ingress_metadata.port_type = (bit<2>)port_type; } @name("ingress_port_mapping") table ingress_port_mapping { actions = { @@ -2905,13 +2905,13 @@ control process_ingress_port_mapping(inout headers hdr, inout metadata meta, ino control validate_outer_ipv4_header(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_valid_outer_ipv4_packet") action set_valid_outer_ipv4_packet() { - meta.l3_metadata.lkp_ip_type = 2w1; - meta.l3_metadata.lkp_ip_tc = hdr.ipv4.diffserv; - meta.l3_metadata.lkp_ip_version = 4w4; + meta.l3_metadata.lkp_ip_type = (bit<2>)2w1; + meta.l3_metadata.lkp_ip_tc = (bit<8>)hdr.ipv4.diffserv; + meta.l3_metadata.lkp_ip_version = (bit<4>)4w4; } @name(".set_malformed_outer_ipv4_packet") action set_malformed_outer_ipv4_packet(bit<8> drop_reason) { - meta.ingress_metadata.drop_flag = 1w1; - meta.ingress_metadata.drop_reason = drop_reason; + meta.ingress_metadata.drop_flag = (bit<1>)1w1; + meta.ingress_metadata.drop_reason = (bit<8>)drop_reason; } @name("validate_outer_ipv4_packet") table validate_outer_ipv4_packet { actions = { @@ -2934,13 +2934,13 @@ control validate_outer_ipv4_header(inout headers hdr, inout metadata meta, inout control validate_outer_ipv6_header(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_valid_outer_ipv6_packet") action set_valid_outer_ipv6_packet() { - meta.l3_metadata.lkp_ip_type = 2w2; - meta.l3_metadata.lkp_ip_tc = hdr.ipv6.trafficClass; - meta.l3_metadata.lkp_ip_version = 4w6; + meta.l3_metadata.lkp_ip_type = (bit<2>)2w2; + meta.l3_metadata.lkp_ip_tc = (bit<8>)hdr.ipv6.trafficClass; + meta.l3_metadata.lkp_ip_version = (bit<4>)4w6; } @name(".set_malformed_outer_ipv6_packet") action set_malformed_outer_ipv6_packet(bit<8> drop_reason) { - meta.ingress_metadata.drop_flag = 1w1; - meta.ingress_metadata.drop_reason = drop_reason; + meta.ingress_metadata.drop_flag = (bit<1>)1w1; + meta.ingress_metadata.drop_reason = (bit<8>)drop_reason; } @name("validate_outer_ipv6_packet") table validate_outer_ipv6_packet { actions = { @@ -2963,16 +2963,16 @@ control validate_outer_ipv6_header(inout headers hdr, inout metadata meta, inout control validate_mpls_header(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_valid_mpls_label1") action set_valid_mpls_label1() { - meta.tunnel_metadata.mpls_label = hdr.mpls[0].label; - meta.tunnel_metadata.mpls_exp = hdr.mpls[0].exp; + meta.tunnel_metadata.mpls_label = (bit<20>)hdr.mpls[0].label; + meta.tunnel_metadata.mpls_exp = (bit<3>)hdr.mpls[0].exp; } @name(".set_valid_mpls_label2") action set_valid_mpls_label2() { - meta.tunnel_metadata.mpls_label = hdr.mpls[1].label; - meta.tunnel_metadata.mpls_exp = hdr.mpls[1].exp; + meta.tunnel_metadata.mpls_label = (bit<20>)hdr.mpls[1].label; + meta.tunnel_metadata.mpls_exp = (bit<3>)hdr.mpls[1].exp; } @name(".set_valid_mpls_label3") action set_valid_mpls_label3() { - meta.tunnel_metadata.mpls_label = hdr.mpls[2].label; - meta.tunnel_metadata.mpls_exp = hdr.mpls[2].exp; + meta.tunnel_metadata.mpls_label = (bit<20>)hdr.mpls[2].label; + meta.tunnel_metadata.mpls_exp = (bit<3>)hdr.mpls[2].exp; } @name("validate_mpls_packet") table validate_mpls_packet { actions = { @@ -3002,106 +3002,106 @@ control validate_mpls_header(inout headers hdr, inout metadata meta, inout stand control process_validate_outer_header(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".malformed_outer_ethernet_packet") action malformed_outer_ethernet_packet(bit<8> drop_reason) { - meta.ingress_metadata.drop_flag = 1w1; - meta.ingress_metadata.drop_reason = drop_reason; - meta.ingress_metadata.ingress_port = standard_metadata.ingress_port; - meta.l2_metadata.same_if_check = meta.ingress_metadata.ifindex; + meta.ingress_metadata.drop_flag = (bit<1>)1w1; + meta.ingress_metadata.drop_reason = (bit<8>)drop_reason; + meta.ingress_metadata.ingress_port = (bit<9>)standard_metadata.ingress_port; + meta.l2_metadata.same_if_check = (bit<16>)meta.ingress_metadata.ifindex; } @name(".set_valid_outer_unicast_packet_untagged") action set_valid_outer_unicast_packet_untagged() { - meta.l2_metadata.lkp_pkt_type = 3w1; - meta.l2_metadata.lkp_mac_type = hdr.ethernet.etherType; - standard_metadata.egress_spec = 9w511; - meta.i2e_metadata.ingress_tstamp = meta.intrinsic_metadata.ingress_global_tstamp; - meta.ingress_metadata.ingress_port = standard_metadata.ingress_port; - meta.l2_metadata.same_if_check = meta.ingress_metadata.ifindex; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w1; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.ethernet.etherType; + standard_metadata.egress_spec = (bit<9>)9w511; + meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; + meta.ingress_metadata.ingress_port = (bit<9>)standard_metadata.ingress_port; + meta.l2_metadata.same_if_check = (bit<16>)meta.ingress_metadata.ifindex; } @name(".set_valid_outer_unicast_packet_single_tagged") action set_valid_outer_unicast_packet_single_tagged() { - meta.l2_metadata.lkp_pkt_type = 3w1; - meta.l2_metadata.lkp_mac_type = hdr.vlan_tag_[0].etherType; - standard_metadata.egress_spec = 9w511; - meta.i2e_metadata.ingress_tstamp = meta.intrinsic_metadata.ingress_global_tstamp; - meta.ingress_metadata.ingress_port = standard_metadata.ingress_port; - meta.l2_metadata.same_if_check = meta.ingress_metadata.ifindex; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w1; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.vlan_tag_[0].etherType; + standard_metadata.egress_spec = (bit<9>)9w511; + meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; + meta.ingress_metadata.ingress_port = (bit<9>)standard_metadata.ingress_port; + meta.l2_metadata.same_if_check = (bit<16>)meta.ingress_metadata.ifindex; } @name(".set_valid_outer_unicast_packet_double_tagged") action set_valid_outer_unicast_packet_double_tagged() { - meta.l2_metadata.lkp_pkt_type = 3w1; - meta.l2_metadata.lkp_mac_type = hdr.vlan_tag_[1].etherType; - standard_metadata.egress_spec = 9w511; - meta.i2e_metadata.ingress_tstamp = meta.intrinsic_metadata.ingress_global_tstamp; - meta.ingress_metadata.ingress_port = standard_metadata.ingress_port; - meta.l2_metadata.same_if_check = meta.ingress_metadata.ifindex; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w1; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.vlan_tag_[1].etherType; + standard_metadata.egress_spec = (bit<9>)9w511; + meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; + meta.ingress_metadata.ingress_port = (bit<9>)standard_metadata.ingress_port; + meta.l2_metadata.same_if_check = (bit<16>)meta.ingress_metadata.ifindex; } @name(".set_valid_outer_unicast_packet_qinq_tagged") action set_valid_outer_unicast_packet_qinq_tagged() { - meta.l2_metadata.lkp_pkt_type = 3w1; - meta.l2_metadata.lkp_mac_type = hdr.ethernet.etherType; - standard_metadata.egress_spec = 9w511; - meta.i2e_metadata.ingress_tstamp = meta.intrinsic_metadata.ingress_global_tstamp; - meta.ingress_metadata.ingress_port = standard_metadata.ingress_port; - meta.l2_metadata.same_if_check = meta.ingress_metadata.ifindex; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w1; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.ethernet.etherType; + standard_metadata.egress_spec = (bit<9>)9w511; + meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; + meta.ingress_metadata.ingress_port = (bit<9>)standard_metadata.ingress_port; + meta.l2_metadata.same_if_check = (bit<16>)meta.ingress_metadata.ifindex; } @name(".set_valid_outer_multicast_packet_untagged") action set_valid_outer_multicast_packet_untagged() { - meta.l2_metadata.lkp_pkt_type = 3w2; - meta.l2_metadata.lkp_mac_type = hdr.ethernet.etherType; - standard_metadata.egress_spec = 9w511; - meta.i2e_metadata.ingress_tstamp = meta.intrinsic_metadata.ingress_global_tstamp; - meta.ingress_metadata.ingress_port = standard_metadata.ingress_port; - meta.l2_metadata.same_if_check = meta.ingress_metadata.ifindex; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w2; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.ethernet.etherType; + standard_metadata.egress_spec = (bit<9>)9w511; + meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; + meta.ingress_metadata.ingress_port = (bit<9>)standard_metadata.ingress_port; + meta.l2_metadata.same_if_check = (bit<16>)meta.ingress_metadata.ifindex; } @name(".set_valid_outer_multicast_packet_single_tagged") action set_valid_outer_multicast_packet_single_tagged() { - meta.l2_metadata.lkp_pkt_type = 3w2; - meta.l2_metadata.lkp_mac_type = hdr.vlan_tag_[0].etherType; - standard_metadata.egress_spec = 9w511; - meta.i2e_metadata.ingress_tstamp = meta.intrinsic_metadata.ingress_global_tstamp; - meta.ingress_metadata.ingress_port = standard_metadata.ingress_port; - meta.l2_metadata.same_if_check = meta.ingress_metadata.ifindex; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w2; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.vlan_tag_[0].etherType; + standard_metadata.egress_spec = (bit<9>)9w511; + meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; + meta.ingress_metadata.ingress_port = (bit<9>)standard_metadata.ingress_port; + meta.l2_metadata.same_if_check = (bit<16>)meta.ingress_metadata.ifindex; } @name(".set_valid_outer_multicast_packet_double_tagged") action set_valid_outer_multicast_packet_double_tagged() { - meta.l2_metadata.lkp_pkt_type = 3w2; - meta.l2_metadata.lkp_mac_type = hdr.vlan_tag_[1].etherType; - standard_metadata.egress_spec = 9w511; - meta.i2e_metadata.ingress_tstamp = meta.intrinsic_metadata.ingress_global_tstamp; - meta.ingress_metadata.ingress_port = standard_metadata.ingress_port; - meta.l2_metadata.same_if_check = meta.ingress_metadata.ifindex; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w2; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.vlan_tag_[1].etherType; + standard_metadata.egress_spec = (bit<9>)9w511; + meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; + meta.ingress_metadata.ingress_port = (bit<9>)standard_metadata.ingress_port; + meta.l2_metadata.same_if_check = (bit<16>)meta.ingress_metadata.ifindex; } @name(".set_valid_outer_multicast_packet_qinq_tagged") action set_valid_outer_multicast_packet_qinq_tagged() { - meta.l2_metadata.lkp_pkt_type = 3w2; - meta.l2_metadata.lkp_mac_type = hdr.ethernet.etherType; - standard_metadata.egress_spec = 9w511; - meta.i2e_metadata.ingress_tstamp = meta.intrinsic_metadata.ingress_global_tstamp; - meta.ingress_metadata.ingress_port = standard_metadata.ingress_port; - meta.l2_metadata.same_if_check = meta.ingress_metadata.ifindex; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w2; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.ethernet.etherType; + standard_metadata.egress_spec = (bit<9>)9w511; + meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; + meta.ingress_metadata.ingress_port = (bit<9>)standard_metadata.ingress_port; + meta.l2_metadata.same_if_check = (bit<16>)meta.ingress_metadata.ifindex; } @name(".set_valid_outer_broadcast_packet_untagged") action set_valid_outer_broadcast_packet_untagged() { - meta.l2_metadata.lkp_pkt_type = 3w4; - meta.l2_metadata.lkp_mac_type = hdr.ethernet.etherType; - standard_metadata.egress_spec = 9w511; - meta.i2e_metadata.ingress_tstamp = meta.intrinsic_metadata.ingress_global_tstamp; - meta.ingress_metadata.ingress_port = standard_metadata.ingress_port; - meta.l2_metadata.same_if_check = meta.ingress_metadata.ifindex; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w4; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.ethernet.etherType; + standard_metadata.egress_spec = (bit<9>)9w511; + meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; + meta.ingress_metadata.ingress_port = (bit<9>)standard_metadata.ingress_port; + meta.l2_metadata.same_if_check = (bit<16>)meta.ingress_metadata.ifindex; } @name(".set_valid_outer_broadcast_packet_single_tagged") action set_valid_outer_broadcast_packet_single_tagged() { - meta.l2_metadata.lkp_pkt_type = 3w4; - meta.l2_metadata.lkp_mac_type = hdr.vlan_tag_[0].etherType; - standard_metadata.egress_spec = 9w511; - meta.i2e_metadata.ingress_tstamp = meta.intrinsic_metadata.ingress_global_tstamp; - meta.ingress_metadata.ingress_port = standard_metadata.ingress_port; - meta.l2_metadata.same_if_check = meta.ingress_metadata.ifindex; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w4; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.vlan_tag_[0].etherType; + standard_metadata.egress_spec = (bit<9>)9w511; + meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; + meta.ingress_metadata.ingress_port = (bit<9>)standard_metadata.ingress_port; + meta.l2_metadata.same_if_check = (bit<16>)meta.ingress_metadata.ifindex; } @name(".set_valid_outer_broadcast_packet_double_tagged") action set_valid_outer_broadcast_packet_double_tagged() { - meta.l2_metadata.lkp_pkt_type = 3w4; - meta.l2_metadata.lkp_mac_type = hdr.vlan_tag_[1].etherType; - standard_metadata.egress_spec = 9w511; - meta.i2e_metadata.ingress_tstamp = meta.intrinsic_metadata.ingress_global_tstamp; - meta.ingress_metadata.ingress_port = standard_metadata.ingress_port; - meta.l2_metadata.same_if_check = meta.ingress_metadata.ifindex; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w4; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.vlan_tag_[1].etherType; + standard_metadata.egress_spec = (bit<9>)9w511; + meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; + meta.ingress_metadata.ingress_port = (bit<9>)standard_metadata.ingress_port; + meta.l2_metadata.same_if_check = (bit<16>)meta.ingress_metadata.ifindex; } @name(".set_valid_outer_broadcast_packet_qinq_tagged") action set_valid_outer_broadcast_packet_qinq_tagged() { - meta.l2_metadata.lkp_pkt_type = 3w4; - meta.l2_metadata.lkp_mac_type = hdr.ethernet.etherType; - standard_metadata.egress_spec = 9w511; - meta.i2e_metadata.ingress_tstamp = meta.intrinsic_metadata.ingress_global_tstamp; - meta.ingress_metadata.ingress_port = standard_metadata.ingress_port; - meta.l2_metadata.same_if_check = meta.ingress_metadata.ifindex; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w4; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.ethernet.etherType; + standard_metadata.egress_spec = (bit<9>)9w511; + meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; + meta.ingress_metadata.ingress_port = (bit<9>)standard_metadata.ingress_port; + meta.l2_metadata.same_if_check = (bit<16>)meta.ingress_metadata.ifindex; } @name("validate_outer_ethernet") table validate_outer_ethernet { actions = { @@ -3183,23 +3183,23 @@ control process_storm_control(inout headers hdr, inout metadata meta, inout stan control process_port_vlan_mapping(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_bd") action set_bd(bit<16> bd, bit<12> vrf, bit<10> rmac_group, bit<1> ipv4_unicast_enabled, bit<1> ipv6_unicast_enabled, bit<2> ipv4_urpf_mode, bit<2> ipv6_urpf_mode, bit<1> igmp_snooping_enabled, bit<1> mld_snooping_enabled, bit<16> bd_label, bit<10> stp_group, bit<16> stats_idx, bit<1> learning_enabled) { - meta.l3_metadata.vrf = vrf; - meta.ipv4_metadata.ipv4_unicast_enabled = ipv4_unicast_enabled; - meta.ipv6_metadata.ipv6_unicast_enabled = ipv6_unicast_enabled; - meta.ipv4_metadata.ipv4_urpf_mode = ipv4_urpf_mode; - meta.ipv6_metadata.ipv6_urpf_mode = ipv6_urpf_mode; - meta.l3_metadata.rmac_group = rmac_group; - meta.acl_metadata.bd_label = bd_label; - meta.ingress_metadata.bd = bd; - meta.ingress_metadata.outer_bd = bd; - meta.l2_metadata.stp_group = stp_group; - meta.l2_metadata.bd_stats_idx = stats_idx; - meta.l2_metadata.learning_enabled = learning_enabled; - meta.multicast_metadata.igmp_snooping_enabled = igmp_snooping_enabled; - meta.multicast_metadata.mld_snooping_enabled = mld_snooping_enabled; + meta.l3_metadata.vrf = (bit<12>)vrf; + meta.ipv4_metadata.ipv4_unicast_enabled = (bit<1>)ipv4_unicast_enabled; + meta.ipv6_metadata.ipv6_unicast_enabled = (bit<1>)ipv6_unicast_enabled; + meta.ipv4_metadata.ipv4_urpf_mode = (bit<2>)ipv4_urpf_mode; + meta.ipv6_metadata.ipv6_urpf_mode = (bit<2>)ipv6_urpf_mode; + meta.l3_metadata.rmac_group = (bit<10>)rmac_group; + meta.acl_metadata.bd_label = (bit<16>)bd_label; + meta.ingress_metadata.bd = (bit<16>)bd; + meta.ingress_metadata.outer_bd = (bit<16>)bd; + meta.l2_metadata.stp_group = (bit<10>)stp_group; + meta.l2_metadata.bd_stats_idx = (bit<16>)stats_idx; + meta.l2_metadata.learning_enabled = (bit<1>)learning_enabled; + meta.multicast_metadata.igmp_snooping_enabled = (bit<1>)igmp_snooping_enabled; + meta.multicast_metadata.mld_snooping_enabled = (bit<1>)mld_snooping_enabled; } @name(".port_vlan_mapping_miss") action port_vlan_mapping_miss() { - meta.l2_metadata.port_vlan_mapping_miss = 1w1; + meta.l2_metadata.port_vlan_mapping_miss = (bit<1>)1w1; } @name("port_vlan_mapping") table port_vlan_mapping { actions = { @@ -3225,7 +3225,7 @@ control process_port_vlan_mapping(inout headers hdr, inout metadata meta, inout control process_spanning_tree(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_stp_state") action set_stp_state(bit<3> stp_state) { - meta.l2_metadata.stp_state = stp_state; + meta.l2_metadata.stp_state = (bit<3>)stp_state; } @name("spanning_tree") table spanning_tree { actions = { @@ -3250,7 +3250,7 @@ control process_ip_sourceguard(inout headers hdr, inout metadata meta, inout sta @name(".on_miss") action on_miss() { } @name(".ipsg_miss") action ipsg_miss() { - meta.security_metadata.ipsg_check_fail = 1w1; + meta.security_metadata.ipsg_check_fail = (bit<1>)1w1; } @name("ipsg") table ipsg { actions = { @@ -3300,12 +3300,12 @@ control process_ipv4_vtep(inout headers hdr, inout metadata meta, inout standard @name(".nop") action nop() { } @name(".set_tunnel_termination_flag") action set_tunnel_termination_flag() { - meta.tunnel_metadata.tunnel_terminate = 1w1; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; } @name(".on_miss") action on_miss() { } @name(".src_vtep_hit") action src_vtep_hit(bit<16> ifindex) { - meta.ingress_metadata.ifindex = ifindex; + meta.ingress_metadata.ifindex = (bit<16>)ifindex; } @name("ipv4_dest_vtep") table ipv4_dest_vtep { actions = { @@ -3348,12 +3348,12 @@ control process_ipv6_vtep(inout headers hdr, inout metadata meta, inout standard @name(".nop") action nop() { } @name(".set_tunnel_termination_flag") action set_tunnel_termination_flag() { - meta.tunnel_metadata.tunnel_terminate = 1w1; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; } @name(".on_miss") action on_miss() { } @name(".src_vtep_hit") action src_vtep_hit(bit<16> ifindex) { - meta.ingress_metadata.ifindex = ifindex; + meta.ingress_metadata.ifindex = (bit<16>)ifindex; } @name("ipv6_dest_vtep") table ipv6_dest_vtep { actions = { @@ -3394,56 +3394,56 @@ control process_ipv6_vtep(inout headers hdr, inout metadata meta, inout standard control process_mpls(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".terminate_eompls") action terminate_eompls(bit<16> bd, bit<5> tunnel_type) { - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.tunnel_metadata.ingress_tunnel_type = tunnel_type; - meta.ingress_metadata.bd = bd; - meta.l2_metadata.lkp_mac_sa = hdr.inner_ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.inner_ethernet.dstAddr; - meta.l2_metadata.lkp_mac_type = hdr.inner_ethernet.etherType; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)tunnel_type; + meta.ingress_metadata.bd = (bit<16>)bd; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.inner_ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.inner_ethernet.dstAddr; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.inner_ethernet.etherType; } @name(".terminate_vpls") action terminate_vpls(bit<16> bd, bit<5> tunnel_type) { - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.tunnel_metadata.ingress_tunnel_type = tunnel_type; - meta.ingress_metadata.bd = bd; - meta.l2_metadata.lkp_mac_sa = hdr.inner_ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.inner_ethernet.dstAddr; - meta.l2_metadata.lkp_mac_type = hdr.inner_ethernet.etherType; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)tunnel_type; + meta.ingress_metadata.bd = (bit<16>)bd; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.inner_ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.inner_ethernet.dstAddr; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.inner_ethernet.etherType; } @name(".terminate_ipv4_over_mpls") action terminate_ipv4_over_mpls(bit<12> vrf, bit<5> tunnel_type) { - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.tunnel_metadata.ingress_tunnel_type = tunnel_type; - meta.l3_metadata.vrf = vrf; - meta.l3_metadata.lkp_ip_type = 2w1; - meta.ipv4_metadata.lkp_ipv4_sa = hdr.inner_ipv4.srcAddr; - meta.ipv4_metadata.lkp_ipv4_da = hdr.inner_ipv4.dstAddr; - meta.l3_metadata.lkp_ip_version = hdr.inner_ipv4.version; - meta.l3_metadata.lkp_ip_proto = hdr.inner_ipv4.protocol; - meta.l3_metadata.lkp_ip_tc = hdr.inner_ipv4.diffserv; - meta.l3_metadata.lkp_ip_ttl = hdr.inner_ipv4.ttl; - meta.l3_metadata.lkp_l4_sport = meta.l3_metadata.lkp_inner_l4_sport; - meta.l3_metadata.lkp_l4_dport = meta.l3_metadata.lkp_inner_l4_dport; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)tunnel_type; + meta.l3_metadata.vrf = (bit<12>)vrf; + meta.l3_metadata.lkp_ip_type = (bit<2>)2w1; + meta.ipv4_metadata.lkp_ipv4_sa = (bit<32>)hdr.inner_ipv4.srcAddr; + meta.ipv4_metadata.lkp_ipv4_da = (bit<32>)hdr.inner_ipv4.dstAddr; + meta.l3_metadata.lkp_ip_version = (bit<4>)hdr.inner_ipv4.version; + meta.l3_metadata.lkp_ip_proto = (bit<8>)hdr.inner_ipv4.protocol; + meta.l3_metadata.lkp_ip_tc = (bit<8>)hdr.inner_ipv4.diffserv; + meta.l3_metadata.lkp_ip_ttl = (bit<8>)hdr.inner_ipv4.ttl; + meta.l3_metadata.lkp_l4_sport = (bit<16>)meta.l3_metadata.lkp_inner_l4_sport; + meta.l3_metadata.lkp_l4_dport = (bit<16>)meta.l3_metadata.lkp_inner_l4_dport; } @name(".terminate_ipv6_over_mpls") action terminate_ipv6_over_mpls(bit<12> vrf, bit<5> tunnel_type) { - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.tunnel_metadata.ingress_tunnel_type = tunnel_type; - meta.l3_metadata.vrf = vrf; - meta.l3_metadata.lkp_ip_type = 2w2; - meta.ipv6_metadata.lkp_ipv6_sa = hdr.inner_ipv6.srcAddr; - meta.ipv6_metadata.lkp_ipv6_da = hdr.inner_ipv6.dstAddr; - meta.l3_metadata.lkp_ip_version = hdr.inner_ipv6.version; - meta.l3_metadata.lkp_ip_proto = hdr.inner_ipv6.nextHdr; - meta.l3_metadata.lkp_ip_tc = hdr.inner_ipv6.trafficClass; - meta.l3_metadata.lkp_ip_ttl = hdr.inner_ipv6.hopLimit; - meta.l3_metadata.lkp_l4_sport = meta.l3_metadata.lkp_inner_l4_sport; - meta.l3_metadata.lkp_l4_dport = meta.l3_metadata.lkp_inner_l4_dport; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)tunnel_type; + meta.l3_metadata.vrf = (bit<12>)vrf; + meta.l3_metadata.lkp_ip_type = (bit<2>)2w2; + meta.ipv6_metadata.lkp_ipv6_sa = (bit<128>)hdr.inner_ipv6.srcAddr; + meta.ipv6_metadata.lkp_ipv6_da = (bit<128>)hdr.inner_ipv6.dstAddr; + meta.l3_metadata.lkp_ip_version = (bit<4>)hdr.inner_ipv6.version; + meta.l3_metadata.lkp_ip_proto = (bit<8>)hdr.inner_ipv6.nextHdr; + meta.l3_metadata.lkp_ip_tc = (bit<8>)hdr.inner_ipv6.trafficClass; + meta.l3_metadata.lkp_ip_ttl = (bit<8>)hdr.inner_ipv6.hopLimit; + meta.l3_metadata.lkp_l4_sport = (bit<16>)meta.l3_metadata.lkp_inner_l4_sport; + meta.l3_metadata.lkp_l4_dport = (bit<16>)meta.l3_metadata.lkp_inner_l4_dport; } @name(".terminate_pw") action terminate_pw(bit<16> ifindex) { - meta.ingress_metadata.egress_ifindex = ifindex; + meta.ingress_metadata.egress_ifindex = (bit<16>)ifindex; } @name(".forward_mpls") action forward_mpls(bit<16> nexthop_index) { - meta.l3_metadata.fib_nexthop = nexthop_index; - meta.l3_metadata.fib_nexthop_type = 1w0; - meta.l3_metadata.fib_hit = 1w1; + meta.l3_metadata.fib_nexthop = (bit<16>)nexthop_index; + meta.l3_metadata.fib_nexthop_type = (bit<1>)1w0; + meta.l3_metadata.fib_hit = (bit<1>)1w1; } @name("mpls") table mpls_0 { actions = { @@ -3472,101 +3472,101 @@ control process_tunnel(inout headers hdr, inout metadata meta, inout standard_me @name(".on_miss") action on_miss() { } @name(".outer_rmac_hit") action outer_rmac_hit() { - meta.l3_metadata.rmac_hit = 1w1; + meta.l3_metadata.rmac_hit = (bit<1>)1w1; } @name(".nop") action nop() { } @name(".terminate_tunnel_inner_non_ip") action terminate_tunnel_inner_non_ip(bit<16> bd, bit<16> bd_label, bit<16> stats_idx) { - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.ingress_metadata.bd = bd; - meta.l3_metadata.lkp_ip_type = 2w0; - meta.l2_metadata.lkp_mac_sa = hdr.inner_ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.inner_ethernet.dstAddr; - meta.l2_metadata.lkp_mac_type = hdr.inner_ethernet.etherType; - meta.acl_metadata.bd_label = bd_label; - meta.l2_metadata.bd_stats_idx = stats_idx; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.ingress_metadata.bd = (bit<16>)bd; + meta.l3_metadata.lkp_ip_type = (bit<2>)2w0; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.inner_ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.inner_ethernet.dstAddr; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.inner_ethernet.etherType; + meta.acl_metadata.bd_label = (bit<16>)bd_label; + meta.l2_metadata.bd_stats_idx = (bit<16>)stats_idx; } @name(".terminate_tunnel_inner_ethernet_ipv4") action terminate_tunnel_inner_ethernet_ipv4(bit<16> bd, bit<12> vrf, bit<10> rmac_group, bit<16> bd_label, bit<1> ipv4_unicast_enabled, bit<2> ipv4_urpf_mode, bit<1> igmp_snooping_enabled, bit<16> stats_idx) { - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.ingress_metadata.bd = bd; - meta.l3_metadata.vrf = vrf; - meta.qos_metadata.outer_dscp = meta.l3_metadata.lkp_ip_tc; - meta.l2_metadata.lkp_mac_sa = hdr.inner_ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.inner_ethernet.dstAddr; - meta.l2_metadata.lkp_mac_type = hdr.inner_ethernet.etherType; - meta.l3_metadata.lkp_ip_type = 2w1; - meta.ipv4_metadata.lkp_ipv4_sa = hdr.inner_ipv4.srcAddr; - meta.ipv4_metadata.lkp_ipv4_da = hdr.inner_ipv4.dstAddr; - meta.l3_metadata.lkp_ip_version = hdr.inner_ipv4.version; - meta.l3_metadata.lkp_ip_proto = hdr.inner_ipv4.protocol; - meta.l3_metadata.lkp_ip_ttl = hdr.inner_ipv4.ttl; - meta.l3_metadata.lkp_ip_tc = hdr.inner_ipv4.diffserv; - meta.l3_metadata.lkp_l4_sport = meta.l3_metadata.lkp_inner_l4_sport; - meta.l3_metadata.lkp_l4_dport = meta.l3_metadata.lkp_inner_l4_dport; - meta.ipv4_metadata.ipv4_unicast_enabled = ipv4_unicast_enabled; - meta.ipv4_metadata.ipv4_urpf_mode = ipv4_urpf_mode; - meta.l3_metadata.rmac_group = rmac_group; - meta.acl_metadata.bd_label = bd_label; - meta.l2_metadata.bd_stats_idx = stats_idx; - meta.multicast_metadata.igmp_snooping_enabled = igmp_snooping_enabled; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.ingress_metadata.bd = (bit<16>)bd; + meta.l3_metadata.vrf = (bit<12>)vrf; + meta.qos_metadata.outer_dscp = (bit<8>)meta.l3_metadata.lkp_ip_tc; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.inner_ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.inner_ethernet.dstAddr; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.inner_ethernet.etherType; + meta.l3_metadata.lkp_ip_type = (bit<2>)2w1; + meta.ipv4_metadata.lkp_ipv4_sa = (bit<32>)hdr.inner_ipv4.srcAddr; + meta.ipv4_metadata.lkp_ipv4_da = (bit<32>)hdr.inner_ipv4.dstAddr; + meta.l3_metadata.lkp_ip_version = (bit<4>)hdr.inner_ipv4.version; + meta.l3_metadata.lkp_ip_proto = (bit<8>)hdr.inner_ipv4.protocol; + meta.l3_metadata.lkp_ip_ttl = (bit<8>)hdr.inner_ipv4.ttl; + meta.l3_metadata.lkp_ip_tc = (bit<8>)hdr.inner_ipv4.diffserv; + meta.l3_metadata.lkp_l4_sport = (bit<16>)meta.l3_metadata.lkp_inner_l4_sport; + meta.l3_metadata.lkp_l4_dport = (bit<16>)meta.l3_metadata.lkp_inner_l4_dport; + meta.ipv4_metadata.ipv4_unicast_enabled = (bit<1>)ipv4_unicast_enabled; + meta.ipv4_metadata.ipv4_urpf_mode = (bit<2>)ipv4_urpf_mode; + meta.l3_metadata.rmac_group = (bit<10>)rmac_group; + meta.acl_metadata.bd_label = (bit<16>)bd_label; + meta.l2_metadata.bd_stats_idx = (bit<16>)stats_idx; + meta.multicast_metadata.igmp_snooping_enabled = (bit<1>)igmp_snooping_enabled; } @name(".terminate_tunnel_inner_ipv4") action terminate_tunnel_inner_ipv4(bit<12> vrf, bit<10> rmac_group, bit<2> ipv4_urpf_mode, bit<1> ipv4_unicast_enabled) { - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.l3_metadata.vrf = vrf; - meta.qos_metadata.outer_dscp = meta.l3_metadata.lkp_ip_tc; - meta.l3_metadata.lkp_ip_type = 2w1; - meta.ipv4_metadata.lkp_ipv4_sa = hdr.inner_ipv4.srcAddr; - meta.ipv4_metadata.lkp_ipv4_da = hdr.inner_ipv4.dstAddr; - meta.l3_metadata.lkp_ip_version = hdr.inner_ipv4.version; - meta.l3_metadata.lkp_ip_proto = hdr.inner_ipv4.protocol; - meta.l3_metadata.lkp_ip_ttl = hdr.inner_ipv4.ttl; - meta.l3_metadata.lkp_ip_tc = hdr.inner_ipv4.diffserv; - meta.l3_metadata.lkp_l4_sport = meta.l3_metadata.lkp_inner_l4_sport; - meta.l3_metadata.lkp_l4_dport = meta.l3_metadata.lkp_inner_l4_dport; - meta.ipv4_metadata.ipv4_unicast_enabled = ipv4_unicast_enabled; - meta.ipv4_metadata.ipv4_urpf_mode = ipv4_urpf_mode; - meta.l3_metadata.rmac_group = rmac_group; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.l3_metadata.vrf = (bit<12>)vrf; + meta.qos_metadata.outer_dscp = (bit<8>)meta.l3_metadata.lkp_ip_tc; + meta.l3_metadata.lkp_ip_type = (bit<2>)2w1; + meta.ipv4_metadata.lkp_ipv4_sa = (bit<32>)hdr.inner_ipv4.srcAddr; + meta.ipv4_metadata.lkp_ipv4_da = (bit<32>)hdr.inner_ipv4.dstAddr; + meta.l3_metadata.lkp_ip_version = (bit<4>)hdr.inner_ipv4.version; + meta.l3_metadata.lkp_ip_proto = (bit<8>)hdr.inner_ipv4.protocol; + meta.l3_metadata.lkp_ip_ttl = (bit<8>)hdr.inner_ipv4.ttl; + meta.l3_metadata.lkp_ip_tc = (bit<8>)hdr.inner_ipv4.diffserv; + meta.l3_metadata.lkp_l4_sport = (bit<16>)meta.l3_metadata.lkp_inner_l4_sport; + meta.l3_metadata.lkp_l4_dport = (bit<16>)meta.l3_metadata.lkp_inner_l4_dport; + meta.ipv4_metadata.ipv4_unicast_enabled = (bit<1>)ipv4_unicast_enabled; + meta.ipv4_metadata.ipv4_urpf_mode = (bit<2>)ipv4_urpf_mode; + meta.l3_metadata.rmac_group = (bit<10>)rmac_group; } @name(".terminate_tunnel_inner_ethernet_ipv6") action terminate_tunnel_inner_ethernet_ipv6(bit<16> bd, bit<12> vrf, bit<10> rmac_group, bit<16> bd_label, bit<1> ipv6_unicast_enabled, bit<2> ipv6_urpf_mode, bit<1> mld_snooping_enabled, bit<16> stats_idx) { - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.ingress_metadata.bd = bd; - meta.l3_metadata.vrf = vrf; - meta.qos_metadata.outer_dscp = meta.l3_metadata.lkp_ip_tc; - meta.l2_metadata.lkp_mac_sa = hdr.inner_ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.inner_ethernet.dstAddr; - meta.l2_metadata.lkp_mac_type = hdr.inner_ethernet.etherType; - meta.l3_metadata.lkp_ip_type = 2w2; - meta.ipv6_metadata.lkp_ipv6_sa = hdr.inner_ipv6.srcAddr; - meta.ipv6_metadata.lkp_ipv6_da = hdr.inner_ipv6.dstAddr; - meta.l3_metadata.lkp_ip_version = hdr.inner_ipv6.version; - meta.l3_metadata.lkp_ip_proto = hdr.inner_ipv6.nextHdr; - meta.l3_metadata.lkp_ip_ttl = hdr.inner_ipv6.hopLimit; - meta.l3_metadata.lkp_ip_tc = hdr.inner_ipv6.trafficClass; - meta.l3_metadata.lkp_l4_sport = meta.l3_metadata.lkp_inner_l4_sport; - meta.l3_metadata.lkp_l4_dport = meta.l3_metadata.lkp_inner_l4_dport; - meta.ipv6_metadata.ipv6_unicast_enabled = ipv6_unicast_enabled; - meta.ipv6_metadata.ipv6_urpf_mode = ipv6_urpf_mode; - meta.l3_metadata.rmac_group = rmac_group; - meta.acl_metadata.bd_label = bd_label; - meta.l2_metadata.bd_stats_idx = stats_idx; - meta.multicast_metadata.mld_snooping_enabled = mld_snooping_enabled; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.ingress_metadata.bd = (bit<16>)bd; + meta.l3_metadata.vrf = (bit<12>)vrf; + meta.qos_metadata.outer_dscp = (bit<8>)meta.l3_metadata.lkp_ip_tc; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.inner_ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.inner_ethernet.dstAddr; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.inner_ethernet.etherType; + meta.l3_metadata.lkp_ip_type = (bit<2>)2w2; + meta.ipv6_metadata.lkp_ipv6_sa = (bit<128>)hdr.inner_ipv6.srcAddr; + meta.ipv6_metadata.lkp_ipv6_da = (bit<128>)hdr.inner_ipv6.dstAddr; + meta.l3_metadata.lkp_ip_version = (bit<4>)hdr.inner_ipv6.version; + meta.l3_metadata.lkp_ip_proto = (bit<8>)hdr.inner_ipv6.nextHdr; + meta.l3_metadata.lkp_ip_ttl = (bit<8>)hdr.inner_ipv6.hopLimit; + meta.l3_metadata.lkp_ip_tc = (bit<8>)hdr.inner_ipv6.trafficClass; + meta.l3_metadata.lkp_l4_sport = (bit<16>)meta.l3_metadata.lkp_inner_l4_sport; + meta.l3_metadata.lkp_l4_dport = (bit<16>)meta.l3_metadata.lkp_inner_l4_dport; + meta.ipv6_metadata.ipv6_unicast_enabled = (bit<1>)ipv6_unicast_enabled; + meta.ipv6_metadata.ipv6_urpf_mode = (bit<2>)ipv6_urpf_mode; + meta.l3_metadata.rmac_group = (bit<10>)rmac_group; + meta.acl_metadata.bd_label = (bit<16>)bd_label; + meta.l2_metadata.bd_stats_idx = (bit<16>)stats_idx; + meta.multicast_metadata.mld_snooping_enabled = (bit<1>)mld_snooping_enabled; } @name(".terminate_tunnel_inner_ipv6") action terminate_tunnel_inner_ipv6(bit<12> vrf, bit<10> rmac_group, bit<1> ipv6_unicast_enabled, bit<2> ipv6_urpf_mode) { - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.l3_metadata.vrf = vrf; - meta.qos_metadata.outer_dscp = meta.l3_metadata.lkp_ip_tc; - meta.l3_metadata.lkp_ip_type = 2w2; - meta.ipv6_metadata.lkp_ipv6_sa = hdr.inner_ipv6.srcAddr; - meta.ipv6_metadata.lkp_ipv6_da = hdr.inner_ipv6.dstAddr; - meta.l3_metadata.lkp_ip_version = hdr.inner_ipv6.version; - meta.l3_metadata.lkp_ip_proto = hdr.inner_ipv6.nextHdr; - meta.l3_metadata.lkp_ip_ttl = hdr.inner_ipv6.hopLimit; - meta.l3_metadata.lkp_ip_tc = hdr.inner_ipv6.trafficClass; - meta.l3_metadata.lkp_l4_sport = meta.l3_metadata.lkp_inner_l4_sport; - meta.l3_metadata.lkp_l4_dport = meta.l3_metadata.lkp_inner_l4_dport; - meta.ipv6_metadata.ipv6_unicast_enabled = ipv6_unicast_enabled; - meta.ipv6_metadata.ipv6_urpf_mode = ipv6_urpf_mode; - meta.l3_metadata.rmac_group = rmac_group; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.l3_metadata.vrf = (bit<12>)vrf; + meta.qos_metadata.outer_dscp = (bit<8>)meta.l3_metadata.lkp_ip_tc; + meta.l3_metadata.lkp_ip_type = (bit<2>)2w2; + meta.ipv6_metadata.lkp_ipv6_sa = (bit<128>)hdr.inner_ipv6.srcAddr; + meta.ipv6_metadata.lkp_ipv6_da = (bit<128>)hdr.inner_ipv6.dstAddr; + meta.l3_metadata.lkp_ip_version = (bit<4>)hdr.inner_ipv6.version; + meta.l3_metadata.lkp_ip_proto = (bit<8>)hdr.inner_ipv6.nextHdr; + meta.l3_metadata.lkp_ip_ttl = (bit<8>)hdr.inner_ipv6.hopLimit; + meta.l3_metadata.lkp_ip_tc = (bit<8>)hdr.inner_ipv6.trafficClass; + meta.l3_metadata.lkp_l4_sport = (bit<16>)meta.l3_metadata.lkp_inner_l4_sport; + meta.l3_metadata.lkp_l4_dport = (bit<16>)meta.l3_metadata.lkp_inner_l4_dport; + meta.ipv6_metadata.ipv6_unicast_enabled = (bit<1>)ipv6_unicast_enabled; + meta.ipv6_metadata.ipv6_urpf_mode = (bit<2>)ipv6_urpf_mode; + meta.l3_metadata.rmac_group = (bit<10>)rmac_group; } @name("outer_rmac") table outer_rmac { actions = { @@ -3632,28 +3632,28 @@ control process_validate_packet(inout headers hdr, inout metadata meta, inout st @name(".nop") action nop() { } @name(".set_unicast") action set_unicast() { - meta.l2_metadata.lkp_pkt_type = 3w1; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w1; } @name(".set_unicast_and_ipv6_src_is_link_local") action set_unicast_and_ipv6_src_is_link_local() { - meta.l2_metadata.lkp_pkt_type = 3w1; - meta.ipv6_metadata.ipv6_src_is_link_local = 1w1; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w1; + meta.ipv6_metadata.ipv6_src_is_link_local = (bit<1>)1w1; } @name(".set_multicast") action set_multicast() { - meta.l2_metadata.lkp_pkt_type = 3w2; - meta.l2_metadata.bd_stats_idx = meta.l2_metadata.bd_stats_idx + 16w1; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w2; + meta.l2_metadata.bd_stats_idx = (bit<16>)(meta.l2_metadata.bd_stats_idx + 16w1); } @name(".set_multicast_and_ipv6_src_is_link_local") action set_multicast_and_ipv6_src_is_link_local() { - meta.l2_metadata.lkp_pkt_type = 3w2; - meta.ipv6_metadata.ipv6_src_is_link_local = 1w1; - meta.l2_metadata.bd_stats_idx = meta.l2_metadata.bd_stats_idx + 16w1; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w2; + meta.ipv6_metadata.ipv6_src_is_link_local = (bit<1>)1w1; + meta.l2_metadata.bd_stats_idx = (bit<16>)(meta.l2_metadata.bd_stats_idx + 16w1); } @name(".set_broadcast") action set_broadcast() { - meta.l2_metadata.lkp_pkt_type = 3w4; - meta.l2_metadata.bd_stats_idx = meta.l2_metadata.bd_stats_idx + 16w2; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w4; + meta.l2_metadata.bd_stats_idx = (bit<16>)(meta.l2_metadata.bd_stats_idx + 16w2); } @name(".set_malformed_packet") action set_malformed_packet(bit<8> drop_reason) { - meta.ingress_metadata.drop_flag = 1w1; - meta.ingress_metadata.drop_reason = drop_reason; + meta.ingress_metadata.drop_flag = (bit<1>)1w1; + meta.ingress_metadata.drop_reason = (bit<8>)drop_reason; } @name("validate_packet") table validate_packet { actions = { @@ -3689,35 +3689,35 @@ control process_mac(inout headers hdr, inout metadata meta, inout standard_metad @name(".nop") action nop() { } @name(".dmac_hit") action dmac_hit(bit<16> ifindex) { - meta.ingress_metadata.egress_ifindex = ifindex; - meta.l2_metadata.same_if_check = meta.l2_metadata.same_if_check ^ ifindex; + meta.ingress_metadata.egress_ifindex = (bit<16>)ifindex; + meta.l2_metadata.same_if_check = (bit<16>)(meta.l2_metadata.same_if_check ^ ifindex); } @name(".dmac_multicast_hit") action dmac_multicast_hit(bit<16> mc_index) { - meta.intrinsic_metadata.mcast_grp = mc_index; - meta.fabric_metadata.dst_device = 8w127; + meta.intrinsic_metadata.mcast_grp = (bit<16>)mc_index; + meta.fabric_metadata.dst_device = (bit<8>)8w127; } @name(".dmac_miss") action dmac_miss() { - meta.ingress_metadata.egress_ifindex = 16w65535; - meta.fabric_metadata.dst_device = 8w127; + meta.ingress_metadata.egress_ifindex = (bit<16>)16w65535; + meta.fabric_metadata.dst_device = (bit<8>)8w127; } @name(".dmac_redirect_nexthop") action dmac_redirect_nexthop(bit<16> nexthop_index) { - meta.l2_metadata.l2_redirect = 1w1; - meta.l2_metadata.l2_nexthop = nexthop_index; - meta.l2_metadata.l2_nexthop_type = 1w0; + meta.l2_metadata.l2_redirect = (bit<1>)1w1; + meta.l2_metadata.l2_nexthop = (bit<16>)nexthop_index; + meta.l2_metadata.l2_nexthop_type = (bit<1>)1w0; } @name(".dmac_redirect_ecmp") action dmac_redirect_ecmp(bit<16> ecmp_index) { - meta.l2_metadata.l2_redirect = 1w1; - meta.l2_metadata.l2_nexthop = ecmp_index; - meta.l2_metadata.l2_nexthop_type = 1w1; + meta.l2_metadata.l2_redirect = (bit<1>)1w1; + meta.l2_metadata.l2_nexthop = (bit<16>)ecmp_index; + meta.l2_metadata.l2_nexthop_type = (bit<1>)1w1; } @name(".dmac_drop") action dmac_drop() { mark_to_drop(); } @name(".smac_miss") action smac_miss() { - meta.l2_metadata.l2_src_miss = 1w1; + meta.l2_metadata.l2_src_miss = (bit<1>)1w1; } @name(".smac_hit") action smac_hit(bit<16> ifindex) { - meta.l2_metadata.l2_src_move = meta.ingress_metadata.ifindex ^ ifindex; + meta.l2_metadata.l2_src_move = (bit<16>)(meta.ingress_metadata.ifindex ^ ifindex); } @name("dmac") table dmac { support_timeout = true; @@ -3762,24 +3762,24 @@ control process_mac_acl(inout headers hdr, inout metadata meta, inout standard_m @name(".nop") action nop() { } @name(".acl_log") action acl_log(bit<16> acl_stats_index) { - meta.ingress_metadata.enable_dod = 1w0; - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.ingress_metadata.enable_dod = (bit<1>)1w0; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name(".acl_deny") action acl_deny(bit<16> acl_stats_index) { - meta.acl_metadata.acl_deny = 1w1; - meta.ingress_metadata.enable_dod = 1w0; - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.acl_metadata.acl_deny = (bit<1>)1w1; + meta.ingress_metadata.enable_dod = (bit<1>)1w0; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name(".acl_permit") action acl_permit(bit<16> acl_stats_index) { - meta.ingress_metadata.enable_dod = 1w0; - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.ingress_metadata.enable_dod = (bit<1>)1w0; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name(".acl_mirror") action acl_mirror(bit<32> session_id, bit<16> acl_stats_index) { - meta.i2e_metadata.mirror_session_id = session_id; - meta.i2e_metadata.ingress_tstamp = meta.intrinsic_metadata.ingress_global_tstamp; - meta.ingress_metadata.enable_dod = 1w0; + meta.i2e_metadata.mirror_session_id = (bit<16>)session_id; + meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; + meta.ingress_metadata.enable_dod = (bit<1>)1w0; clone3(CloneType.I2E, (bit<32>)session_id, { meta.i2e_metadata.ingress_tstamp, meta.i2e_metadata.mirror_session_id }); - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name("mac_acl") table mac_acl { actions = { @@ -3809,41 +3809,41 @@ control process_ip_acl(inout headers hdr, inout metadata meta, inout standard_me @name(".nop") action nop() { } @name(".acl_log") action acl_log(bit<16> acl_stats_index) { - meta.ingress_metadata.enable_dod = 1w0; - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.ingress_metadata.enable_dod = (bit<1>)1w0; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name(".acl_deny") action acl_deny(bit<16> acl_stats_index) { - meta.acl_metadata.acl_deny = 1w1; - meta.ingress_metadata.enable_dod = 1w0; - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.acl_metadata.acl_deny = (bit<1>)1w1; + meta.ingress_metadata.enable_dod = (bit<1>)1w0; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name(".acl_permit") action acl_permit(bit<16> acl_stats_index) { - meta.ingress_metadata.enable_dod = 1w0; - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.ingress_metadata.enable_dod = (bit<1>)1w0; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name(".acl_mirror") action acl_mirror(bit<32> session_id, bit<16> acl_stats_index) { - meta.i2e_metadata.mirror_session_id = session_id; - meta.i2e_metadata.ingress_tstamp = meta.intrinsic_metadata.ingress_global_tstamp; - meta.ingress_metadata.enable_dod = 1w0; + meta.i2e_metadata.mirror_session_id = (bit<16>)session_id; + meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; + meta.ingress_metadata.enable_dod = (bit<1>)1w0; clone3(CloneType.I2E, (bit<32>)session_id, { meta.i2e_metadata.ingress_tstamp, meta.i2e_metadata.mirror_session_id }); - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name(".acl_dod_en") action acl_dod_en() { - meta.ingress_metadata.enable_dod = 1w1; + meta.ingress_metadata.enable_dod = (bit<1>)1w1; } @name(".acl_redirect_nexthop") action acl_redirect_nexthop(bit<16> nexthop_index, bit<16> acl_stats_index) { - meta.acl_metadata.acl_redirect = 1w1; - meta.acl_metadata.acl_nexthop = nexthop_index; - meta.acl_metadata.acl_nexthop_type = 1w0; - meta.ingress_metadata.enable_dod = 1w0; - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.acl_metadata.acl_redirect = (bit<1>)1w1; + meta.acl_metadata.acl_nexthop = (bit<16>)nexthop_index; + meta.acl_metadata.acl_nexthop_type = (bit<1>)1w0; + meta.ingress_metadata.enable_dod = (bit<1>)1w0; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name(".acl_redirect_ecmp") action acl_redirect_ecmp(bit<16> ecmp_index, bit<16> acl_stats_index) { - meta.acl_metadata.acl_redirect = 1w1; - meta.acl_metadata.acl_nexthop = ecmp_index; - meta.acl_metadata.acl_nexthop_type = 1w1; - meta.ingress_metadata.enable_dod = 1w0; - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.acl_metadata.acl_redirect = (bit<1>)1w1; + meta.acl_metadata.acl_nexthop = (bit<16>)ecmp_index; + meta.acl_metadata.acl_nexthop_type = (bit<1>)1w1; + meta.ingress_metadata.enable_dod = (bit<1>)1w0; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name("ip_acl") table ip_acl { actions = { @@ -3912,13 +3912,13 @@ control process_qos(inout headers hdr, inout metadata meta, inout standard_metad @name(".nop") action nop() { } @name(".apply_cos_marking") action apply_cos_marking(bit<3> cos) { - meta.qos_metadata.marked_cos = cos; + meta.qos_metadata.marked_cos = (bit<3>)cos; } @name(".apply_dscp_marking") action apply_dscp_marking(bit<8> dscp) { - meta.qos_metadata.marked_dscp = dscp; + meta.qos_metadata.marked_dscp = (bit<8>)dscp; } @name(".apply_tc_marking") action apply_tc_marking(bit<3> tc) { - meta.qos_metadata.marked_exp = tc; + meta.qos_metadata.marked_exp = (bit<3>)tc; } @name("qos") table qos { actions = { @@ -3949,26 +3949,26 @@ control process_ipv4_racl(inout headers hdr, inout metadata meta, inout standard @name(".nop") action nop() { } @name(".racl_log") action racl_log(bit<16> acl_stats_index) { - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name(".racl_deny") action racl_deny(bit<16> acl_stats_index) { - meta.acl_metadata.racl_deny = 1w1; - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.acl_metadata.racl_deny = (bit<1>)1w1; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name(".racl_permit") action racl_permit(bit<16> acl_stats_index) { - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name(".racl_redirect_nexthop") action racl_redirect_nexthop(bit<16> nexthop_index, bit<16> acl_stats_index) { - meta.acl_metadata.racl_redirect = 1w1; - meta.acl_metadata.racl_nexthop = nexthop_index; - meta.acl_metadata.racl_nexthop_type = 1w0; - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.acl_metadata.racl_redirect = (bit<1>)1w1; + meta.acl_metadata.racl_nexthop = (bit<16>)nexthop_index; + meta.acl_metadata.racl_nexthop_type = (bit<1>)1w0; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name(".racl_redirect_ecmp") action racl_redirect_ecmp(bit<16> ecmp_index, bit<16> acl_stats_index) { - meta.acl_metadata.racl_redirect = 1w1; - meta.acl_metadata.racl_nexthop = ecmp_index; - meta.acl_metadata.racl_nexthop_type = 1w1; - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.acl_metadata.racl_redirect = (bit<1>)1w1; + meta.acl_metadata.racl_nexthop = (bit<16>)ecmp_index; + meta.acl_metadata.racl_nexthop_type = (bit<1>)1w1; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name("ipv4_racl") table ipv4_racl { actions = { @@ -4000,12 +4000,12 @@ control process_ipv4_urpf(inout headers hdr, inout metadata meta, inout standard @name(".on_miss") action on_miss() { } @name(".ipv4_urpf_hit") action ipv4_urpf_hit(bit<16> urpf_bd_group) { - meta.l3_metadata.urpf_hit = 1w1; - meta.l3_metadata.urpf_bd_group = urpf_bd_group; - meta.l3_metadata.urpf_mode = meta.ipv4_metadata.ipv4_urpf_mode; + meta.l3_metadata.urpf_hit = (bit<1>)1w1; + meta.l3_metadata.urpf_bd_group = (bit<16>)urpf_bd_group; + meta.l3_metadata.urpf_mode = (bit<2>)meta.ipv4_metadata.ipv4_urpf_mode; } @name(".urpf_miss") action urpf_miss() { - meta.l3_metadata.urpf_check_fail = 1w1; + meta.l3_metadata.urpf_check_fail = (bit<1>)1w1; } @name("ipv4_urpf") table ipv4_urpf { actions = { @@ -4049,14 +4049,14 @@ control process_ipv4_fib(inout headers hdr, inout metadata meta, inout standard_ @name(".on_miss") action on_miss() { } @name(".fib_hit_nexthop") action fib_hit_nexthop(bit<16> nexthop_index) { - meta.l3_metadata.fib_hit = 1w1; - meta.l3_metadata.fib_nexthop = nexthop_index; - meta.l3_metadata.fib_nexthop_type = 1w0; + meta.l3_metadata.fib_hit = (bit<1>)1w1; + meta.l3_metadata.fib_nexthop = (bit<16>)nexthop_index; + meta.l3_metadata.fib_nexthop_type = (bit<1>)1w0; } @name(".fib_hit_ecmp") action fib_hit_ecmp(bit<16> ecmp_index) { - meta.l3_metadata.fib_hit = 1w1; - meta.l3_metadata.fib_nexthop = ecmp_index; - meta.l3_metadata.fib_nexthop_type = 1w1; + meta.l3_metadata.fib_hit = (bit<1>)1w1; + meta.l3_metadata.fib_nexthop = (bit<16>)ecmp_index; + meta.l3_metadata.fib_nexthop_type = (bit<1>)1w1; } @name("ipv4_fib") table ipv4_fib { actions = { @@ -4100,26 +4100,26 @@ control process_ipv6_racl(inout headers hdr, inout metadata meta, inout standard @name(".nop") action nop() { } @name(".racl_log") action racl_log(bit<16> acl_stats_index) { - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name(".racl_deny") action racl_deny(bit<16> acl_stats_index) { - meta.acl_metadata.racl_deny = 1w1; - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.acl_metadata.racl_deny = (bit<1>)1w1; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name(".racl_permit") action racl_permit(bit<16> acl_stats_index) { - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name(".racl_redirect_nexthop") action racl_redirect_nexthop(bit<16> nexthop_index, bit<16> acl_stats_index) { - meta.acl_metadata.racl_redirect = 1w1; - meta.acl_metadata.racl_nexthop = nexthop_index; - meta.acl_metadata.racl_nexthop_type = 1w0; - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.acl_metadata.racl_redirect = (bit<1>)1w1; + meta.acl_metadata.racl_nexthop = (bit<16>)nexthop_index; + meta.acl_metadata.racl_nexthop_type = (bit<1>)1w0; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name(".racl_redirect_ecmp") action racl_redirect_ecmp(bit<16> ecmp_index, bit<16> acl_stats_index) { - meta.acl_metadata.racl_redirect = 1w1; - meta.acl_metadata.racl_nexthop = ecmp_index; - meta.acl_metadata.racl_nexthop_type = 1w1; - meta.acl_metadata.acl_stats_index = acl_stats_index; + meta.acl_metadata.racl_redirect = (bit<1>)1w1; + meta.acl_metadata.racl_nexthop = (bit<16>)ecmp_index; + meta.acl_metadata.racl_nexthop_type = (bit<1>)1w1; + meta.acl_metadata.acl_stats_index = (bit<16>)acl_stats_index; } @name("ipv6_racl") table ipv6_racl { actions = { @@ -4151,12 +4151,12 @@ control process_ipv6_urpf(inout headers hdr, inout metadata meta, inout standard @name(".on_miss") action on_miss() { } @name(".ipv6_urpf_hit") action ipv6_urpf_hit(bit<16> urpf_bd_group) { - meta.l3_metadata.urpf_hit = 1w1; - meta.l3_metadata.urpf_bd_group = urpf_bd_group; - meta.l3_metadata.urpf_mode = meta.ipv6_metadata.ipv6_urpf_mode; + meta.l3_metadata.urpf_hit = (bit<1>)1w1; + meta.l3_metadata.urpf_bd_group = (bit<16>)urpf_bd_group; + meta.l3_metadata.urpf_mode = (bit<2>)meta.ipv6_metadata.ipv6_urpf_mode; } @name(".urpf_miss") action urpf_miss() { - meta.l3_metadata.urpf_check_fail = 1w1; + meta.l3_metadata.urpf_check_fail = (bit<1>)1w1; } @name("ipv6_urpf") table ipv6_urpf { actions = { @@ -4200,14 +4200,14 @@ control process_ipv6_fib(inout headers hdr, inout metadata meta, inout standard_ @name(".on_miss") action on_miss() { } @name(".fib_hit_nexthop") action fib_hit_nexthop(bit<16> nexthop_index) { - meta.l3_metadata.fib_hit = 1w1; - meta.l3_metadata.fib_nexthop = nexthop_index; - meta.l3_metadata.fib_nexthop_type = 1w0; + meta.l3_metadata.fib_hit = (bit<1>)1w1; + meta.l3_metadata.fib_nexthop = (bit<16>)nexthop_index; + meta.l3_metadata.fib_nexthop_type = (bit<1>)1w0; } @name(".fib_hit_ecmp") action fib_hit_ecmp(bit<16> ecmp_index) { - meta.l3_metadata.fib_hit = 1w1; - meta.l3_metadata.fib_nexthop = ecmp_index; - meta.l3_metadata.fib_nexthop_type = 1w1; + meta.l3_metadata.fib_hit = (bit<1>)1w1; + meta.l3_metadata.fib_nexthop = (bit<16>)ecmp_index; + meta.l3_metadata.fib_nexthop_type = (bit<1>)1w1; } @name("ipv6_fib") table ipv6_fib { actions = { @@ -4251,7 +4251,7 @@ control process_urpf_bd(inout headers hdr, inout metadata meta, inout standard_m @name(".nop") action nop() { } @name(".urpf_bd_miss") action urpf_bd_miss() { - meta.l3_metadata.urpf_check_fail = 1w1; + meta.l3_metadata.urpf_check_fail = (bit<1>)1w1; } @name("urpf_bd") table urpf_bd { actions = { @@ -4277,42 +4277,42 @@ control process_ingress_fabric(inout headers hdr, inout metadata meta, inout sta @name(".nop") action nop() { } @name(".terminate_cpu_packet") action terminate_cpu_packet() { - standard_metadata.egress_spec = hdr.fabric_header.dstPortOrGroup; - meta.egress_metadata.bypass = hdr.fabric_header_cpu.txBypass; - hdr.ethernet.etherType = hdr.fabric_payload_header.etherType; + standard_metadata.egress_spec = (bit<9>)hdr.fabric_header.dstPortOrGroup; + meta.egress_metadata.bypass = (bit<1>)hdr.fabric_header_cpu.txBypass; + hdr.ethernet.etherType = (bit<16>)hdr.fabric_payload_header.etherType; hdr.fabric_header.setInvalid(); hdr.fabric_header_cpu.setInvalid(); hdr.fabric_payload_header.setInvalid(); } @name(".switch_fabric_unicast_packet") action switch_fabric_unicast_packet() { - meta.fabric_metadata.fabric_header_present = 1w1; - meta.fabric_metadata.dst_device = hdr.fabric_header.dstDevice; - meta.fabric_metadata.dst_port = hdr.fabric_header.dstPortOrGroup; + meta.fabric_metadata.fabric_header_present = (bit<1>)1w1; + meta.fabric_metadata.dst_device = (bit<8>)hdr.fabric_header.dstDevice; + meta.fabric_metadata.dst_port = (bit<16>)hdr.fabric_header.dstPortOrGroup; } @name(".terminate_fabric_unicast_packet") action terminate_fabric_unicast_packet() { - standard_metadata.egress_spec = hdr.fabric_header.dstPortOrGroup; - meta.tunnel_metadata.tunnel_terminate = hdr.fabric_header_unicast.tunnelTerminate; - meta.tunnel_metadata.ingress_tunnel_type = hdr.fabric_header_unicast.ingressTunnelType; - meta.l3_metadata.nexthop_index = hdr.fabric_header_unicast.nexthopIndex; - meta.l3_metadata.routed = hdr.fabric_header_unicast.routed; - meta.l3_metadata.outer_routed = hdr.fabric_header_unicast.outerRouted; - hdr.ethernet.etherType = hdr.fabric_payload_header.etherType; + standard_metadata.egress_spec = (bit<9>)hdr.fabric_header.dstPortOrGroup; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)hdr.fabric_header_unicast.tunnelTerminate; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)hdr.fabric_header_unicast.ingressTunnelType; + meta.l3_metadata.nexthop_index = (bit<16>)hdr.fabric_header_unicast.nexthopIndex; + meta.l3_metadata.routed = (bit<1>)hdr.fabric_header_unicast.routed; + meta.l3_metadata.outer_routed = (bit<1>)hdr.fabric_header_unicast.outerRouted; + hdr.ethernet.etherType = (bit<16>)hdr.fabric_payload_header.etherType; hdr.fabric_header.setInvalid(); hdr.fabric_header_unicast.setInvalid(); hdr.fabric_payload_header.setInvalid(); } @name(".switch_fabric_multicast_packet") action switch_fabric_multicast_packet() { - meta.fabric_metadata.fabric_header_present = 1w1; - meta.intrinsic_metadata.mcast_grp = hdr.fabric_header.dstPortOrGroup; + meta.fabric_metadata.fabric_header_present = (bit<1>)1w1; + meta.intrinsic_metadata.mcast_grp = (bit<16>)hdr.fabric_header.dstPortOrGroup; } @name(".terminate_fabric_multicast_packet") action terminate_fabric_multicast_packet() { - meta.tunnel_metadata.tunnel_terminate = hdr.fabric_header_multicast.tunnelTerminate; - meta.tunnel_metadata.ingress_tunnel_type = hdr.fabric_header_multicast.ingressTunnelType; - meta.l3_metadata.nexthop_index = 16w0; - meta.l3_metadata.routed = hdr.fabric_header_multicast.routed; - meta.l3_metadata.outer_routed = hdr.fabric_header_multicast.outerRouted; - meta.intrinsic_metadata.mcast_grp = hdr.fabric_header_multicast.mcastGrp; - hdr.ethernet.etherType = hdr.fabric_payload_header.etherType; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)hdr.fabric_header_multicast.tunnelTerminate; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)hdr.fabric_header_multicast.ingressTunnelType; + meta.l3_metadata.nexthop_index = (bit<16>)16w0; + meta.l3_metadata.routed = (bit<1>)hdr.fabric_header_multicast.routed; + meta.l3_metadata.outer_routed = (bit<1>)hdr.fabric_header_multicast.outerRouted; + meta.intrinsic_metadata.mcast_grp = (bit<16>)hdr.fabric_header_multicast.mcastGrp; + hdr.ethernet.etherType = (bit<16>)hdr.fabric_payload_header.etherType; hdr.fabric_header.setInvalid(); hdr.fabric_header_multicast.setInvalid(); hdr.fabric_payload_header.setInvalid(); @@ -4320,46 +4320,46 @@ control process_ingress_fabric(inout headers hdr, inout metadata meta, inout sta @name(".set_ingress_ifindex_properties") action set_ingress_ifindex_properties() { } @name(".terminate_inner_ethernet_non_ip_over_fabric") action terminate_inner_ethernet_non_ip_over_fabric() { - meta.l2_metadata.lkp_mac_sa = hdr.inner_ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.inner_ethernet.dstAddr; - meta.l2_metadata.lkp_mac_type = hdr.inner_ethernet.etherType; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.inner_ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.inner_ethernet.dstAddr; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.inner_ethernet.etherType; } @name(".terminate_inner_ethernet_ipv4_over_fabric") action terminate_inner_ethernet_ipv4_over_fabric() { - meta.l2_metadata.lkp_mac_sa = hdr.inner_ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.inner_ethernet.dstAddr; - meta.l2_metadata.lkp_mac_type = hdr.inner_ethernet.etherType; - meta.ipv4_metadata.lkp_ipv4_sa = hdr.inner_ipv4.srcAddr; - meta.ipv4_metadata.lkp_ipv4_da = hdr.inner_ipv4.dstAddr; - meta.l3_metadata.lkp_ip_proto = hdr.inner_ipv4.protocol; - meta.l3_metadata.lkp_l4_sport = meta.l3_metadata.lkp_inner_l4_sport; - meta.l3_metadata.lkp_l4_dport = meta.l3_metadata.lkp_inner_l4_dport; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.inner_ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.inner_ethernet.dstAddr; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.inner_ethernet.etherType; + meta.ipv4_metadata.lkp_ipv4_sa = (bit<32>)hdr.inner_ipv4.srcAddr; + meta.ipv4_metadata.lkp_ipv4_da = (bit<32>)hdr.inner_ipv4.dstAddr; + meta.l3_metadata.lkp_ip_proto = (bit<8>)hdr.inner_ipv4.protocol; + meta.l3_metadata.lkp_l4_sport = (bit<16>)meta.l3_metadata.lkp_inner_l4_sport; + meta.l3_metadata.lkp_l4_dport = (bit<16>)meta.l3_metadata.lkp_inner_l4_dport; } @name(".terminate_inner_ipv4_over_fabric") action terminate_inner_ipv4_over_fabric() { - meta.ipv4_metadata.lkp_ipv4_sa = hdr.inner_ipv4.srcAddr; - meta.ipv4_metadata.lkp_ipv4_da = hdr.inner_ipv4.dstAddr; - meta.l3_metadata.lkp_ip_version = hdr.inner_ipv4.version; - meta.l3_metadata.lkp_ip_proto = hdr.inner_ipv4.protocol; - meta.l3_metadata.lkp_ip_ttl = hdr.inner_ipv4.ttl; - meta.l3_metadata.lkp_ip_tc = hdr.inner_ipv4.diffserv; - meta.l3_metadata.lkp_l4_sport = meta.l3_metadata.lkp_inner_l4_sport; - meta.l3_metadata.lkp_l4_dport = meta.l3_metadata.lkp_inner_l4_dport; + meta.ipv4_metadata.lkp_ipv4_sa = (bit<32>)hdr.inner_ipv4.srcAddr; + meta.ipv4_metadata.lkp_ipv4_da = (bit<32>)hdr.inner_ipv4.dstAddr; + meta.l3_metadata.lkp_ip_version = (bit<4>)hdr.inner_ipv4.version; + meta.l3_metadata.lkp_ip_proto = (bit<8>)hdr.inner_ipv4.protocol; + meta.l3_metadata.lkp_ip_ttl = (bit<8>)hdr.inner_ipv4.ttl; + meta.l3_metadata.lkp_ip_tc = (bit<8>)hdr.inner_ipv4.diffserv; + meta.l3_metadata.lkp_l4_sport = (bit<16>)meta.l3_metadata.lkp_inner_l4_sport; + meta.l3_metadata.lkp_l4_dport = (bit<16>)meta.l3_metadata.lkp_inner_l4_dport; } @name(".terminate_inner_ethernet_ipv6_over_fabric") action terminate_inner_ethernet_ipv6_over_fabric() { - meta.l2_metadata.lkp_mac_sa = hdr.inner_ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.inner_ethernet.dstAddr; - meta.l2_metadata.lkp_mac_type = hdr.inner_ethernet.etherType; - meta.ipv6_metadata.lkp_ipv6_sa = hdr.inner_ipv6.srcAddr; - meta.ipv6_metadata.lkp_ipv6_da = hdr.inner_ipv6.dstAddr; - meta.l3_metadata.lkp_ip_proto = hdr.inner_ipv6.nextHdr; - meta.l3_metadata.lkp_l4_sport = meta.l3_metadata.lkp_inner_l4_sport; - meta.l3_metadata.lkp_l4_dport = meta.l3_metadata.lkp_inner_l4_dport; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.inner_ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.inner_ethernet.dstAddr; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.inner_ethernet.etherType; + meta.ipv6_metadata.lkp_ipv6_sa = (bit<128>)hdr.inner_ipv6.srcAddr; + meta.ipv6_metadata.lkp_ipv6_da = (bit<128>)hdr.inner_ipv6.dstAddr; + meta.l3_metadata.lkp_ip_proto = (bit<8>)hdr.inner_ipv6.nextHdr; + meta.l3_metadata.lkp_l4_sport = (bit<16>)meta.l3_metadata.lkp_inner_l4_sport; + meta.l3_metadata.lkp_l4_dport = (bit<16>)meta.l3_metadata.lkp_inner_l4_dport; } @name(".terminate_inner_ipv6_over_fabric") action terminate_inner_ipv6_over_fabric() { - meta.ipv6_metadata.lkp_ipv6_sa = hdr.inner_ipv6.srcAddr; - meta.ipv6_metadata.lkp_ipv6_da = hdr.inner_ipv6.dstAddr; - meta.l3_metadata.lkp_ip_proto = hdr.inner_ipv6.nextHdr; - meta.l3_metadata.lkp_l4_sport = meta.l3_metadata.lkp_inner_l4_sport; - meta.l3_metadata.lkp_l4_dport = meta.l3_metadata.lkp_inner_l4_dport; + meta.ipv6_metadata.lkp_ipv6_sa = (bit<128>)hdr.inner_ipv6.srcAddr; + meta.ipv6_metadata.lkp_ipv6_da = (bit<128>)hdr.inner_ipv6.dstAddr; + meta.l3_metadata.lkp_ip_proto = (bit<8>)hdr.inner_ipv6.nextHdr; + meta.l3_metadata.lkp_l4_sport = (bit<16>)meta.l3_metadata.lkp_inner_l4_sport; + meta.l3_metadata.lkp_l4_dport = (bit<16>)meta.l3_metadata.lkp_inner_l4_dport; } @name("fabric_ingress_dst_lkp") table fabric_ingress_dst_lkp { actions = { @@ -4429,13 +4429,13 @@ control process_hashes(inout headers hdr, inout metadata meta, inout standard_me hash(meta.hash_metadata.hash2, HashAlgorithm.crc16, (bit<16>)0, { meta.ingress_metadata.ifindex, meta.l2_metadata.lkp_mac_sa, meta.l2_metadata.lkp_mac_da, meta.l2_metadata.lkp_mac_type }, (bit<32>)65536); } @name(".computed_two_hashes") action computed_two_hashes() { - meta.intrinsic_metadata.mcast_hash = meta.hash_metadata.hash1; - meta.hash_metadata.entropy_hash = meta.hash_metadata.hash2; + meta.intrinsic_metadata.mcast_hash = (bit<13>)meta.hash_metadata.hash1; + meta.hash_metadata.entropy_hash = (bit<16>)meta.hash_metadata.hash2; } @name(".computed_one_hash") action computed_one_hash() { - meta.hash_metadata.hash1 = meta.hash_metadata.hash2; - meta.intrinsic_metadata.mcast_hash = meta.hash_metadata.hash2; - meta.hash_metadata.entropy_hash = meta.hash_metadata.hash2; + meta.hash_metadata.hash1 = (bit<16>)meta.hash_metadata.hash2; + meta.intrinsic_metadata.mcast_hash = (bit<13>)meta.hash_metadata.hash2; + meta.hash_metadata.entropy_hash = (bit<16>)meta.hash_metadata.hash2; } @name("compute_ipv4_hashes") table compute_ipv4_hashes { actions = { @@ -4537,31 +4537,31 @@ control process_fwd_results(inout headers hdr, inout metadata meta, inout standa @name(".nop") action nop() { } @name(".set_l2_redirect_action") action set_l2_redirect_action() { - meta.l3_metadata.nexthop_index = meta.l2_metadata.l2_nexthop; - meta.nexthop_metadata.nexthop_type = meta.l2_metadata.l2_nexthop_type; + meta.l3_metadata.nexthop_index = (bit<16>)meta.l2_metadata.l2_nexthop; + meta.nexthop_metadata.nexthop_type = (bit<1>)meta.l2_metadata.l2_nexthop_type; } @name(".set_fib_redirect_action") action set_fib_redirect_action() { - meta.l3_metadata.nexthop_index = meta.l3_metadata.fib_nexthop; - meta.nexthop_metadata.nexthop_type = meta.l3_metadata.fib_nexthop_type; - meta.l3_metadata.routed = 1w1; - meta.intrinsic_metadata.mcast_grp = 16w0; - meta.fabric_metadata.dst_device = 8w0; + meta.l3_metadata.nexthop_index = (bit<16>)meta.l3_metadata.fib_nexthop; + meta.nexthop_metadata.nexthop_type = (bit<1>)meta.l3_metadata.fib_nexthop_type; + meta.l3_metadata.routed = (bit<1>)1w1; + meta.intrinsic_metadata.mcast_grp = (bit<16>)16w0; + meta.fabric_metadata.dst_device = (bit<8>)8w0; } @name(".set_cpu_redirect_action") action set_cpu_redirect_action() { - meta.l3_metadata.routed = 1w0; - meta.intrinsic_metadata.mcast_grp = 16w0; - standard_metadata.egress_spec = 9w64; - meta.ingress_metadata.egress_ifindex = 16w0; - meta.fabric_metadata.dst_device = 8w0; + meta.l3_metadata.routed = (bit<1>)1w0; + meta.intrinsic_metadata.mcast_grp = (bit<16>)16w0; + standard_metadata.egress_spec = (bit<9>)9w64; + meta.ingress_metadata.egress_ifindex = (bit<16>)16w0; + meta.fabric_metadata.dst_device = (bit<8>)8w0; } @name(".set_acl_redirect_action") action set_acl_redirect_action() { - meta.l3_metadata.nexthop_index = meta.acl_metadata.acl_nexthop; - meta.nexthop_metadata.nexthop_type = meta.acl_metadata.acl_nexthop_type; + meta.l3_metadata.nexthop_index = (bit<16>)meta.acl_metadata.acl_nexthop; + meta.nexthop_metadata.nexthop_type = (bit<1>)meta.acl_metadata.acl_nexthop_type; } @name(".set_racl_redirect_action") action set_racl_redirect_action() { - meta.l3_metadata.nexthop_index = meta.acl_metadata.racl_nexthop; - meta.nexthop_metadata.nexthop_type = meta.acl_metadata.racl_nexthop_type; - meta.l3_metadata.routed = 1w1; + meta.l3_metadata.nexthop_index = (bit<16>)meta.acl_metadata.racl_nexthop; + meta.nexthop_metadata.nexthop_type = (bit<1>)meta.acl_metadata.racl_nexthop_type; + meta.l3_metadata.routed = (bit<1>)1w1; } @name("fwd_result") table fwd_result { actions = { @@ -4592,30 +4592,30 @@ control process_nexthop(inout headers hdr, inout metadata meta, inout standard_m @name(".nop") action nop() { } @name(".set_ecmp_nexthop_details") action set_ecmp_nexthop_details(bit<16> ifindex, bit<16> bd, bit<16> nhop_index, bit<1> tunnel) { - meta.ingress_metadata.egress_ifindex = ifindex; - meta.l3_metadata.nexthop_index = nhop_index; - meta.l3_metadata.same_bd_check = meta.ingress_metadata.bd ^ bd; - meta.l2_metadata.same_if_check = meta.l2_metadata.same_if_check ^ ifindex; - meta.tunnel_metadata.tunnel_if_check = meta.tunnel_metadata.tunnel_terminate ^ tunnel; + meta.ingress_metadata.egress_ifindex = (bit<16>)ifindex; + meta.l3_metadata.nexthop_index = (bit<16>)nhop_index; + meta.l3_metadata.same_bd_check = (bit<16>)(meta.ingress_metadata.bd ^ bd); + meta.l2_metadata.same_if_check = (bit<16>)(meta.l2_metadata.same_if_check ^ ifindex); + meta.tunnel_metadata.tunnel_if_check = (bit<1>)(meta.tunnel_metadata.tunnel_terminate ^ tunnel); } @name(".set_ecmp_nexthop_details_for_post_routed_flood") action set_ecmp_nexthop_details_for_post_routed_flood(bit<16> bd, bit<16> uuc_mc_index, bit<16> nhop_index) { - meta.intrinsic_metadata.mcast_grp = uuc_mc_index; - meta.l3_metadata.nexthop_index = nhop_index; - meta.ingress_metadata.egress_ifindex = 16w0; - meta.l3_metadata.same_bd_check = meta.ingress_metadata.bd ^ bd; - meta.fabric_metadata.dst_device = 8w127; + meta.intrinsic_metadata.mcast_grp = (bit<16>)uuc_mc_index; + meta.l3_metadata.nexthop_index = (bit<16>)nhop_index; + meta.ingress_metadata.egress_ifindex = (bit<16>)16w0; + meta.l3_metadata.same_bd_check = (bit<16>)(meta.ingress_metadata.bd ^ bd); + meta.fabric_metadata.dst_device = (bit<8>)8w127; } @name(".set_nexthop_details") action set_nexthop_details(bit<16> ifindex, bit<16> bd, bit<1> tunnel) { - meta.ingress_metadata.egress_ifindex = ifindex; - meta.l3_metadata.same_bd_check = meta.ingress_metadata.bd ^ bd; - meta.l2_metadata.same_if_check = meta.l2_metadata.same_if_check ^ ifindex; - meta.tunnel_metadata.tunnel_if_check = meta.tunnel_metadata.tunnel_terminate ^ tunnel; + meta.ingress_metadata.egress_ifindex = (bit<16>)ifindex; + meta.l3_metadata.same_bd_check = (bit<16>)(meta.ingress_metadata.bd ^ bd); + meta.l2_metadata.same_if_check = (bit<16>)(meta.l2_metadata.same_if_check ^ ifindex); + meta.tunnel_metadata.tunnel_if_check = (bit<1>)(meta.tunnel_metadata.tunnel_terminate ^ tunnel); } @name(".set_nexthop_details_for_post_routed_flood") action set_nexthop_details_for_post_routed_flood(bit<16> bd, bit<16> uuc_mc_index) { - meta.intrinsic_metadata.mcast_grp = uuc_mc_index; - meta.ingress_metadata.egress_ifindex = 16w0; - meta.l3_metadata.same_bd_check = meta.ingress_metadata.bd ^ bd; - meta.fabric_metadata.dst_device = 8w127; + meta.intrinsic_metadata.mcast_grp = (bit<16>)uuc_mc_index; + meta.ingress_metadata.egress_ifindex = (bit<16>)16w0; + meta.l3_metadata.same_bd_check = (bit<16>)(meta.ingress_metadata.bd ^ bd); + meta.fabric_metadata.dst_device = (bit<8>)8w127; } @name("ecmp_group") table ecmp_group { actions = { @@ -4659,7 +4659,7 @@ control process_multicast_flooding(inout headers hdr, inout metadata meta, inout @name(".nop") action nop() { } @name(".set_bd_flood_mc_index") action set_bd_flood_mc_index(bit<16> mc_index) { - meta.intrinsic_metadata.mcast_grp = mc_index; + meta.intrinsic_metadata.mcast_grp = (bit<16>)mc_index; } @name("bd_flood") table bd_flood { actions = { @@ -4683,11 +4683,11 @@ control process_lag(inout headers hdr, inout metadata meta, inout standard_metad @name(".set_lag_miss") action set_lag_miss() { } @name(".set_lag_port") action set_lag_port(bit<9> port) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name(".set_lag_remote_port") action set_lag_remote_port(bit<8> device, bit<16> port) { - meta.fabric_metadata.dst_device = device; - meta.fabric_metadata.dst_port = port; + meta.fabric_metadata.dst_device = (bit<8>)device; + meta.fabric_metadata.dst_port = (bit<16>)port; } @name("lag_group") table lag_group { actions = { @@ -4746,10 +4746,10 @@ control process_fabric_lag(inout headers hdr, inout metadata meta, inout standar @name(".nop") action nop() { } @name(".set_fabric_lag_port") action set_fabric_lag_port(bit<9> port) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name(".set_fabric_multicast") action set_fabric_multicast(bit<8> fabric_mgid) { - meta.multicast_metadata.mcast_grp = meta.intrinsic_metadata.mcast_grp; + meta.multicast_metadata.mcast_grp = (bit<16>)meta.intrinsic_metadata.mcast_grp; } @name("fabric_lag") table fabric_lag { actions = { @@ -4779,13 +4779,13 @@ control process_system_acl(inout headers hdr, inout metadata meta, inout standar @name(".nop") action nop() { } @name(".copy_to_cpu") action copy_to_cpu(bit<16> reason_code) { - meta.fabric_metadata.reason_code = reason_code; + meta.fabric_metadata.reason_code = (bit<16>)reason_code; clone3(CloneType.I2E, (bit<32>)32w250, { meta.ingress_metadata.bd, meta.ingress_metadata.ifindex, meta.fabric_metadata.reason_code, meta.ingress_metadata.ingress_port }); } @name(".redirect_to_cpu") action redirect_to_cpu(bit<16> reason_code) { copy_to_cpu(reason_code); mark_to_drop(); - meta.fabric_metadata.dst_device = 8w0; + meta.fabric_metadata.dst_device = (bit<8>)8w0; } @name(".drop_packet") action drop_packet() { mark_to_drop(); @@ -4799,7 +4799,7 @@ control process_system_acl(inout headers hdr, inout metadata meta, inout standar mark_to_drop(); } @name(".deflect_on_drop") action deflect_on_drop() { - meta.intrinsic_metadata.deflect_on_drop = 1w1; + meta.intrinsic_metadata.deflect_on_drop = (bit<1>)1w1; } @name(".congestion_mirror_set") action congestion_mirror_set() { deflect_on_drop(); @@ -4865,10 +4865,10 @@ control process_system_acl(inout headers hdr, inout metadata meta, inout standar control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".rmac_hit") action rmac_hit() { - meta.l3_metadata.rmac_hit = 1w1; + meta.l3_metadata.rmac_hit = (bit<1>)1w1; } @name(".rmac_miss") action rmac_miss() { - meta.l3_metadata.rmac_hit = 1w0; + meta.l3_metadata.rmac_hit = (bit<1>)1w0; } @name("rmac") table rmac { actions = { diff --git a/testdata/p4_14_samples_outputs/switch_20160512/switch-first.p4 b/testdata/p4_14_samples_outputs/switch_20160512/switch-first.p4 index e6e6efbcbed..1c105b17b84 100644 --- a/testdata/p4_14_samples_outputs/switch_20160512/switch-first.p4 +++ b/testdata/p4_14_samples_outputs/switch_20160512/switch-first.p4 @@ -2937,7 +2937,7 @@ control process_egress_acl(inout headers hdr, inout metadata meta, inout standar } @name(".egress_mirror") action egress_mirror(bit<32> session_id) { meta.i2e_metadata.mirror_session_id = (bit<16>)session_id; - clone3, bit<16>>>(CloneType.E2E, (bit<32>)session_id, { meta.i2e_metadata.ingress_tstamp, meta.i2e_metadata.mirror_session_id }); + clone3, bit<16>>>(CloneType.E2E, session_id, { meta.i2e_metadata.ingress_tstamp, meta.i2e_metadata.mirror_session_id }); } @name(".egress_mirror_drop") action egress_mirror_drop(bit<32> session_id) { egress_mirror(session_id); @@ -3465,7 +3465,7 @@ control process_int_endpoint(inout headers hdr, inout metadata meta, inout stand @name(".int_sink") action int_sink(bit<32> mirror_id) { meta.int_metadata_i2e.sink = 1w1; meta.i2e_metadata.mirror_session_id = (bit<16>)mirror_id; - clone3, bit<16>>>(CloneType.I2E, (bit<32>)mirror_id, { meta.int_metadata_i2e.sink, meta.i2e_metadata.mirror_session_id }); + clone3, bit<16>>>(CloneType.I2E, mirror_id, { meta.int_metadata_i2e.sink, meta.i2e_metadata.mirror_session_id }); hdr.int_header.setInvalid(); hdr.int_val[0].setInvalid(); hdr.int_val[1].setInvalid(); @@ -4249,7 +4249,7 @@ control process_ingress_sflow(inout headers hdr, inout metadata meta, inout stan @name(".sflow_ing_pkt_to_cpu") action sflow_ing_pkt_to_cpu(bit<32> sflow_i2e_mirror_id, bit<16> reason_code) { meta.fabric_metadata.reason_code = reason_code; meta.i2e_metadata.mirror_session_id = (bit<16>)sflow_i2e_mirror_id; - clone3, bit<16>, bit<16>, bit<9>>, bit<16>, bit<16>>>(CloneType.I2E, (bit<32>)sflow_i2e_mirror_id, { { meta.ingress_metadata.bd, meta.ingress_metadata.ifindex, meta.fabric_metadata.reason_code, meta.ingress_metadata.ingress_port }, meta.sflow_metadata.sflow_session_id, meta.i2e_metadata.mirror_session_id }); + clone3, bit<16>, bit<16>, bit<9>>, bit<16>, bit<16>>>(CloneType.I2E, sflow_i2e_mirror_id, { { meta.ingress_metadata.bd, meta.ingress_metadata.ifindex, meta.fabric_metadata.reason_code, meta.ingress_metadata.ingress_port }, meta.sflow_metadata.sflow_session_id, meta.i2e_metadata.mirror_session_id }); } @name(".sflow_ing_session_enable") action sflow_ing_session_enable(bit<32> rate_thr, bit<16> session_id) { meta.ingress_metadata.sflow_take_sample = rate_thr + meta.ingress_metadata.sflow_take_sample; @@ -4259,10 +4259,10 @@ control process_ingress_sflow(inout headers hdr, inout metadata meta, inout stan sflow_ingress_session_pkt_counter.count(); } @name(".sflow_ing_pkt_to_cpu") action sflow_ing_pkt_to_cpu_0(bit<32> sflow_i2e_mirror_id, bit<16> reason_code) { + sflow_ingress_session_pkt_counter.count(); meta.fabric_metadata.reason_code = reason_code; meta.i2e_metadata.mirror_session_id = (bit<16>)sflow_i2e_mirror_id; - clone3, bit<16>, bit<16>, bit<9>>, bit<16>, bit<16>>>(CloneType.I2E, (bit<32>)sflow_i2e_mirror_id, { { meta.ingress_metadata.bd, meta.ingress_metadata.ifindex, meta.fabric_metadata.reason_code, meta.ingress_metadata.ingress_port }, meta.sflow_metadata.sflow_session_id, meta.i2e_metadata.mirror_session_id }); - sflow_ingress_session_pkt_counter.count(); + clone3, bit<16>, bit<16>, bit<9>>, bit<16>, bit<16>>>(CloneType.I2E, sflow_i2e_mirror_id, { { meta.ingress_metadata.bd, meta.ingress_metadata.ifindex, meta.fabric_metadata.reason_code, meta.ingress_metadata.ingress_port }, meta.sflow_metadata.sflow_session_id, meta.i2e_metadata.mirror_session_id }); } @name("sflow_ing_take_sample") table sflow_ing_take_sample { actions = { @@ -4475,7 +4475,7 @@ control process_mac_acl(inout headers hdr, inout metadata meta, inout standard_m @name(".acl_mirror") action acl_mirror(bit<32> session_id, bit<14> acl_stats_index, bit<16> acl_meter_index) { meta.i2e_metadata.mirror_session_id = (bit<16>)session_id; meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; - clone3, bit<16>>>(CloneType.I2E, (bit<32>)session_id, { meta.i2e_metadata.ingress_tstamp, meta.i2e_metadata.mirror_session_id }); + clone3, bit<16>>>(CloneType.I2E, session_id, { meta.i2e_metadata.ingress_tstamp, meta.i2e_metadata.mirror_session_id }); meta.acl_metadata.acl_stats_index = acl_stats_index; meta.meter_metadata.meter_index = acl_meter_index; } @@ -4542,7 +4542,7 @@ control process_ip_acl(inout headers hdr, inout metadata meta, inout standard_me @name(".acl_mirror") action acl_mirror(bit<32> session_id, bit<14> acl_stats_index, bit<16> acl_meter_index) { meta.i2e_metadata.mirror_session_id = (bit<16>)session_id; meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; - clone3, bit<16>>>(CloneType.I2E, (bit<32>)session_id, { meta.i2e_metadata.ingress_tstamp, meta.i2e_metadata.mirror_session_id }); + clone3, bit<16>>>(CloneType.I2E, session_id, { meta.i2e_metadata.ingress_tstamp, meta.i2e_metadata.mirror_session_id }); meta.acl_metadata.acl_stats_index = acl_stats_index; meta.meter_metadata.meter_index = acl_meter_index; } @@ -5059,11 +5059,11 @@ control process_ipv4_multicast(inout headers hdr, inout metadata meta, inout sta ipv4_multicast_route_s_g_stats.count(); } @name(".multicast_route_s_g_hit") action multicast_route_s_g_hit_0(bit<16> mc_index, bit<16> mcast_rpf_group) { + ipv4_multicast_route_s_g_stats.count(); meta.multicast_metadata.multicast_route_mc_index = mc_index; meta.multicast_metadata.mcast_mode = 2w1; meta.multicast_metadata.mcast_route_hit = 1w1; meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group; - ipv4_multicast_route_s_g_stats.count(); } @name("ipv4_multicast_route") table ipv4_multicast_route { actions = { @@ -5081,22 +5081,22 @@ control process_ipv4_multicast(inout headers hdr, inout metadata meta, inout sta @name("ipv4_multicast_route_s_g_stats") counters = direct_counter(CounterType.packets); } @name(".multicast_route_star_g_miss") action multicast_route_star_g_miss_0() { - meta.l3_metadata.l3_copy = 1w1; ipv4_multicast_route_star_g_stats.count(); + meta.l3_metadata.l3_copy = 1w1; } @name(".multicast_route_sm_star_g_hit") action multicast_route_sm_star_g_hit_0(bit<16> mc_index, bit<16> mcast_rpf_group) { + ipv4_multicast_route_star_g_stats.count(); meta.multicast_metadata.mcast_mode = 2w1; meta.multicast_metadata.multicast_route_mc_index = mc_index; meta.multicast_metadata.mcast_route_hit = 1w1; meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group; - ipv4_multicast_route_star_g_stats.count(); } @name(".multicast_route_bidir_star_g_hit") action multicast_route_bidir_star_g_hit_0(bit<16> mc_index, bit<16> mcast_rpf_group) { + ipv4_multicast_route_star_g_stats.count(); meta.multicast_metadata.mcast_mode = 2w2; meta.multicast_metadata.multicast_route_mc_index = mc_index; meta.multicast_metadata.mcast_route_hit = 1w1; meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group | meta.multicast_metadata.bd_mrpf_group; - ipv4_multicast_route_star_g_stats.count(); } @name("ipv4_multicast_route_star_g") table ipv4_multicast_route_star_g { actions = { @@ -5198,11 +5198,11 @@ control process_ipv6_multicast(inout headers hdr, inout metadata meta, inout sta ipv6_multicast_route_s_g_stats.count(); } @name(".multicast_route_s_g_hit") action multicast_route_s_g_hit_1(bit<16> mc_index, bit<16> mcast_rpf_group) { + ipv6_multicast_route_s_g_stats.count(); meta.multicast_metadata.multicast_route_mc_index = mc_index; meta.multicast_metadata.mcast_mode = 2w1; meta.multicast_metadata.mcast_route_hit = 1w1; meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group; - ipv6_multicast_route_s_g_stats.count(); } @name("ipv6_multicast_route") table ipv6_multicast_route { actions = { @@ -5220,22 +5220,22 @@ control process_ipv6_multicast(inout headers hdr, inout metadata meta, inout sta @name("ipv6_multicast_route_s_g_stats") counters = direct_counter(CounterType.packets); } @name(".multicast_route_star_g_miss") action multicast_route_star_g_miss_1() { - meta.l3_metadata.l3_copy = 1w1; ipv6_multicast_route_star_g_stats.count(); + meta.l3_metadata.l3_copy = 1w1; } @name(".multicast_route_sm_star_g_hit") action multicast_route_sm_star_g_hit_1(bit<16> mc_index, bit<16> mcast_rpf_group) { + ipv6_multicast_route_star_g_stats.count(); meta.multicast_metadata.mcast_mode = 2w1; meta.multicast_metadata.multicast_route_mc_index = mc_index; meta.multicast_metadata.mcast_route_hit = 1w1; meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group; - ipv6_multicast_route_star_g_stats.count(); } @name(".multicast_route_bidir_star_g_hit") action multicast_route_bidir_star_g_hit_1(bit<16> mc_index, bit<16> mcast_rpf_group) { + ipv6_multicast_route_star_g_stats.count(); meta.multicast_metadata.mcast_mode = 2w2; meta.multicast_metadata.multicast_route_mc_index = mc_index; meta.multicast_metadata.mcast_route_hit = 1w1; meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group | meta.multicast_metadata.bd_mrpf_group; - ipv6_multicast_route_star_g_stats.count(); } @name("ipv6_multicast_route_star_g") table ipv6_multicast_route_star_g { actions = { @@ -5399,8 +5399,8 @@ control process_meter_action(inout headers hdr, inout metadata meta, inout stand meter_stats.count(); } @name(".meter_deny") action meter_deny_0() { - mark_to_drop(); meter_stats.count(); + mark_to_drop(); } @name("meter_action") table meter_action { actions = { @@ -5788,7 +5788,7 @@ control process_system_acl(inout headers hdr, inout metadata meta, inout standar mark_to_drop(); } @name(".negative_mirror") action negative_mirror(bit<32> session_id) { - clone3, bit<8>>>(CloneType.I2E, (bit<32>)session_id, { meta.ingress_metadata.ifindex, meta.ingress_metadata.drop_reason }); + clone3, bit<8>>>(CloneType.I2E, session_id, { meta.ingress_metadata.ifindex, meta.ingress_metadata.drop_reason }); mark_to_drop(); } @name("drop_stats") table drop_stats_0 { diff --git a/testdata/p4_14_samples_outputs/switch_20160512/switch.p4 b/testdata/p4_14_samples_outputs/switch_20160512/switch.p4 index 77874b6e5ec..ecd282b60aa 100644 --- a/testdata/p4_14_samples_outputs/switch_20160512/switch.p4 +++ b/testdata/p4_14_samples_outputs/switch_20160512/switch.p4 @@ -834,7 +834,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout transition parse_set_prio_max; } @name("parse_eompls") state parse_eompls { - meta.tunnel_metadata.ingress_tunnel_type = 5w6; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w6; transition parse_inner_ethernet; } @name("parse_erspan_t3") state parse_erspan_t3 { @@ -870,7 +870,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_fabric_header_cpu") state parse_fabric_header_cpu { packet.extract(hdr.fabric_header_cpu); - meta.ingress_metadata.bypass_lookups = hdr.fabric_header_cpu.reasonCode; + meta.ingress_metadata.bypass_lookups = (bit<16>)hdr.fabric_header_cpu.reasonCode; transition select(hdr.fabric_header_cpu.reasonCode) { 16w0x4: parse_fabric_sflow_header; default: parse_fabric_payload_header; @@ -914,8 +914,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_geneve") state parse_geneve { packet.extract(hdr.genv); - meta.tunnel_metadata.tunnel_vni = hdr.genv.vni; - meta.tunnel_metadata.ingress_tunnel_type = 5w4; + meta.tunnel_metadata.tunnel_vni = (bit<24>)hdr.genv.vni; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w4; transition select(hdr.genv.ver, hdr.genv.optLen, hdr.genv.protoType) { (2w0x0, 6w0x0, 16w0x6558): parse_inner_ethernet; (2w0x0, 6w0x0, 16w0x800): parse_inner_ipv4; @@ -925,7 +925,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_gpe_int_header") state parse_gpe_int_header { packet.extract(hdr.vxlan_gpe_int_header); - meta.int_metadata.gpe_int_hdr_len = hdr.vxlan_gpe_int_header.len; + meta.int_metadata.gpe_int_hdr_len = (bit<16>)hdr.vxlan_gpe_int_header.len; transition parse_int_header; } @name("parse_gre") state parse_gre { @@ -939,11 +939,11 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } } @name("parse_gre_ipv4") state parse_gre_ipv4 { - meta.tunnel_metadata.ingress_tunnel_type = 5w2; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w2; transition parse_inner_ipv4; } @name("parse_gre_ipv6") state parse_gre_ipv6 { - meta.tunnel_metadata.ingress_tunnel_type = 5w2; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w2; transition parse_inner_ipv6; } @name("parse_gre_v6") state parse_gre_v6 { @@ -955,7 +955,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_icmp") state parse_icmp { packet.extract(hdr.icmp); - meta.l3_metadata.lkp_outer_l4_sport = hdr.icmp.typeCode; + meta.l3_metadata.lkp_outer_l4_sport = (bit<16>)hdr.icmp.typeCode; transition select(hdr.icmp.typeCode) { 16w0x8200 &&& 16w0xfe00: parse_set_prio_med; 16w0x8400 &&& 16w0xfc00: parse_set_prio_med; @@ -965,8 +965,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_inner_ethernet") state parse_inner_ethernet { packet.extract(hdr.inner_ethernet); - meta.l2_metadata.lkp_mac_sa = hdr.inner_ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.inner_ethernet.dstAddr; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.inner_ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.inner_ethernet.dstAddr; transition select(hdr.inner_ethernet.etherType) { 16w0x800: parse_inner_ipv4; 16w0x86dd: parse_inner_ipv6; @@ -975,15 +975,15 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_inner_icmp") state parse_inner_icmp { packet.extract(hdr.inner_icmp); - meta.l3_metadata.lkp_l4_sport = hdr.inner_icmp.typeCode; + meta.l3_metadata.lkp_l4_sport = (bit<16>)hdr.inner_icmp.typeCode; transition accept; } @name("parse_inner_ipv4") state parse_inner_ipv4 { packet.extract(hdr.inner_ipv4); - meta.ipv4_metadata.lkp_ipv4_sa = hdr.inner_ipv4.srcAddr; - meta.ipv4_metadata.lkp_ipv4_da = hdr.inner_ipv4.dstAddr; - meta.l3_metadata.lkp_ip_proto = hdr.inner_ipv4.protocol; - meta.l3_metadata.lkp_ip_ttl = hdr.inner_ipv4.ttl; + meta.ipv4_metadata.lkp_ipv4_sa = (bit<32>)hdr.inner_ipv4.srcAddr; + meta.ipv4_metadata.lkp_ipv4_da = (bit<32>)hdr.inner_ipv4.dstAddr; + meta.l3_metadata.lkp_ip_proto = (bit<8>)hdr.inner_ipv4.protocol; + meta.l3_metadata.lkp_ip_ttl = (bit<8>)hdr.inner_ipv4.ttl; transition select(hdr.inner_ipv4.fragOffset, hdr.inner_ipv4.ihl, hdr.inner_ipv4.protocol) { (13w0x0, 4w0x5, 8w0x1): parse_inner_icmp; (13w0x0, 4w0x5, 8w0x6): parse_inner_tcp; @@ -993,10 +993,10 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_inner_ipv6") state parse_inner_ipv6 { packet.extract(hdr.inner_ipv6); - meta.ipv6_metadata.lkp_ipv6_sa = hdr.inner_ipv6.srcAddr; - meta.ipv6_metadata.lkp_ipv6_da = hdr.inner_ipv6.dstAddr; - meta.l3_metadata.lkp_ip_proto = hdr.inner_ipv6.nextHdr; - meta.l3_metadata.lkp_ip_ttl = hdr.inner_ipv6.hopLimit; + meta.ipv6_metadata.lkp_ipv6_sa = (bit<128>)hdr.inner_ipv6.srcAddr; + meta.ipv6_metadata.lkp_ipv6_da = (bit<128>)hdr.inner_ipv6.dstAddr; + meta.l3_metadata.lkp_ip_proto = (bit<8>)hdr.inner_ipv6.nextHdr; + meta.l3_metadata.lkp_ip_ttl = (bit<8>)hdr.inner_ipv6.hopLimit; transition select(hdr.inner_ipv6.nextHdr) { 8w58: parse_inner_icmp; 8w6: parse_inner_tcp; @@ -1010,19 +1010,19 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_inner_tcp") state parse_inner_tcp { packet.extract(hdr.inner_tcp); - meta.l3_metadata.lkp_l4_sport = hdr.inner_tcp.srcPort; - meta.l3_metadata.lkp_l4_dport = hdr.inner_tcp.dstPort; + meta.l3_metadata.lkp_l4_sport = (bit<16>)hdr.inner_tcp.srcPort; + meta.l3_metadata.lkp_l4_dport = (bit<16>)hdr.inner_tcp.dstPort; transition accept; } @name("parse_inner_udp") state parse_inner_udp { packet.extract(hdr.inner_udp); - meta.l3_metadata.lkp_l4_sport = hdr.inner_udp.srcPort; - meta.l3_metadata.lkp_l4_dport = hdr.inner_udp.dstPort; + meta.l3_metadata.lkp_l4_sport = (bit<16>)hdr.inner_udp.srcPort; + meta.l3_metadata.lkp_l4_dport = (bit<16>)hdr.inner_udp.dstPort; transition accept; } @name("parse_int_header") state parse_int_header { packet.extract(hdr.int_header); - meta.int_metadata.instruction_cnt = hdr.int_header.ins_cnt; + meta.int_metadata.instruction_cnt = (bit<16>)hdr.int_header.ins_cnt; transition select(hdr.int_header.rsvd1, hdr.int_header.total_hop_cnt) { (5w0x0, 8w0x0): accept; (5w0x0 &&& 5w0xf, 8w0x0 &&& 8w0x0): parse_int_val; @@ -1055,7 +1055,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } } @name("parse_ipv4_in_ip") state parse_ipv4_in_ip { - meta.tunnel_metadata.ingress_tunnel_type = 5w3; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w3; transition parse_inner_ipv4; } @name("parse_ipv6") state parse_ipv6 { @@ -1075,7 +1075,7 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } } @name("parse_ipv6_in_ip") state parse_ipv6_in_ip { - meta.tunnel_metadata.ingress_tunnel_type = 5w3; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w3; transition parse_inner_ipv6; } @name("parse_lisp") state parse_lisp { @@ -1110,11 +1110,11 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } } @name("parse_mpls_inner_ipv4") state parse_mpls_inner_ipv4 { - meta.tunnel_metadata.ingress_tunnel_type = 5w9; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w9; transition parse_inner_ipv4; } @name("parse_mpls_inner_ipv6") state parse_mpls_inner_ipv6 { - meta.tunnel_metadata.ingress_tunnel_type = 5w9; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w9; transition parse_inner_ipv6; } @name("parse_nsh") state parse_nsh { @@ -1129,8 +1129,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_nvgre") state parse_nvgre { packet.extract(hdr.nvgre); - meta.tunnel_metadata.ingress_tunnel_type = 5w5; - meta.tunnel_metadata.tunnel_vni = hdr.nvgre.tni; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w5; + meta.tunnel_metadata.tunnel_vni = (bit<24>)hdr.nvgre.tni; transition parse_inner_ethernet; } @name("parse_pw") state parse_pw { @@ -1168,15 +1168,15 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout transition accept; } @name("parse_set_prio_high") state parse_set_prio_high { - meta.intrinsic_metadata.priority = 3w5; + meta.intrinsic_metadata.priority = (bit<3>)3w5; transition accept; } @name("parse_set_prio_max") state parse_set_prio_max { - meta.intrinsic_metadata.priority = 3w7; + meta.intrinsic_metadata.priority = (bit<3>)3w7; transition accept; } @name("parse_set_prio_med") state parse_set_prio_med { - meta.intrinsic_metadata.priority = 3w3; + meta.intrinsic_metadata.priority = (bit<3>)3w3; transition accept; } @name("parse_sflow") state parse_sflow { @@ -1199,8 +1199,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_tcp") state parse_tcp { packet.extract(hdr.tcp); - meta.l3_metadata.lkp_outer_l4_sport = hdr.tcp.srcPort; - meta.l3_metadata.lkp_outer_l4_dport = hdr.tcp.dstPort; + meta.l3_metadata.lkp_outer_l4_sport = (bit<16>)hdr.tcp.srcPort; + meta.l3_metadata.lkp_outer_l4_dport = (bit<16>)hdr.tcp.dstPort; transition select(hdr.tcp.dstPort) { 16w179: parse_set_prio_med; 16w639: parse_set_prio_med; @@ -1213,8 +1213,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_udp") state parse_udp { packet.extract(hdr.udp); - meta.l3_metadata.lkp_outer_l4_sport = hdr.udp.srcPort; - meta.l3_metadata.lkp_outer_l4_dport = hdr.udp.dstPort; + meta.l3_metadata.lkp_outer_l4_sport = (bit<16>)hdr.udp.srcPort; + meta.l3_metadata.lkp_outer_l4_dport = (bit<16>)hdr.udp.dstPort; transition select(hdr.udp.dstPort) { 16w4789: parse_vxlan; 16w6081: parse_geneve; @@ -1232,8 +1232,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_udp_v6") state parse_udp_v6 { packet.extract(hdr.udp); - meta.l3_metadata.lkp_outer_l4_sport = hdr.udp.srcPort; - meta.l3_metadata.lkp_outer_l4_dport = hdr.udp.dstPort; + meta.l3_metadata.lkp_outer_l4_sport = (bit<16>)hdr.udp.srcPort; + meta.l3_metadata.lkp_outer_l4_dport = (bit<16>)hdr.udp.dstPort; transition select(hdr.udp.dstPort) { 16w67: parse_set_prio_med; 16w68: parse_set_prio_med; @@ -1266,14 +1266,14 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout } @name("parse_vxlan") state parse_vxlan { packet.extract(hdr.vxlan); - meta.tunnel_metadata.ingress_tunnel_type = 5w1; - meta.tunnel_metadata.tunnel_vni = hdr.vxlan.vni; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w1; + meta.tunnel_metadata.tunnel_vni = (bit<24>)hdr.vxlan.vni; transition parse_inner_ethernet; } @name("parse_vxlan_gpe") state parse_vxlan_gpe { packet.extract(hdr.vxlan_gpe); - meta.tunnel_metadata.ingress_tunnel_type = 5w12; - meta.tunnel_metadata.tunnel_vni = hdr.vxlan_gpe.vni; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)5w12; + meta.tunnel_metadata.tunnel_vni = (bit<24>)hdr.vxlan_gpe.vni; transition select(hdr.vxlan_gpe.flags, hdr.vxlan_gpe.next_proto) { (8w0x8 &&& 8w0x8, 8w0x5 &&& 8w0xff): parse_gpe_int_header; default: parse_inner_ethernet; @@ -1288,27 +1288,27 @@ control process_replication(inout headers hdr, inout metadata meta, inout standa @name(".nop") action nop() { } @name(".set_replica_copy_bridged") action set_replica_copy_bridged() { - meta.egress_metadata.routed = 1w0; + meta.egress_metadata.routed = (bit<1>)1w0; } @name(".outer_replica_from_rid") action outer_replica_from_rid(bit<16> bd, bit<14> tunnel_index, bit<5> tunnel_type, bit<4> header_count) { - meta.egress_metadata.bd = bd; - meta.multicast_metadata.replica = 1w1; - meta.multicast_metadata.inner_replica = 1w0; - meta.egress_metadata.routed = meta.l3_metadata.outer_routed; - meta.egress_metadata.same_bd_check = bd ^ meta.ingress_metadata.outer_bd; - meta.tunnel_metadata.tunnel_index = tunnel_index; - meta.tunnel_metadata.egress_tunnel_type = tunnel_type; - meta.tunnel_metadata.egress_header_count = header_count; + meta.egress_metadata.bd = (bit<16>)bd; + meta.multicast_metadata.replica = (bit<1>)1w1; + meta.multicast_metadata.inner_replica = (bit<1>)1w0; + meta.egress_metadata.routed = (bit<1>)meta.l3_metadata.outer_routed; + meta.egress_metadata.same_bd_check = (bit<16>)(bd ^ meta.ingress_metadata.outer_bd); + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)tunnel_type; + meta.tunnel_metadata.egress_header_count = (bit<4>)header_count; } @name(".inner_replica_from_rid") action inner_replica_from_rid(bit<16> bd, bit<14> tunnel_index, bit<5> tunnel_type, bit<4> header_count) { - meta.egress_metadata.bd = bd; - meta.multicast_metadata.replica = 1w1; - meta.multicast_metadata.inner_replica = 1w1; - meta.egress_metadata.routed = meta.l3_metadata.routed; - meta.egress_metadata.same_bd_check = bd ^ meta.ingress_metadata.bd; - meta.tunnel_metadata.tunnel_index = tunnel_index; - meta.tunnel_metadata.egress_tunnel_type = tunnel_type; - meta.tunnel_metadata.egress_header_count = header_count; + meta.egress_metadata.bd = (bit<16>)bd; + meta.multicast_metadata.replica = (bit<1>)1w1; + meta.multicast_metadata.inner_replica = (bit<1>)1w1; + meta.egress_metadata.routed = (bit<1>)meta.l3_metadata.routed; + meta.egress_metadata.same_bd_check = (bit<16>)(bd ^ meta.ingress_metadata.bd); + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)tunnel_type; + meta.tunnel_metadata.egress_header_count = (bit<4>)header_count; } @name("replica_type") table replica_type { actions = { @@ -1348,11 +1348,11 @@ control process_vlan_decap(inout headers hdr, inout metadata meta, inout standar @name(".nop") action nop() { } @name(".remove_vlan_single_tagged") action remove_vlan_single_tagged() { - hdr.ethernet.etherType = hdr.vlan_tag_[0].etherType; + hdr.ethernet.etherType = (bit<16>)hdr.vlan_tag_[0].etherType; hdr.vlan_tag_[0].setInvalid(); } @name(".remove_vlan_double_tagged") action remove_vlan_double_tagged() { - hdr.ethernet.etherType = hdr.vlan_tag_[1].etherType; + hdr.ethernet.etherType = (bit<16>)hdr.vlan_tag_[1].etherType; hdr.vlan_tag_[0].setInvalid(); hdr.vlan_tag_[1].setInvalid(); } @@ -1467,17 +1467,17 @@ control process_tunnel_decap(inout headers hdr, inout metadata meta, inout stand hdr.gre.setInvalid(); hdr.ipv6.setInvalid(); hdr.inner_ipv4.setInvalid(); - hdr.ethernet.etherType = 16w0x800; + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".decap_gre_inner_ipv6") action decap_gre_inner_ipv6() { hdr.ipv6 = hdr.inner_ipv6; hdr.gre.setInvalid(); hdr.ipv4.setInvalid(); hdr.inner_ipv6.setInvalid(); - hdr.ethernet.etherType = 16w0x86dd; + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".decap_gre_inner_non_ip") action decap_gre_inner_non_ip() { - hdr.ethernet.etherType = hdr.gre.proto; + hdr.ethernet.etherType = (bit<16>)hdr.gre.proto; hdr.gre.setInvalid(); hdr.ipv4.setInvalid(); hdr.inner_ipv6.setInvalid(); @@ -1486,25 +1486,25 @@ control process_tunnel_decap(inout headers hdr, inout metadata meta, inout stand hdr.ipv4 = hdr.inner_ipv4; hdr.ipv6.setInvalid(); hdr.inner_ipv4.setInvalid(); - hdr.ethernet.etherType = 16w0x800; + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".decap_ip_inner_ipv6") action decap_ip_inner_ipv6() { hdr.ipv6 = hdr.inner_ipv6; hdr.ipv4.setInvalid(); hdr.inner_ipv6.setInvalid(); - hdr.ethernet.etherType = 16w0x86dd; + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".decap_mpls_inner_ipv4_pop1") action decap_mpls_inner_ipv4_pop1() { hdr.mpls[0].setInvalid(); hdr.ipv4 = hdr.inner_ipv4; hdr.inner_ipv4.setInvalid(); - hdr.ethernet.etherType = 16w0x800; + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".decap_mpls_inner_ipv6_pop1") action decap_mpls_inner_ipv6_pop1() { hdr.mpls[0].setInvalid(); hdr.ipv6 = hdr.inner_ipv6; hdr.inner_ipv6.setInvalid(); - hdr.ethernet.etherType = 16w0x86dd; + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".decap_mpls_inner_ethernet_ipv4_pop1") action decap_mpls_inner_ethernet_ipv4_pop1() { hdr.mpls[0].setInvalid(); @@ -1530,14 +1530,14 @@ control process_tunnel_decap(inout headers hdr, inout metadata meta, inout stand hdr.mpls[1].setInvalid(); hdr.ipv4 = hdr.inner_ipv4; hdr.inner_ipv4.setInvalid(); - hdr.ethernet.etherType = 16w0x800; + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".decap_mpls_inner_ipv6_pop2") action decap_mpls_inner_ipv6_pop2() { hdr.mpls[0].setInvalid(); hdr.mpls[1].setInvalid(); hdr.ipv6 = hdr.inner_ipv6; hdr.inner_ipv6.setInvalid(); - hdr.ethernet.etherType = 16w0x86dd; + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".decap_mpls_inner_ethernet_ipv4_pop2") action decap_mpls_inner_ethernet_ipv4_pop2() { hdr.mpls[0].setInvalid(); @@ -1567,7 +1567,7 @@ control process_tunnel_decap(inout headers hdr, inout metadata meta, inout stand hdr.mpls[2].setInvalid(); hdr.ipv4 = hdr.inner_ipv4; hdr.inner_ipv4.setInvalid(); - hdr.ethernet.etherType = 16w0x800; + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".decap_mpls_inner_ipv6_pop3") action decap_mpls_inner_ipv6_pop3() { hdr.mpls[0].setInvalid(); @@ -1575,7 +1575,7 @@ control process_tunnel_decap(inout headers hdr, inout metadata meta, inout stand hdr.mpls[2].setInvalid(); hdr.ipv6 = hdr.inner_ipv6; hdr.inner_ipv6.setInvalid(); - hdr.ethernet.etherType = 16w0x86dd; + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".decap_mpls_inner_ethernet_ipv4_pop3") action decap_mpls_inner_ethernet_ipv4_pop3() { hdr.mpls[0].setInvalid(); @@ -1673,63 +1673,63 @@ control process_rewrite(inout headers hdr, inout metadata meta, inout standard_m @name(".nop") action nop() { } @name(".set_l2_rewrite") action set_l2_rewrite() { - meta.egress_metadata.routed = 1w0; - meta.egress_metadata.bd = meta.ingress_metadata.bd; - meta.egress_metadata.outer_bd = meta.ingress_metadata.bd; + meta.egress_metadata.routed = (bit<1>)1w0; + meta.egress_metadata.bd = (bit<16>)meta.ingress_metadata.bd; + meta.egress_metadata.outer_bd = (bit<16>)meta.ingress_metadata.bd; } @name(".set_l2_rewrite_with_tunnel") action set_l2_rewrite_with_tunnel(bit<14> tunnel_index, bit<5> tunnel_type) { - meta.egress_metadata.routed = 1w0; - meta.egress_metadata.bd = meta.ingress_metadata.bd; - meta.egress_metadata.outer_bd = meta.ingress_metadata.bd; - meta.tunnel_metadata.tunnel_index = tunnel_index; - meta.tunnel_metadata.egress_tunnel_type = tunnel_type; + meta.egress_metadata.routed = (bit<1>)1w0; + meta.egress_metadata.bd = (bit<16>)meta.ingress_metadata.bd; + meta.egress_metadata.outer_bd = (bit<16>)meta.ingress_metadata.bd; + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)tunnel_type; } @name(".set_l3_rewrite") action set_l3_rewrite(bit<16> bd, bit<8> mtu_index, bit<48> dmac) { - meta.egress_metadata.routed = 1w1; - meta.egress_metadata.mac_da = dmac; - meta.egress_metadata.bd = bd; - meta.egress_metadata.outer_bd = bd; - meta.l3_metadata.mtu_index = mtu_index; + meta.egress_metadata.routed = (bit<1>)1w1; + meta.egress_metadata.mac_da = (bit<48>)dmac; + meta.egress_metadata.bd = (bit<16>)bd; + meta.egress_metadata.outer_bd = (bit<16>)bd; + meta.l3_metadata.mtu_index = (bit<8>)mtu_index; } @name(".set_l3_rewrite_with_tunnel") action set_l3_rewrite_with_tunnel(bit<16> bd, bit<48> dmac, bit<14> tunnel_index, bit<5> tunnel_type) { - meta.egress_metadata.routed = 1w1; - meta.egress_metadata.mac_da = dmac; - meta.egress_metadata.bd = bd; - meta.egress_metadata.outer_bd = bd; - meta.tunnel_metadata.tunnel_index = tunnel_index; - meta.tunnel_metadata.egress_tunnel_type = tunnel_type; + meta.egress_metadata.routed = (bit<1>)1w1; + meta.egress_metadata.mac_da = (bit<48>)dmac; + meta.egress_metadata.bd = (bit<16>)bd; + meta.egress_metadata.outer_bd = (bit<16>)bd; + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)tunnel_type; } @name(".set_mpls_swap_push_rewrite_l2") action set_mpls_swap_push_rewrite_l2(bit<20> label, bit<14> tunnel_index, bit<4> header_count) { - meta.egress_metadata.routed = meta.l3_metadata.routed; - meta.egress_metadata.bd = meta.ingress_metadata.bd; - hdr.mpls[0].label = label; - meta.tunnel_metadata.tunnel_index = tunnel_index; - meta.tunnel_metadata.egress_header_count = header_count; - meta.tunnel_metadata.egress_tunnel_type = 5w13; + meta.egress_metadata.routed = (bit<1>)meta.l3_metadata.routed; + meta.egress_metadata.bd = (bit<16>)meta.ingress_metadata.bd; + hdr.mpls[0].label = (bit<20>)label; + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; + meta.tunnel_metadata.egress_header_count = (bit<4>)header_count; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)5w13; } @name(".set_mpls_push_rewrite_l2") action set_mpls_push_rewrite_l2(bit<14> tunnel_index, bit<4> header_count) { - meta.egress_metadata.routed = meta.l3_metadata.routed; - meta.egress_metadata.bd = meta.ingress_metadata.bd; - meta.tunnel_metadata.tunnel_index = tunnel_index; - meta.tunnel_metadata.egress_header_count = header_count; - meta.tunnel_metadata.egress_tunnel_type = 5w13; + meta.egress_metadata.routed = (bit<1>)meta.l3_metadata.routed; + meta.egress_metadata.bd = (bit<16>)meta.ingress_metadata.bd; + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; + meta.tunnel_metadata.egress_header_count = (bit<4>)header_count; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)5w13; } @name(".set_mpls_swap_push_rewrite_l3") action set_mpls_swap_push_rewrite_l3(bit<16> bd, bit<48> dmac, bit<20> label, bit<14> tunnel_index, bit<4> header_count) { - meta.egress_metadata.routed = meta.l3_metadata.routed; - meta.egress_metadata.bd = bd; - hdr.mpls[0].label = label; - meta.egress_metadata.mac_da = dmac; - meta.tunnel_metadata.tunnel_index = tunnel_index; - meta.tunnel_metadata.egress_header_count = header_count; - meta.tunnel_metadata.egress_tunnel_type = 5w14; + meta.egress_metadata.routed = (bit<1>)meta.l3_metadata.routed; + meta.egress_metadata.bd = (bit<16>)bd; + hdr.mpls[0].label = (bit<20>)label; + meta.egress_metadata.mac_da = (bit<48>)dmac; + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; + meta.tunnel_metadata.egress_header_count = (bit<4>)header_count; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)5w14; } @name(".set_mpls_push_rewrite_l3") action set_mpls_push_rewrite_l3(bit<16> bd, bit<48> dmac, bit<14> tunnel_index, bit<4> header_count) { - meta.egress_metadata.routed = meta.l3_metadata.routed; - meta.egress_metadata.bd = bd; - meta.egress_metadata.mac_da = dmac; - meta.tunnel_metadata.tunnel_index = tunnel_index; - meta.tunnel_metadata.egress_header_count = header_count; - meta.tunnel_metadata.egress_tunnel_type = 5w14; + meta.egress_metadata.routed = (bit<1>)meta.l3_metadata.routed; + meta.egress_metadata.bd = (bit<16>)bd; + meta.egress_metadata.mac_da = (bit<48>)dmac; + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; + meta.tunnel_metadata.egress_header_count = (bit<4>)header_count; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)5w14; } @name(".rewrite_ipv4_multicast") action rewrite_ipv4_multicast() { hdr.ethernet.dstAddr[22:0] = hdr.ipv4.dstAddr[22:0]; @@ -1784,7 +1784,7 @@ control process_egress_bd(inout headers hdr, inout metadata meta, inout standard @name(".nop") action nop() { } @name(".set_egress_bd_properties") action set_egress_bd_properties(bit<9> smac_idx) { - meta.egress_metadata.smac_idx = smac_idx; + meta.egress_metadata.smac_idx = (bit<9>)smac_idx; } @name("egress_bd_map") table egress_bd_map { actions = { @@ -1807,27 +1807,27 @@ control process_mac_rewrite(inout headers hdr, inout metadata meta, inout standa @name(".nop") action nop() { } @name(".ipv4_unicast_rewrite") action ipv4_unicast_rewrite() { - hdr.ethernet.dstAddr = meta.egress_metadata.mac_da; - hdr.ipv4.ttl = hdr.ipv4.ttl + 8w255; + hdr.ethernet.dstAddr = (bit<48>)meta.egress_metadata.mac_da; + hdr.ipv4.ttl = (bit<8>)(hdr.ipv4.ttl + 8w255); } @name(".ipv4_multicast_rewrite") action ipv4_multicast_rewrite() { - hdr.ethernet.dstAddr = hdr.ethernet.dstAddr | 48w0x1005e000000; - hdr.ipv4.ttl = hdr.ipv4.ttl + 8w255; + hdr.ethernet.dstAddr = (bit<48>)(hdr.ethernet.dstAddr | 48w0x1005e000000); + hdr.ipv4.ttl = (bit<8>)(hdr.ipv4.ttl + 8w255); } @name(".ipv6_unicast_rewrite") action ipv6_unicast_rewrite() { - hdr.ethernet.dstAddr = meta.egress_metadata.mac_da; - hdr.ipv6.hopLimit = hdr.ipv6.hopLimit + 8w255; + hdr.ethernet.dstAddr = (bit<48>)meta.egress_metadata.mac_da; + hdr.ipv6.hopLimit = (bit<8>)(hdr.ipv6.hopLimit + 8w255); } @name(".ipv6_multicast_rewrite") action ipv6_multicast_rewrite() { - hdr.ethernet.dstAddr = hdr.ethernet.dstAddr | 48w0x333300000000; - hdr.ipv6.hopLimit = hdr.ipv6.hopLimit + 8w255; + hdr.ethernet.dstAddr = (bit<48>)(hdr.ethernet.dstAddr | 48w0x333300000000); + hdr.ipv6.hopLimit = (bit<8>)(hdr.ipv6.hopLimit + 8w255); } @name(".mpls_rewrite") action mpls_rewrite() { - hdr.ethernet.dstAddr = meta.egress_metadata.mac_da; - hdr.mpls[0].ttl = hdr.mpls[0].ttl + 8w255; + hdr.ethernet.dstAddr = (bit<48>)meta.egress_metadata.mac_da; + hdr.mpls[0].ttl = (bit<8>)(hdr.mpls[0].ttl + 8w255); } @name(".rewrite_smac") action rewrite_smac(bit<48> smac) { - hdr.ethernet.srcAddr = smac; + hdr.ethernet.srcAddr = (bit<48>)smac; } @name("l3_rewrite") table l3_rewrite { actions = { @@ -1869,13 +1869,13 @@ control process_mac_rewrite(inout headers hdr, inout metadata meta, inout standa control process_mtu(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".mtu_miss") action mtu_miss() { - meta.l3_metadata.l3_mtu_check = 16w0xffff; + meta.l3_metadata.l3_mtu_check = (bit<16>)16w0xffff; } @name(".ipv4_mtu_check") action ipv4_mtu_check(bit<16> l3_mtu) { - meta.l3_metadata.l3_mtu_check = l3_mtu - hdr.ipv4.totalLen; + meta.l3_metadata.l3_mtu_check = (bit<16>)(l3_mtu - hdr.ipv4.totalLen); } @name(".ipv6_mtu_check") action ipv6_mtu_check(bit<16> l3_mtu) { - meta.l3_metadata.l3_mtu_check = l3_mtu - hdr.ipv6.payloadLen; + meta.l3_metadata.l3_mtu_check = (bit<16>)(l3_mtu - hdr.ipv6.payloadLen); } @name("mtu") table mtu { actions = { @@ -1899,78 +1899,78 @@ control process_mtu(inout headers hdr, inout metadata meta, inout standard_metad control process_int_insertion(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".int_set_header_0_bos") action int_set_header_0_bos() { - hdr.int_switch_id_header.bos = 1w1; + hdr.int_switch_id_header.bos = (bit<1>)1w1; } @name(".int_set_header_1_bos") action int_set_header_1_bos() { - hdr.int_ingress_port_id_header.bos = 1w1; + hdr.int_ingress_port_id_header.bos = (bit<1>)1w1; } @name(".int_set_header_2_bos") action int_set_header_2_bos() { - hdr.int_hop_latency_header.bos = 1w1; + hdr.int_hop_latency_header.bos = (bit<1>)1w1; } @name(".int_set_header_3_bos") action int_set_header_3_bos() { - hdr.int_q_occupancy_header.bos = 1w1; + hdr.int_q_occupancy_header.bos = (bit<1>)1w1; } @name(".int_set_header_4_bos") action int_set_header_4_bos() { - hdr.int_ingress_tstamp_header.bos = 1w1; + hdr.int_ingress_tstamp_header.bos = (bit<1>)1w1; } @name(".int_set_header_5_bos") action int_set_header_5_bos() { - hdr.int_egress_port_id_header.bos = 1w1; + hdr.int_egress_port_id_header.bos = (bit<1>)1w1; } @name(".int_set_header_6_bos") action int_set_header_6_bos() { - hdr.int_q_congestion_header.bos = 1w1; + hdr.int_q_congestion_header.bos = (bit<1>)1w1; } @name(".int_set_header_7_bos") action int_set_header_7_bos() { - hdr.int_egress_port_tx_utilization_header.bos = 1w1; + hdr.int_egress_port_tx_utilization_header.bos = (bit<1>)1w1; } @name(".nop") action nop() { } @name(".int_transit") action int_transit(bit<32> switch_id) { - meta.int_metadata.insert_cnt = hdr.int_header.max_hop_cnt - hdr.int_header.total_hop_cnt; - meta.int_metadata.switch_id = switch_id; - meta.int_metadata.insert_byte_cnt = meta.int_metadata.instruction_cnt << 2; - meta.int_metadata.gpe_int_hdr_len8 = hdr.int_header.ins_cnt; + meta.int_metadata.insert_cnt = (bit<8>)(hdr.int_header.max_hop_cnt - hdr.int_header.total_hop_cnt); + meta.int_metadata.switch_id = (bit<32>)switch_id; + meta.int_metadata.insert_byte_cnt = (bit<16>)(meta.int_metadata.instruction_cnt << 2); + meta.int_metadata.gpe_int_hdr_len8 = (bit<8>)hdr.int_header.ins_cnt; } @name(".int_src") action int_src(bit<32> switch_id, bit<8> hop_cnt, bit<5> ins_cnt, bit<4> ins_mask0003, bit<4> ins_mask0407, bit<16> ins_byte_cnt, bit<8> total_words) { - meta.int_metadata.insert_cnt = hop_cnt; - meta.int_metadata.switch_id = switch_id; - meta.int_metadata.insert_byte_cnt = ins_byte_cnt; - meta.int_metadata.gpe_int_hdr_len8 = total_words; + meta.int_metadata.insert_cnt = (bit<8>)hop_cnt; + meta.int_metadata.switch_id = (bit<32>)switch_id; + meta.int_metadata.insert_byte_cnt = (bit<16>)ins_byte_cnt; + meta.int_metadata.gpe_int_hdr_len8 = (bit<8>)total_words; hdr.int_header.setValid(); - hdr.int_header.ver = 2w0; - hdr.int_header.rep = 2w0; - hdr.int_header.c = 1w0; - hdr.int_header.e = 1w0; - hdr.int_header.rsvd1 = 5w0; - hdr.int_header.ins_cnt = ins_cnt; - hdr.int_header.max_hop_cnt = hop_cnt; - hdr.int_header.total_hop_cnt = 8w0; - hdr.int_header.instruction_mask_0003 = ins_mask0003; - hdr.int_header.instruction_mask_0407 = ins_mask0407; - hdr.int_header.instruction_mask_0811 = 4w0; - hdr.int_header.instruction_mask_1215 = 4w0; - hdr.int_header.rsvd2 = 16w0; + hdr.int_header.ver = (bit<2>)2w0; + hdr.int_header.rep = (bit<2>)2w0; + hdr.int_header.c = (bit<1>)1w0; + hdr.int_header.e = (bit<1>)1w0; + hdr.int_header.rsvd1 = (bit<5>)5w0; + hdr.int_header.ins_cnt = (bit<5>)ins_cnt; + hdr.int_header.max_hop_cnt = (bit<8>)hop_cnt; + hdr.int_header.total_hop_cnt = (bit<8>)8w0; + hdr.int_header.instruction_mask_0003 = (bit<4>)ins_mask0003; + hdr.int_header.instruction_mask_0407 = (bit<4>)ins_mask0407; + hdr.int_header.instruction_mask_0811 = (bit<4>)4w0; + hdr.int_header.instruction_mask_1215 = (bit<4>)4w0; + hdr.int_header.rsvd2 = (bit<16>)16w0; } @name(".int_reset") action int_reset() { - meta.int_metadata.switch_id = 32w0; - meta.int_metadata.insert_byte_cnt = 16w0; - meta.int_metadata.insert_cnt = 8w0; - meta.int_metadata.gpe_int_hdr_len8 = 8w0; - meta.int_metadata.gpe_int_hdr_len = 16w0; - meta.int_metadata.instruction_cnt = 16w0; + meta.int_metadata.switch_id = (bit<32>)32w0; + meta.int_metadata.insert_byte_cnt = (bit<16>)16w0; + meta.int_metadata.insert_cnt = (bit<8>)8w0; + meta.int_metadata.gpe_int_hdr_len8 = (bit<8>)8w0; + meta.int_metadata.gpe_int_hdr_len = (bit<16>)16w0; + meta.int_metadata.instruction_cnt = (bit<16>)16w0; } @name(".int_set_header_0003_i0") action int_set_header_0003_i0() { } @name(".int_set_header_3") action int_set_header_3() { hdr.int_q_occupancy_header.setValid(); - hdr.int_q_occupancy_header.q_occupancy1 = 7w0; - hdr.int_q_occupancy_header.q_occupancy0 = meta.intrinsic_metadata.enq_qdepth; + hdr.int_q_occupancy_header.q_occupancy1 = (bit<7>)7w0; + hdr.int_q_occupancy_header.q_occupancy0 = (bit<24>)meta.intrinsic_metadata.enq_qdepth; } @name(".int_set_header_0003_i1") action int_set_header_0003_i1() { int_set_header_3(); } @name(".int_set_header_2") action int_set_header_2() { hdr.int_hop_latency_header.setValid(); - hdr.int_hop_latency_header.hop_latency = meta.intrinsic_metadata.deq_timedelta; + hdr.int_hop_latency_header.hop_latency = (bit<31>)meta.intrinsic_metadata.deq_timedelta; } @name(".int_set_header_0003_i2") action int_set_header_0003_i2() { int_set_header_2(); @@ -1981,8 +1981,8 @@ control process_int_insertion(inout headers hdr, inout metadata meta, inout stan } @name(".int_set_header_1") action int_set_header_1() { hdr.int_ingress_port_id_header.setValid(); - hdr.int_ingress_port_id_header.ingress_port_id_1 = 15w0; - hdr.int_ingress_port_id_header.ingress_port_id_0 = meta.ingress_metadata.ifindex; + hdr.int_ingress_port_id_header.ingress_port_id_1 = (bit<15>)15w0; + hdr.int_ingress_port_id_header.ingress_port_id_0 = (bit<16>)meta.ingress_metadata.ifindex; } @name(".int_set_header_0003_i4") action int_set_header_0003_i4() { int_set_header_1(); @@ -2002,7 +2002,7 @@ control process_int_insertion(inout headers hdr, inout metadata meta, inout stan } @name(".int_set_header_0") action int_set_header_0() { hdr.int_switch_id_header.setValid(); - hdr.int_switch_id_header.switch_id = meta.int_metadata.switch_id; + hdr.int_switch_id_header.switch_id = (bit<31>)meta.int_metadata.switch_id; } @name(".int_set_header_0003_i8") action int_set_header_0003_i8() { int_set_header_0(); @@ -2044,14 +2044,14 @@ control process_int_insertion(inout headers hdr, inout metadata meta, inout stan } @name(".int_set_header_7") action int_set_header_7() { hdr.int_egress_port_tx_utilization_header.setValid(); - hdr.int_egress_port_tx_utilization_header.egress_port_tx_utilization = 31w0x7fffffff; + hdr.int_egress_port_tx_utilization_header.egress_port_tx_utilization = (bit<31>)31w0x7fffffff; } @name(".int_set_header_0407_i1") action int_set_header_0407_i1() { int_set_header_7(); } @name(".int_set_header_6") action int_set_header_6() { hdr.int_q_congestion_header.setValid(); - hdr.int_q_congestion_header.q_congestion = 31w0x7fffffff; + hdr.int_q_congestion_header.q_congestion = (bit<31>)31w0x7fffffff; } @name(".int_set_header_0407_i2") action int_set_header_0407_i2() { int_set_header_6(); @@ -2062,7 +2062,7 @@ control process_int_insertion(inout headers hdr, inout metadata meta, inout stan } @name(".int_set_header_5") action int_set_header_5() { hdr.int_egress_port_id_header.setValid(); - hdr.int_egress_port_id_header.egress_port_id = standard_metadata.egress_port; + hdr.int_egress_port_id_header.egress_port_id = (bit<31>)standard_metadata.egress_port; } @name(".int_set_header_0407_i4") action int_set_header_0407_i4() { int_set_header_5(); @@ -2082,7 +2082,7 @@ control process_int_insertion(inout headers hdr, inout metadata meta, inout stan } @name(".int_set_header_4") action int_set_header_4() { hdr.int_ingress_tstamp_header.setValid(); - hdr.int_ingress_tstamp_header.ingress_tstamp = meta.i2e_metadata.ingress_tstamp; + hdr.int_ingress_tstamp_header.ingress_tstamp = (bit<31>)meta.i2e_metadata.ingress_tstamp; } @name(".int_set_header_0407_i8") action int_set_header_0407_i8() { int_set_header_4(); @@ -2121,10 +2121,10 @@ control process_int_insertion(inout headers hdr, inout metadata meta, inout stan int_set_header_4(); } @name(".int_set_e_bit") action int_set_e_bit() { - hdr.int_header.e = 1w1; + hdr.int_header.e = (bit<1>)1w1; } @name(".int_update_total_hop_cnt") action int_update_total_hop_cnt() { - hdr.int_header.total_hop_cnt = hdr.int_header.total_hop_cnt + 8w1; + hdr.int_header.total_hop_cnt = (bit<8>)(hdr.int_header.total_hop_cnt + 8w1); } @name("int_bos") table int_bos { actions = { @@ -2297,372 +2297,372 @@ control process_tunnel_encap(inout headers hdr, inout metadata meta, inout stand @name(".nop") action nop() { } @name(".set_egress_tunnel_vni") action set_egress_tunnel_vni(bit<24> vnid) { - meta.tunnel_metadata.vnid = vnid; + meta.tunnel_metadata.vnid = (bit<24>)vnid; } @name(".rewrite_tunnel_dmac") action rewrite_tunnel_dmac(bit<48> dmac) { - hdr.ethernet.dstAddr = dmac; + hdr.ethernet.dstAddr = (bit<48>)dmac; } @name(".rewrite_tunnel_ipv4_dst") action rewrite_tunnel_ipv4_dst(bit<32> ip) { - hdr.ipv4.dstAddr = ip; + hdr.ipv4.dstAddr = (bit<32>)ip; } @name(".rewrite_tunnel_ipv6_dst") action rewrite_tunnel_ipv6_dst(bit<128> ip) { - hdr.ipv6.dstAddr = ip; + hdr.ipv6.dstAddr = (bit<128>)ip; } @name(".inner_ipv4_udp_rewrite") action inner_ipv4_udp_rewrite() { hdr.inner_ipv4 = hdr.ipv4; hdr.inner_udp = hdr.udp; - meta.egress_metadata.payload_length = hdr.ipv4.totalLen; + meta.egress_metadata.payload_length = (bit<16>)hdr.ipv4.totalLen; hdr.udp.setInvalid(); hdr.ipv4.setInvalid(); - meta.tunnel_metadata.inner_ip_proto = 8w4; + meta.tunnel_metadata.inner_ip_proto = (bit<8>)8w4; } @name(".inner_ipv4_tcp_rewrite") action inner_ipv4_tcp_rewrite() { hdr.inner_ipv4 = hdr.ipv4; hdr.inner_tcp = hdr.tcp; - meta.egress_metadata.payload_length = hdr.ipv4.totalLen; + meta.egress_metadata.payload_length = (bit<16>)hdr.ipv4.totalLen; hdr.tcp.setInvalid(); hdr.ipv4.setInvalid(); - meta.tunnel_metadata.inner_ip_proto = 8w4; + meta.tunnel_metadata.inner_ip_proto = (bit<8>)8w4; } @name(".inner_ipv4_icmp_rewrite") action inner_ipv4_icmp_rewrite() { hdr.inner_ipv4 = hdr.ipv4; hdr.inner_icmp = hdr.icmp; - meta.egress_metadata.payload_length = hdr.ipv4.totalLen; + meta.egress_metadata.payload_length = (bit<16>)hdr.ipv4.totalLen; hdr.icmp.setInvalid(); hdr.ipv4.setInvalid(); - meta.tunnel_metadata.inner_ip_proto = 8w4; + meta.tunnel_metadata.inner_ip_proto = (bit<8>)8w4; } @name(".inner_ipv4_unknown_rewrite") action inner_ipv4_unknown_rewrite() { hdr.inner_ipv4 = hdr.ipv4; - meta.egress_metadata.payload_length = hdr.ipv4.totalLen; + meta.egress_metadata.payload_length = (bit<16>)hdr.ipv4.totalLen; hdr.ipv4.setInvalid(); - meta.tunnel_metadata.inner_ip_proto = 8w4; + meta.tunnel_metadata.inner_ip_proto = (bit<8>)8w4; } @name(".inner_ipv6_udp_rewrite") action inner_ipv6_udp_rewrite() { hdr.inner_ipv6 = hdr.ipv6; hdr.inner_udp = hdr.udp; - meta.egress_metadata.payload_length = hdr.ipv6.payloadLen + 16w40; + meta.egress_metadata.payload_length = (bit<16>)(hdr.ipv6.payloadLen + 16w40); hdr.ipv6.setInvalid(); - meta.tunnel_metadata.inner_ip_proto = 8w41; + meta.tunnel_metadata.inner_ip_proto = (bit<8>)8w41; } @name(".inner_ipv6_tcp_rewrite") action inner_ipv6_tcp_rewrite() { hdr.inner_ipv6 = hdr.ipv6; hdr.inner_tcp = hdr.tcp; - meta.egress_metadata.payload_length = hdr.ipv6.payloadLen + 16w40; + meta.egress_metadata.payload_length = (bit<16>)(hdr.ipv6.payloadLen + 16w40); hdr.tcp.setInvalid(); hdr.ipv6.setInvalid(); - meta.tunnel_metadata.inner_ip_proto = 8w41; + meta.tunnel_metadata.inner_ip_proto = (bit<8>)8w41; } @name(".inner_ipv6_icmp_rewrite") action inner_ipv6_icmp_rewrite() { hdr.inner_ipv6 = hdr.ipv6; hdr.inner_icmp = hdr.icmp; - meta.egress_metadata.payload_length = hdr.ipv6.payloadLen + 16w40; + meta.egress_metadata.payload_length = (bit<16>)(hdr.ipv6.payloadLen + 16w40); hdr.icmp.setInvalid(); hdr.ipv6.setInvalid(); - meta.tunnel_metadata.inner_ip_proto = 8w41; + meta.tunnel_metadata.inner_ip_proto = (bit<8>)8w41; } @name(".inner_ipv6_unknown_rewrite") action inner_ipv6_unknown_rewrite() { hdr.inner_ipv6 = hdr.ipv6; - meta.egress_metadata.payload_length = hdr.ipv6.payloadLen + 16w40; + meta.egress_metadata.payload_length = (bit<16>)(hdr.ipv6.payloadLen + 16w40); hdr.ipv6.setInvalid(); - meta.tunnel_metadata.inner_ip_proto = 8w41; + meta.tunnel_metadata.inner_ip_proto = (bit<8>)8w41; } @name(".inner_non_ip_rewrite") action inner_non_ip_rewrite() { - meta.egress_metadata.payload_length = standard_metadata.packet_length + (bit<32>)16w65522; + meta.egress_metadata.payload_length = (bit<16>)(standard_metadata.packet_length + (bit<32>)16w65522); } @name(".f_insert_vxlan_header") action f_insert_vxlan_header() { hdr.inner_ethernet = hdr.ethernet; hdr.udp.setValid(); hdr.vxlan.setValid(); - hdr.udp.srcPort = meta.hash_metadata.entropy_hash; - hdr.udp.dstPort = 16w4789; - hdr.udp.checksum = 16w0; - hdr.udp.length_ = meta.egress_metadata.payload_length + 16w30; - hdr.vxlan.flags = 8w0x8; - hdr.vxlan.reserved = 24w0; - hdr.vxlan.vni = meta.tunnel_metadata.vnid; - hdr.vxlan.reserved2 = 8w0; + hdr.udp.srcPort = (bit<16>)meta.hash_metadata.entropy_hash; + hdr.udp.dstPort = (bit<16>)16w4789; + hdr.udp.checksum = (bit<16>)16w0; + hdr.udp.length_ = (bit<16>)(meta.egress_metadata.payload_length + 16w30); + hdr.vxlan.flags = (bit<8>)8w0x8; + hdr.vxlan.reserved = (bit<24>)24w0; + hdr.vxlan.vni = (bit<24>)meta.tunnel_metadata.vnid; + hdr.vxlan.reserved2 = (bit<8>)8w0; } @name(".f_insert_ipv4_header") action f_insert_ipv4_header(bit<8> proto) { hdr.ipv4.setValid(); - hdr.ipv4.protocol = proto; - hdr.ipv4.ttl = 8w64; - hdr.ipv4.version = 4w0x4; - hdr.ipv4.ihl = 4w0x5; - hdr.ipv4.identification = 16w0; + hdr.ipv4.protocol = (bit<8>)proto; + hdr.ipv4.ttl = (bit<8>)8w64; + hdr.ipv4.version = (bit<4>)4w0x4; + hdr.ipv4.ihl = (bit<4>)4w0x5; + hdr.ipv4.identification = (bit<16>)16w0; } @name(".ipv4_vxlan_rewrite") action ipv4_vxlan_rewrite() { f_insert_vxlan_header(); f_insert_ipv4_header(8w17); - hdr.ipv4.totalLen = meta.egress_metadata.payload_length + 16w50; - hdr.ethernet.etherType = 16w0x800; + hdr.ipv4.totalLen = (bit<16>)(meta.egress_metadata.payload_length + 16w50); + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".f_insert_genv_header") action f_insert_genv_header() { hdr.inner_ethernet = hdr.ethernet; hdr.udp.setValid(); hdr.genv.setValid(); - hdr.udp.srcPort = meta.hash_metadata.entropy_hash; - hdr.udp.dstPort = 16w6081; - hdr.udp.checksum = 16w0; - hdr.udp.length_ = meta.egress_metadata.payload_length + 16w30; - hdr.genv.ver = 2w0; - hdr.genv.oam = 1w0; - hdr.genv.critical = 1w0; - hdr.genv.optLen = 6w0; - hdr.genv.protoType = 16w0x6558; - hdr.genv.vni = meta.tunnel_metadata.vnid; - hdr.genv.reserved = 6w0; - hdr.genv.reserved2 = 8w0; + hdr.udp.srcPort = (bit<16>)meta.hash_metadata.entropy_hash; + hdr.udp.dstPort = (bit<16>)16w6081; + hdr.udp.checksum = (bit<16>)16w0; + hdr.udp.length_ = (bit<16>)(meta.egress_metadata.payload_length + 16w30); + hdr.genv.ver = (bit<2>)2w0; + hdr.genv.oam = (bit<1>)1w0; + hdr.genv.critical = (bit<1>)1w0; + hdr.genv.optLen = (bit<6>)6w0; + hdr.genv.protoType = (bit<16>)16w0x6558; + hdr.genv.vni = (bit<24>)meta.tunnel_metadata.vnid; + hdr.genv.reserved = (bit<6>)6w0; + hdr.genv.reserved2 = (bit<8>)8w0; } @name(".ipv4_genv_rewrite") action ipv4_genv_rewrite() { f_insert_genv_header(); f_insert_ipv4_header(8w17); - hdr.ipv4.totalLen = meta.egress_metadata.payload_length + 16w50; - hdr.ethernet.etherType = 16w0x800; + hdr.ipv4.totalLen = (bit<16>)(meta.egress_metadata.payload_length + 16w50); + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".f_insert_nvgre_header") action f_insert_nvgre_header() { hdr.inner_ethernet = hdr.ethernet; hdr.gre.setValid(); hdr.nvgre.setValid(); - hdr.gre.proto = 16w0x6558; - hdr.gre.recurse = 3w0; - hdr.gre.flags = 5w0; - hdr.gre.ver = 3w0; - hdr.gre.R = 1w0; - hdr.gre.K = 1w1; - hdr.gre.C = 1w0; - hdr.gre.S = 1w0; - hdr.gre.s = 1w0; - hdr.nvgre.tni = meta.tunnel_metadata.vnid; + hdr.gre.proto = (bit<16>)16w0x6558; + hdr.gre.recurse = (bit<3>)3w0; + hdr.gre.flags = (bit<5>)5w0; + hdr.gre.ver = (bit<3>)3w0; + hdr.gre.R = (bit<1>)1w0; + hdr.gre.K = (bit<1>)1w1; + hdr.gre.C = (bit<1>)1w0; + hdr.gre.S = (bit<1>)1w0; + hdr.gre.s = (bit<1>)1w0; + hdr.nvgre.tni = (bit<24>)meta.tunnel_metadata.vnid; hdr.nvgre.flow_id[7:0] = meta.hash_metadata.entropy_hash[7:0]; } @name(".ipv4_nvgre_rewrite") action ipv4_nvgre_rewrite() { f_insert_nvgre_header(); f_insert_ipv4_header(8w47); - hdr.ipv4.totalLen = meta.egress_metadata.payload_length + 16w42; - hdr.ethernet.etherType = 16w0x800; + hdr.ipv4.totalLen = (bit<16>)(meta.egress_metadata.payload_length + 16w42); + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".f_insert_gre_header") action f_insert_gre_header() { hdr.gre.setValid(); } @name(".ipv4_gre_rewrite") action ipv4_gre_rewrite() { f_insert_gre_header(); - hdr.gre.proto = hdr.ethernet.etherType; + hdr.gre.proto = (bit<16>)hdr.ethernet.etherType; f_insert_ipv4_header(8w47); - hdr.ipv4.totalLen = meta.egress_metadata.payload_length + 16w24; - hdr.ethernet.etherType = 16w0x800; + hdr.ipv4.totalLen = (bit<16>)(meta.egress_metadata.payload_length + 16w24); + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".ipv4_ip_rewrite") action ipv4_ip_rewrite() { f_insert_ipv4_header(meta.tunnel_metadata.inner_ip_proto); - hdr.ipv4.totalLen = meta.egress_metadata.payload_length + 16w20; - hdr.ethernet.etherType = 16w0x800; + hdr.ipv4.totalLen = (bit<16>)(meta.egress_metadata.payload_length + 16w20); + hdr.ethernet.etherType = (bit<16>)16w0x800; } @name(".f_insert_erspan_t3_header") action f_insert_erspan_t3_header() { hdr.inner_ethernet = hdr.ethernet; hdr.gre.setValid(); hdr.erspan_t3_header.setValid(); - hdr.gre.C = 1w0; - hdr.gre.R = 1w0; - hdr.gre.K = 1w0; - hdr.gre.S = 1w0; - hdr.gre.s = 1w0; - hdr.gre.recurse = 3w0; - hdr.gre.flags = 5w0; - hdr.gre.ver = 3w0; - hdr.gre.proto = 16w0x22eb; - hdr.erspan_t3_header.timestamp = meta.i2e_metadata.ingress_tstamp; - hdr.erspan_t3_header.span_id = meta.i2e_metadata.mirror_session_id; - hdr.erspan_t3_header.version = 4w2; - hdr.erspan_t3_header.sgt_other = 32w0; + hdr.gre.C = (bit<1>)1w0; + hdr.gre.R = (bit<1>)1w0; + hdr.gre.K = (bit<1>)1w0; + hdr.gre.S = (bit<1>)1w0; + hdr.gre.s = (bit<1>)1w0; + hdr.gre.recurse = (bit<3>)3w0; + hdr.gre.flags = (bit<5>)5w0; + hdr.gre.ver = (bit<3>)3w0; + hdr.gre.proto = (bit<16>)16w0x22eb; + hdr.erspan_t3_header.timestamp = (bit<32>)meta.i2e_metadata.ingress_tstamp; + hdr.erspan_t3_header.span_id = (bit<10>)meta.i2e_metadata.mirror_session_id; + hdr.erspan_t3_header.version = (bit<4>)4w2; + hdr.erspan_t3_header.sgt_other = (bit<32>)32w0; } @name(".ipv4_erspan_t3_rewrite") action ipv4_erspan_t3_rewrite() { f_insert_erspan_t3_header(); f_insert_ipv4_header(8w47); - hdr.ipv4.totalLen = meta.egress_metadata.payload_length + 16w50; + hdr.ipv4.totalLen = (bit<16>)(meta.egress_metadata.payload_length + 16w50); } @name(".f_insert_ipv6_header") action f_insert_ipv6_header(bit<8> proto) { hdr.ipv6.setValid(); - hdr.ipv6.version = 4w0x6; - hdr.ipv6.nextHdr = proto; - hdr.ipv6.hopLimit = 8w64; - hdr.ipv6.trafficClass = 8w0; - hdr.ipv6.flowLabel = 20w0; + hdr.ipv6.version = (bit<4>)4w0x6; + hdr.ipv6.nextHdr = (bit<8>)proto; + hdr.ipv6.hopLimit = (bit<8>)8w64; + hdr.ipv6.trafficClass = (bit<8>)8w0; + hdr.ipv6.flowLabel = (bit<20>)20w0; } @name(".ipv6_gre_rewrite") action ipv6_gre_rewrite() { f_insert_gre_header(); - hdr.gre.proto = hdr.ethernet.etherType; + hdr.gre.proto = (bit<16>)hdr.ethernet.etherType; f_insert_ipv6_header(8w47); - hdr.ipv6.payloadLen = meta.egress_metadata.payload_length + 16w4; - hdr.ethernet.etherType = 16w0x86dd; + hdr.ipv6.payloadLen = (bit<16>)(meta.egress_metadata.payload_length + 16w4); + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".ipv6_ip_rewrite") action ipv6_ip_rewrite() { f_insert_ipv6_header(meta.tunnel_metadata.inner_ip_proto); - hdr.ipv6.payloadLen = meta.egress_metadata.payload_length; - hdr.ethernet.etherType = 16w0x86dd; + hdr.ipv6.payloadLen = (bit<16>)meta.egress_metadata.payload_length; + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".ipv6_nvgre_rewrite") action ipv6_nvgre_rewrite() { f_insert_nvgre_header(); f_insert_ipv6_header(8w47); - hdr.ipv6.payloadLen = meta.egress_metadata.payload_length + 16w22; - hdr.ethernet.etherType = 16w0x86dd; + hdr.ipv6.payloadLen = (bit<16>)(meta.egress_metadata.payload_length + 16w22); + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".ipv6_vxlan_rewrite") action ipv6_vxlan_rewrite() { f_insert_vxlan_header(); f_insert_ipv6_header(8w17); - hdr.ipv6.payloadLen = meta.egress_metadata.payload_length + 16w30; - hdr.ethernet.etherType = 16w0x86dd; + hdr.ipv6.payloadLen = (bit<16>)(meta.egress_metadata.payload_length + 16w30); + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".ipv6_genv_rewrite") action ipv6_genv_rewrite() { f_insert_genv_header(); f_insert_ipv6_header(8w17); - hdr.ipv6.payloadLen = meta.egress_metadata.payload_length + 16w30; - hdr.ethernet.etherType = 16w0x86dd; + hdr.ipv6.payloadLen = (bit<16>)(meta.egress_metadata.payload_length + 16w30); + hdr.ethernet.etherType = (bit<16>)16w0x86dd; } @name(".ipv6_erspan_t3_rewrite") action ipv6_erspan_t3_rewrite() { f_insert_erspan_t3_header(); f_insert_ipv6_header(8w47); - hdr.ipv6.payloadLen = meta.egress_metadata.payload_length + 16w26; + hdr.ipv6.payloadLen = (bit<16>)(meta.egress_metadata.payload_length + 16w26); } @name(".mpls_ethernet_push1_rewrite") action mpls_ethernet_push1_rewrite() { hdr.inner_ethernet = hdr.ethernet; hdr.mpls.push_front(1); - hdr.ethernet.etherType = 16w0x8847; + hdr.ethernet.etherType = (bit<16>)16w0x8847; } @name(".mpls_ip_push1_rewrite") action mpls_ip_push1_rewrite() { hdr.mpls.push_front(1); - hdr.ethernet.etherType = 16w0x8847; + hdr.ethernet.etherType = (bit<16>)16w0x8847; } @name(".mpls_ethernet_push2_rewrite") action mpls_ethernet_push2_rewrite() { hdr.inner_ethernet = hdr.ethernet; hdr.mpls.push_front(2); - hdr.ethernet.etherType = 16w0x8847; + hdr.ethernet.etherType = (bit<16>)16w0x8847; } @name(".mpls_ip_push2_rewrite") action mpls_ip_push2_rewrite() { hdr.mpls.push_front(2); - hdr.ethernet.etherType = 16w0x8847; + hdr.ethernet.etherType = (bit<16>)16w0x8847; } @name(".mpls_ethernet_push3_rewrite") action mpls_ethernet_push3_rewrite() { hdr.inner_ethernet = hdr.ethernet; hdr.mpls.push_front(3); - hdr.ethernet.etherType = 16w0x8847; + hdr.ethernet.etherType = (bit<16>)16w0x8847; } @name(".mpls_ip_push3_rewrite") action mpls_ip_push3_rewrite() { hdr.mpls.push_front(3); - hdr.ethernet.etherType = 16w0x8847; + hdr.ethernet.etherType = (bit<16>)16w0x8847; } @name(".fabric_rewrite") action fabric_rewrite(bit<14> tunnel_index) { - meta.tunnel_metadata.tunnel_index = tunnel_index; + meta.tunnel_metadata.tunnel_index = (bit<14>)tunnel_index; } @name(".tunnel_mtu_check") action tunnel_mtu_check(bit<16> l3_mtu) { - meta.l3_metadata.l3_mtu_check = l3_mtu - meta.egress_metadata.payload_length; + meta.l3_metadata.l3_mtu_check = (bit<16>)(l3_mtu - meta.egress_metadata.payload_length); } @name(".tunnel_mtu_miss") action tunnel_mtu_miss() { - meta.l3_metadata.l3_mtu_check = 16w0xffff; + meta.l3_metadata.l3_mtu_check = (bit<16>)16w0xffff; } @name(".set_tunnel_rewrite_details") action set_tunnel_rewrite_details(bit<16> outer_bd, bit<9> smac_idx, bit<14> dmac_idx, bit<9> sip_index, bit<14> dip_index) { - meta.egress_metadata.outer_bd = outer_bd; - meta.tunnel_metadata.tunnel_smac_index = smac_idx; - meta.tunnel_metadata.tunnel_dmac_index = dmac_idx; - meta.tunnel_metadata.tunnel_src_index = sip_index; - meta.tunnel_metadata.tunnel_dst_index = dip_index; + meta.egress_metadata.outer_bd = (bit<16>)outer_bd; + meta.tunnel_metadata.tunnel_smac_index = (bit<9>)smac_idx; + meta.tunnel_metadata.tunnel_dmac_index = (bit<14>)dmac_idx; + meta.tunnel_metadata.tunnel_src_index = (bit<9>)sip_index; + meta.tunnel_metadata.tunnel_dst_index = (bit<14>)dip_index; } @name(".set_mpls_rewrite_push1") action set_mpls_rewrite_push1(bit<20> label1, bit<3> exp1, bit<8> ttl1, bit<9> smac_idx, bit<14> dmac_idx) { - hdr.mpls[0].label = label1; - hdr.mpls[0].exp = exp1; - hdr.mpls[0].bos = 1w0x1; - hdr.mpls[0].ttl = ttl1; - meta.tunnel_metadata.tunnel_smac_index = smac_idx; - meta.tunnel_metadata.tunnel_dmac_index = dmac_idx; + hdr.mpls[0].label = (bit<20>)label1; + hdr.mpls[0].exp = (bit<3>)exp1; + hdr.mpls[0].bos = (bit<1>)1w0x1; + hdr.mpls[0].ttl = (bit<8>)ttl1; + meta.tunnel_metadata.tunnel_smac_index = (bit<9>)smac_idx; + meta.tunnel_metadata.tunnel_dmac_index = (bit<14>)dmac_idx; } @name(".set_mpls_rewrite_push2") action set_mpls_rewrite_push2(bit<20> label1, bit<3> exp1, bit<8> ttl1, bit<20> label2, bit<3> exp2, bit<8> ttl2, bit<9> smac_idx, bit<14> dmac_idx) { - hdr.mpls[0].label = label1; - hdr.mpls[0].exp = exp1; - hdr.mpls[0].ttl = ttl1; - hdr.mpls[0].bos = 1w0x0; - hdr.mpls[1].label = label2; - hdr.mpls[1].exp = exp2; - hdr.mpls[1].ttl = ttl2; - hdr.mpls[1].bos = 1w0x1; - meta.tunnel_metadata.tunnel_smac_index = smac_idx; - meta.tunnel_metadata.tunnel_dmac_index = dmac_idx; + hdr.mpls[0].label = (bit<20>)label1; + hdr.mpls[0].exp = (bit<3>)exp1; + hdr.mpls[0].ttl = (bit<8>)ttl1; + hdr.mpls[0].bos = (bit<1>)1w0x0; + hdr.mpls[1].label = (bit<20>)label2; + hdr.mpls[1].exp = (bit<3>)exp2; + hdr.mpls[1].ttl = (bit<8>)ttl2; + hdr.mpls[1].bos = (bit<1>)1w0x1; + meta.tunnel_metadata.tunnel_smac_index = (bit<9>)smac_idx; + meta.tunnel_metadata.tunnel_dmac_index = (bit<14>)dmac_idx; } @name(".set_mpls_rewrite_push3") action set_mpls_rewrite_push3(bit<20> label1, bit<3> exp1, bit<8> ttl1, bit<20> label2, bit<3> exp2, bit<8> ttl2, bit<20> label3, bit<3> exp3, bit<8> ttl3, bit<9> smac_idx, bit<14> dmac_idx) { - hdr.mpls[0].label = label1; - hdr.mpls[0].exp = exp1; - hdr.mpls[0].ttl = ttl1; - hdr.mpls[0].bos = 1w0x0; - hdr.mpls[1].label = label2; - hdr.mpls[1].exp = exp2; - hdr.mpls[1].ttl = ttl2; - hdr.mpls[1].bos = 1w0x0; - hdr.mpls[2].label = label3; - hdr.mpls[2].exp = exp3; - hdr.mpls[2].ttl = ttl3; - hdr.mpls[2].bos = 1w0x1; - meta.tunnel_metadata.tunnel_smac_index = smac_idx; - meta.tunnel_metadata.tunnel_dmac_index = dmac_idx; + hdr.mpls[0].label = (bit<20>)label1; + hdr.mpls[0].exp = (bit<3>)exp1; + hdr.mpls[0].ttl = (bit<8>)ttl1; + hdr.mpls[0].bos = (bit<1>)1w0x0; + hdr.mpls[1].label = (bit<20>)label2; + hdr.mpls[1].exp = (bit<3>)exp2; + hdr.mpls[1].ttl = (bit<8>)ttl2; + hdr.mpls[1].bos = (bit<1>)1w0x0; + hdr.mpls[2].label = (bit<20>)label3; + hdr.mpls[2].exp = (bit<3>)exp3; + hdr.mpls[2].ttl = (bit<8>)ttl3; + hdr.mpls[2].bos = (bit<1>)1w0x1; + meta.tunnel_metadata.tunnel_smac_index = (bit<9>)smac_idx; + meta.tunnel_metadata.tunnel_dmac_index = (bit<14>)dmac_idx; } @name(".cpu_rx_rewrite") action cpu_rx_rewrite() { hdr.fabric_header.setValid(); - hdr.fabric_header.headerVersion = 2w0; - hdr.fabric_header.packetVersion = 2w0; - hdr.fabric_header.pad1 = 1w0; - hdr.fabric_header.packetType = 3w5; + hdr.fabric_header.headerVersion = (bit<2>)2w0; + hdr.fabric_header.packetVersion = (bit<2>)2w0; + hdr.fabric_header.pad1 = (bit<1>)1w0; + hdr.fabric_header.packetType = (bit<3>)3w5; hdr.fabric_header_cpu.setValid(); - hdr.fabric_header_cpu.ingressPort = meta.ingress_metadata.ingress_port; - hdr.fabric_header_cpu.ingressIfindex = meta.ingress_metadata.ifindex; - hdr.fabric_header_cpu.ingressBd = meta.ingress_metadata.bd; - hdr.fabric_header_cpu.reasonCode = meta.fabric_metadata.reason_code; + hdr.fabric_header_cpu.ingressPort = (bit<16>)meta.ingress_metadata.ingress_port; + hdr.fabric_header_cpu.ingressIfindex = (bit<16>)meta.ingress_metadata.ifindex; + hdr.fabric_header_cpu.ingressBd = (bit<16>)meta.ingress_metadata.bd; + hdr.fabric_header_cpu.reasonCode = (bit<16>)meta.fabric_metadata.reason_code; hdr.fabric_payload_header.setValid(); - hdr.fabric_payload_header.etherType = hdr.ethernet.etherType; - hdr.ethernet.etherType = 16w0x9000; + hdr.fabric_payload_header.etherType = (bit<16>)hdr.ethernet.etherType; + hdr.ethernet.etherType = (bit<16>)16w0x9000; } @name(".fabric_unicast_rewrite") action fabric_unicast_rewrite() { hdr.fabric_header.setValid(); - hdr.fabric_header.headerVersion = 2w0; - hdr.fabric_header.packetVersion = 2w0; - hdr.fabric_header.pad1 = 1w0; - hdr.fabric_header.packetType = 3w1; - hdr.fabric_header.dstDevice = meta.fabric_metadata.dst_device; - hdr.fabric_header.dstPortOrGroup = meta.fabric_metadata.dst_port; + hdr.fabric_header.headerVersion = (bit<2>)2w0; + hdr.fabric_header.packetVersion = (bit<2>)2w0; + hdr.fabric_header.pad1 = (bit<1>)1w0; + hdr.fabric_header.packetType = (bit<3>)3w1; + hdr.fabric_header.dstDevice = (bit<8>)meta.fabric_metadata.dst_device; + hdr.fabric_header.dstPortOrGroup = (bit<16>)meta.fabric_metadata.dst_port; hdr.fabric_header_unicast.setValid(); - hdr.fabric_header_unicast.tunnelTerminate = meta.tunnel_metadata.tunnel_terminate; - hdr.fabric_header_unicast.routed = meta.l3_metadata.routed; - hdr.fabric_header_unicast.outerRouted = meta.l3_metadata.outer_routed; - hdr.fabric_header_unicast.ingressTunnelType = meta.tunnel_metadata.ingress_tunnel_type; - hdr.fabric_header_unicast.nexthopIndex = meta.l3_metadata.nexthop_index; + hdr.fabric_header_unicast.tunnelTerminate = (bit<1>)meta.tunnel_metadata.tunnel_terminate; + hdr.fabric_header_unicast.routed = (bit<1>)meta.l3_metadata.routed; + hdr.fabric_header_unicast.outerRouted = (bit<1>)meta.l3_metadata.outer_routed; + hdr.fabric_header_unicast.ingressTunnelType = (bit<5>)meta.tunnel_metadata.ingress_tunnel_type; + hdr.fabric_header_unicast.nexthopIndex = (bit<16>)meta.l3_metadata.nexthop_index; hdr.fabric_payload_header.setValid(); - hdr.fabric_payload_header.etherType = hdr.ethernet.etherType; - hdr.ethernet.etherType = 16w0x9000; + hdr.fabric_payload_header.etherType = (bit<16>)hdr.ethernet.etherType; + hdr.ethernet.etherType = (bit<16>)16w0x9000; } @name(".fabric_multicast_rewrite") action fabric_multicast_rewrite(bit<16> fabric_mgid) { hdr.fabric_header.setValid(); - hdr.fabric_header.headerVersion = 2w0; - hdr.fabric_header.packetVersion = 2w0; - hdr.fabric_header.pad1 = 1w0; - hdr.fabric_header.packetType = 3w2; - hdr.fabric_header.dstDevice = 8w127; - hdr.fabric_header.dstPortOrGroup = fabric_mgid; - hdr.fabric_header_multicast.ingressIfindex = meta.ingress_metadata.ifindex; - hdr.fabric_header_multicast.ingressBd = meta.ingress_metadata.bd; + hdr.fabric_header.headerVersion = (bit<2>)2w0; + hdr.fabric_header.packetVersion = (bit<2>)2w0; + hdr.fabric_header.pad1 = (bit<1>)1w0; + hdr.fabric_header.packetType = (bit<3>)3w2; + hdr.fabric_header.dstDevice = (bit<8>)8w127; + hdr.fabric_header.dstPortOrGroup = (bit<16>)fabric_mgid; + hdr.fabric_header_multicast.ingressIfindex = (bit<16>)meta.ingress_metadata.ifindex; + hdr.fabric_header_multicast.ingressBd = (bit<16>)meta.ingress_metadata.bd; hdr.fabric_header_multicast.setValid(); - hdr.fabric_header_multicast.tunnelTerminate = meta.tunnel_metadata.tunnel_terminate; - hdr.fabric_header_multicast.routed = meta.l3_metadata.routed; - hdr.fabric_header_multicast.outerRouted = meta.l3_metadata.outer_routed; - hdr.fabric_header_multicast.ingressTunnelType = meta.tunnel_metadata.ingress_tunnel_type; - hdr.fabric_header_multicast.mcastGrp = meta.multicast_metadata.mcast_grp; + hdr.fabric_header_multicast.tunnelTerminate = (bit<1>)meta.tunnel_metadata.tunnel_terminate; + hdr.fabric_header_multicast.routed = (bit<1>)meta.l3_metadata.routed; + hdr.fabric_header_multicast.outerRouted = (bit<1>)meta.l3_metadata.outer_routed; + hdr.fabric_header_multicast.ingressTunnelType = (bit<5>)meta.tunnel_metadata.ingress_tunnel_type; + hdr.fabric_header_multicast.mcastGrp = (bit<16>)meta.multicast_metadata.mcast_grp; hdr.fabric_payload_header.setValid(); - hdr.fabric_payload_header.etherType = hdr.ethernet.etherType; - hdr.ethernet.etherType = 16w0x9000; + hdr.fabric_payload_header.etherType = (bit<16>)hdr.ethernet.etherType; + hdr.ethernet.etherType = (bit<16>)16w0x9000; } @name(".rewrite_tunnel_smac") action rewrite_tunnel_smac(bit<48> smac) { - hdr.ethernet.srcAddr = smac; + hdr.ethernet.srcAddr = (bit<48>)smac; } @name(".rewrite_tunnel_ipv4_src") action rewrite_tunnel_ipv4_src(bit<32> ip) { - hdr.ipv4.srcAddr = ip; + hdr.ipv4.srcAddr = (bit<32>)ip; } @name(".rewrite_tunnel_ipv6_src") action rewrite_tunnel_ipv6_src(bit<128> ip) { - hdr.ipv6.srcAddr = ip; + hdr.ipv6.srcAddr = (bit<128>)ip; } @name("egress_vni") table egress_vni { actions = { @@ -2831,18 +2831,18 @@ control process_tunnel_encap(inout headers hdr, inout metadata meta, inout stand control process_int_outer_encap(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".int_update_vxlan_gpe_ipv4") action int_update_vxlan_gpe_ipv4() { - hdr.ipv4.totalLen = hdr.ipv4.totalLen + meta.int_metadata.insert_byte_cnt; - hdr.udp.length_ = hdr.udp.length_ + meta.int_metadata.insert_byte_cnt; - hdr.vxlan_gpe_int_header.len = hdr.vxlan_gpe_int_header.len + meta.int_metadata.gpe_int_hdr_len8; + hdr.ipv4.totalLen = (bit<16>)(hdr.ipv4.totalLen + meta.int_metadata.insert_byte_cnt); + hdr.udp.length_ = (bit<16>)(hdr.udp.length_ + meta.int_metadata.insert_byte_cnt); + hdr.vxlan_gpe_int_header.len = (bit<8>)(hdr.vxlan_gpe_int_header.len + meta.int_metadata.gpe_int_hdr_len8); } @name(".int_add_update_vxlan_gpe_ipv4") action int_add_update_vxlan_gpe_ipv4() { hdr.vxlan_gpe_int_header.setValid(); - hdr.vxlan_gpe_int_header.int_type = 8w0x1; - hdr.vxlan_gpe_int_header.next_proto = 8w3; - hdr.vxlan_gpe.next_proto = 8w5; - hdr.vxlan_gpe_int_header.len = meta.int_metadata.gpe_int_hdr_len8; - hdr.ipv4.totalLen = hdr.ipv4.totalLen + meta.int_metadata.insert_byte_cnt; - hdr.udp.length_ = hdr.udp.length_ + meta.int_metadata.insert_byte_cnt; + hdr.vxlan_gpe_int_header.int_type = (bit<8>)8w0x1; + hdr.vxlan_gpe_int_header.next_proto = (bit<8>)8w3; + hdr.vxlan_gpe.next_proto = (bit<8>)8w5; + hdr.vxlan_gpe_int_header.len = (bit<8>)meta.int_metadata.gpe_int_hdr_len8; + hdr.ipv4.totalLen = (bit<16>)(hdr.ipv4.totalLen + meta.int_metadata.insert_byte_cnt); + hdr.udp.length_ = (bit<16>)(hdr.udp.length_ + meta.int_metadata.insert_byte_cnt); } @name(".nop") action nop() { } @@ -2874,18 +2874,18 @@ control process_vlan_xlate(inout headers hdr, inout metadata meta, inout standar } @name(".set_egress_packet_vlan_tagged") action set_egress_packet_vlan_tagged(bit<12> vlan_id) { hdr.vlan_tag_[0].setValid(); - hdr.vlan_tag_[0].etherType = hdr.ethernet.etherType; - hdr.vlan_tag_[0].vid = vlan_id; - hdr.ethernet.etherType = 16w0x8100; + hdr.vlan_tag_[0].etherType = (bit<16>)hdr.ethernet.etherType; + hdr.vlan_tag_[0].vid = (bit<12>)vlan_id; + hdr.ethernet.etherType = (bit<16>)16w0x8100; } @name(".set_egress_packet_vlan_double_tagged") action set_egress_packet_vlan_double_tagged(bit<12> s_tag, bit<12> c_tag) { hdr.vlan_tag_[1].setValid(); hdr.vlan_tag_[0].setValid(); - hdr.vlan_tag_[1].etherType = hdr.ethernet.etherType; - hdr.vlan_tag_[1].vid = c_tag; - hdr.vlan_tag_[0].etherType = 16w0x8100; - hdr.vlan_tag_[0].vid = s_tag; - hdr.ethernet.etherType = 16w0x9100; + hdr.vlan_tag_[1].etherType = (bit<16>)hdr.ethernet.etherType; + hdr.vlan_tag_[1].vid = (bit<12>)c_tag; + hdr.vlan_tag_[0].etherType = (bit<16>)16w0x8100; + hdr.vlan_tag_[0].vid = (bit<12>)s_tag; + hdr.ethernet.etherType = (bit<16>)16w0x9100; } @name("egress_vlan_xlate") table egress_vlan_xlate { actions = { @@ -2908,9 +2908,9 @@ control process_vlan_xlate(inout headers hdr, inout metadata meta, inout standar control process_egress_filter(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".egress_filter_check") action egress_filter_check() { - meta.egress_filter_metadata.ifindex_check = meta.ingress_metadata.ifindex ^ meta.egress_metadata.ifindex; - meta.egress_filter_metadata.bd = meta.ingress_metadata.outer_bd ^ meta.egress_metadata.outer_bd; - meta.egress_filter_metadata.inner_bd = meta.ingress_metadata.bd ^ meta.egress_metadata.bd; + meta.egress_filter_metadata.ifindex_check = (bit<16>)(meta.ingress_metadata.ifindex ^ meta.egress_metadata.ifindex); + meta.egress_filter_metadata.bd = (bit<16>)(meta.ingress_metadata.outer_bd ^ meta.egress_metadata.outer_bd); + meta.egress_filter_metadata.inner_bd = (bit<16>)(meta.ingress_metadata.bd ^ meta.egress_metadata.bd); } @name(".set_egress_filter_drop") action set_egress_filter_drop() { mark_to_drop(); @@ -2943,7 +2943,7 @@ control process_egress_acl(inout headers hdr, inout metadata meta, inout standar @name(".nop") action nop() { } @name(".egress_mirror") action egress_mirror(bit<32> session_id) { - meta.i2e_metadata.mirror_session_id = session_id; + meta.i2e_metadata.mirror_session_id = (bit<16>)session_id; clone3(CloneType.E2E, (bit<32>)session_id, { meta.i2e_metadata.ingress_tstamp, meta.i2e_metadata.mirror_session_id }); } @name(".egress_mirror_drop") action egress_mirror_drop(bit<32> session_id) { @@ -2951,7 +2951,7 @@ control process_egress_acl(inout headers hdr, inout metadata meta, inout standar mark_to_drop(); } @name(".egress_copy_to_cpu") action egress_copy_to_cpu(bit<16> reason_code) { - meta.fabric_metadata.reason_code = reason_code; + meta.fabric_metadata.reason_code = (bit<16>)reason_code; clone3(CloneType.E2E, (bit<32>)32w250, { meta.ingress_metadata.bd, meta.ingress_metadata.ifindex, meta.fabric_metadata.reason_code, meta.ingress_metadata.ingress_port }); } @name(".egress_redirect_to_cpu") action egress_redirect_to_cpu(bit<16> reason_code) { @@ -2983,32 +2983,32 @@ control process_egress_acl(inout headers hdr, inout metadata meta, inout standar control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".egress_port_type_normal") action egress_port_type_normal(bit<16> ifindex) { - meta.egress_metadata.port_type = 2w0; - meta.egress_metadata.ifindex = ifindex; + meta.egress_metadata.port_type = (bit<2>)2w0; + meta.egress_metadata.ifindex = (bit<16>)ifindex; } @name(".egress_port_type_fabric") action egress_port_type_fabric(bit<16> ifindex) { - meta.egress_metadata.port_type = 2w1; - meta.egress_metadata.ifindex = ifindex; - meta.tunnel_metadata.egress_tunnel_type = 5w15; - meta.egress_metadata.ifindex = ifindex; + meta.egress_metadata.port_type = (bit<2>)2w1; + meta.egress_metadata.ifindex = (bit<16>)ifindex; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)5w15; + meta.egress_metadata.ifindex = (bit<16>)ifindex; } @name(".egress_port_type_cpu") action egress_port_type_cpu(bit<16> ifindex) { - meta.egress_metadata.port_type = 2w2; - meta.egress_metadata.ifindex = ifindex; - meta.tunnel_metadata.egress_tunnel_type = 5w16; - meta.egress_metadata.ifindex = ifindex; + meta.egress_metadata.port_type = (bit<2>)2w2; + meta.egress_metadata.ifindex = (bit<16>)ifindex; + meta.tunnel_metadata.egress_tunnel_type = (bit<5>)5w16; + meta.egress_metadata.ifindex = (bit<16>)ifindex; } @name(".nop") action nop() { } @name(".set_mirror_nhop") action set_mirror_nhop(bit<16> nhop_idx) { - meta.l3_metadata.nexthop_index = nhop_idx; + meta.l3_metadata.nexthop_index = (bit<16>)nhop_idx; } @name(".set_mirror_bd") action set_mirror_bd(bit<16> bd) { - meta.egress_metadata.bd = bd; + meta.egress_metadata.bd = (bit<16>)bd; } @name(".sflow_pkt_to_cpu") action sflow_pkt_to_cpu() { hdr.fabric_header_sflow.setValid(); - hdr.fabric_header_sflow.sflow_session_id = meta.sflow_metadata.sflow_session_id; + hdr.fabric_header_sflow.sflow_session_id = (bit<16>)meta.sflow_metadata.sflow_session_id; } @name("egress_port_mapping") table egress_port_mapping { actions = { @@ -3087,11 +3087,11 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control process_ingress_port_mapping(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_ifindex") action set_ifindex(bit<16> ifindex, bit<2> port_type) { - meta.ingress_metadata.ifindex = ifindex; - meta.ingress_metadata.port_type = port_type; + meta.ingress_metadata.ifindex = (bit<16>)ifindex; + meta.ingress_metadata.port_type = (bit<2>)port_type; } @name(".set_ingress_port_properties") action set_ingress_port_properties(bit<16> if_label) { - meta.acl_metadata.if_label = if_label; + meta.acl_metadata.if_label = (bit<16>)if_label; } @name("ingress_port_mapping") table ingress_port_mapping { actions = { @@ -3123,13 +3123,13 @@ control process_ingress_port_mapping(inout headers hdr, inout metadata meta, ino control validate_outer_ipv4_header(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_valid_outer_ipv4_packet") action set_valid_outer_ipv4_packet() { - meta.l3_metadata.lkp_ip_type = 2w1; - meta.l3_metadata.lkp_ip_tc = hdr.ipv4.diffserv; - meta.l3_metadata.lkp_ip_version = hdr.ipv4.version; + meta.l3_metadata.lkp_ip_type = (bit<2>)2w1; + meta.l3_metadata.lkp_ip_tc = (bit<8>)hdr.ipv4.diffserv; + meta.l3_metadata.lkp_ip_version = (bit<4>)hdr.ipv4.version; } @name(".set_malformed_outer_ipv4_packet") action set_malformed_outer_ipv4_packet(bit<8> drop_reason) { - meta.ingress_metadata.drop_flag = 1w1; - meta.ingress_metadata.drop_reason = drop_reason; + meta.ingress_metadata.drop_flag = (bit<1>)1w1; + meta.ingress_metadata.drop_reason = (bit<8>)drop_reason; } @name("validate_outer_ipv4_packet") table validate_outer_ipv4_packet { actions = { @@ -3152,13 +3152,13 @@ control validate_outer_ipv4_header(inout headers hdr, inout metadata meta, inout control validate_outer_ipv6_header(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_valid_outer_ipv6_packet") action set_valid_outer_ipv6_packet() { - meta.l3_metadata.lkp_ip_type = 2w2; - meta.l3_metadata.lkp_ip_tc = hdr.ipv6.trafficClass; - meta.l3_metadata.lkp_ip_version = hdr.ipv6.version; + meta.l3_metadata.lkp_ip_type = (bit<2>)2w2; + meta.l3_metadata.lkp_ip_tc = (bit<8>)hdr.ipv6.trafficClass; + meta.l3_metadata.lkp_ip_version = (bit<4>)hdr.ipv6.version; } @name(".set_malformed_outer_ipv6_packet") action set_malformed_outer_ipv6_packet(bit<8> drop_reason) { - meta.ingress_metadata.drop_flag = 1w1; - meta.ingress_metadata.drop_reason = drop_reason; + meta.ingress_metadata.drop_flag = (bit<1>)1w1; + meta.ingress_metadata.drop_reason = (bit<8>)drop_reason; } @name("validate_outer_ipv6_packet") table validate_outer_ipv6_packet { actions = { @@ -3181,16 +3181,16 @@ control validate_outer_ipv6_header(inout headers hdr, inout metadata meta, inout control validate_mpls_header(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_valid_mpls_label1") action set_valid_mpls_label1() { - meta.tunnel_metadata.mpls_label = hdr.mpls[0].label; - meta.tunnel_metadata.mpls_exp = hdr.mpls[0].exp; + meta.tunnel_metadata.mpls_label = (bit<20>)hdr.mpls[0].label; + meta.tunnel_metadata.mpls_exp = (bit<3>)hdr.mpls[0].exp; } @name(".set_valid_mpls_label2") action set_valid_mpls_label2() { - meta.tunnel_metadata.mpls_label = hdr.mpls[1].label; - meta.tunnel_metadata.mpls_exp = hdr.mpls[1].exp; + meta.tunnel_metadata.mpls_label = (bit<20>)hdr.mpls[1].label; + meta.tunnel_metadata.mpls_exp = (bit<3>)hdr.mpls[1].exp; } @name(".set_valid_mpls_label3") action set_valid_mpls_label3() { - meta.tunnel_metadata.mpls_label = hdr.mpls[2].label; - meta.tunnel_metadata.mpls_exp = hdr.mpls[2].exp; + meta.tunnel_metadata.mpls_label = (bit<20>)hdr.mpls[2].label; + meta.tunnel_metadata.mpls_exp = (bit<3>)hdr.mpls[2].exp; } @name("validate_mpls_packet") table validate_mpls_packet { actions = { @@ -3220,56 +3220,56 @@ control validate_mpls_header(inout headers hdr, inout metadata meta, inout stand control process_validate_outer_header(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".malformed_outer_ethernet_packet") action malformed_outer_ethernet_packet(bit<8> drop_reason) { - meta.ingress_metadata.drop_flag = 1w1; - meta.ingress_metadata.drop_reason = drop_reason; + meta.ingress_metadata.drop_flag = (bit<1>)1w1; + meta.ingress_metadata.drop_reason = (bit<8>)drop_reason; } @name(".set_valid_outer_unicast_packet_untagged") action set_valid_outer_unicast_packet_untagged() { - meta.l2_metadata.lkp_pkt_type = 3w1; - meta.l2_metadata.lkp_mac_type = hdr.ethernet.etherType; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w1; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.ethernet.etherType; } @name(".set_valid_outer_unicast_packet_single_tagged") action set_valid_outer_unicast_packet_single_tagged() { - meta.l2_metadata.lkp_pkt_type = 3w1; - meta.l2_metadata.lkp_mac_type = hdr.vlan_tag_[0].etherType; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w1; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.vlan_tag_[0].etherType; } @name(".set_valid_outer_unicast_packet_double_tagged") action set_valid_outer_unicast_packet_double_tagged() { - meta.l2_metadata.lkp_pkt_type = 3w1; - meta.l2_metadata.lkp_mac_type = hdr.vlan_tag_[1].etherType; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w1; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.vlan_tag_[1].etherType; } @name(".set_valid_outer_unicast_packet_qinq_tagged") action set_valid_outer_unicast_packet_qinq_tagged() { - meta.l2_metadata.lkp_pkt_type = 3w1; - meta.l2_metadata.lkp_mac_type = hdr.ethernet.etherType; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w1; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.ethernet.etherType; } @name(".set_valid_outer_multicast_packet_untagged") action set_valid_outer_multicast_packet_untagged() { - meta.l2_metadata.lkp_pkt_type = 3w2; - meta.l2_metadata.lkp_mac_type = hdr.ethernet.etherType; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w2; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.ethernet.etherType; } @name(".set_valid_outer_multicast_packet_single_tagged") action set_valid_outer_multicast_packet_single_tagged() { - meta.l2_metadata.lkp_pkt_type = 3w2; - meta.l2_metadata.lkp_mac_type = hdr.vlan_tag_[0].etherType; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w2; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.vlan_tag_[0].etherType; } @name(".set_valid_outer_multicast_packet_double_tagged") action set_valid_outer_multicast_packet_double_tagged() { - meta.l2_metadata.lkp_pkt_type = 3w2; - meta.l2_metadata.lkp_mac_type = hdr.vlan_tag_[1].etherType; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w2; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.vlan_tag_[1].etherType; } @name(".set_valid_outer_multicast_packet_qinq_tagged") action set_valid_outer_multicast_packet_qinq_tagged() { - meta.l2_metadata.lkp_pkt_type = 3w2; - meta.l2_metadata.lkp_mac_type = hdr.ethernet.etherType; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w2; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.ethernet.etherType; } @name(".set_valid_outer_broadcast_packet_untagged") action set_valid_outer_broadcast_packet_untagged() { - meta.l2_metadata.lkp_pkt_type = 3w4; - meta.l2_metadata.lkp_mac_type = hdr.ethernet.etherType; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w4; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.ethernet.etherType; } @name(".set_valid_outer_broadcast_packet_single_tagged") action set_valid_outer_broadcast_packet_single_tagged() { - meta.l2_metadata.lkp_pkt_type = 3w4; - meta.l2_metadata.lkp_mac_type = hdr.vlan_tag_[0].etherType; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w4; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.vlan_tag_[0].etherType; } @name(".set_valid_outer_broadcast_packet_double_tagged") action set_valid_outer_broadcast_packet_double_tagged() { - meta.l2_metadata.lkp_pkt_type = 3w4; - meta.l2_metadata.lkp_mac_type = hdr.vlan_tag_[1].etherType; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w4; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.vlan_tag_[1].etherType; } @name(".set_valid_outer_broadcast_packet_qinq_tagged") action set_valid_outer_broadcast_packet_qinq_tagged() { - meta.l2_metadata.lkp_pkt_type = 3w4; - meta.l2_metadata.lkp_mac_type = hdr.ethernet.etherType; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w4; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.ethernet.etherType; } @name("validate_outer_ethernet") table validate_outer_ethernet { actions = { @@ -3326,14 +3326,14 @@ control process_validate_outer_header(inout headers hdr, inout metadata meta, in control process_global_params(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".deflect_on_drop") action deflect_on_drop(bit<1> enable_dod) { - meta.intrinsic_metadata.deflect_on_drop = enable_dod; + meta.intrinsic_metadata.deflect_on_drop = (bit<1>)enable_dod; } @name(".set_config_parameters") action set_config_parameters(bit<1> enable_dod) { deflect_on_drop(enable_dod); - meta.i2e_metadata.ingress_tstamp = meta.intrinsic_metadata.ingress_global_tstamp; - meta.ingress_metadata.ingress_port = standard_metadata.ingress_port; - meta.l2_metadata.same_if_check = meta.ingress_metadata.ifindex; - standard_metadata.egress_spec = 9w511; + meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; + meta.ingress_metadata.ingress_port = (bit<9>)standard_metadata.ingress_port; + meta.l2_metadata.same_if_check = (bit<16>)meta.ingress_metadata.ifindex; + standard_metadata.egress_spec = (bit<9>)9w511; random(meta.ingress_metadata.sflow_take_sample, (bit<32>)0, (bit<32>)32w0x7fffffff); } @name("switch_config_params") table switch_config_params { @@ -3351,30 +3351,30 @@ control process_global_params(inout headers hdr, inout metadata meta, inout stan control process_port_vlan_mapping(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_bd_properties") action set_bd_properties(bit<16> bd, bit<16> vrf, bit<10> stp_group, bit<1> learning_enabled, bit<16> bd_label, bit<16> stats_idx, bit<10> rmac_group, bit<1> ipv4_unicast_enabled, bit<1> ipv6_unicast_enabled, bit<2> ipv4_urpf_mode, bit<2> ipv6_urpf_mode, bit<1> igmp_snooping_enabled, bit<1> mld_snooping_enabled, bit<1> ipv4_multicast_enabled, bit<1> ipv6_multicast_enabled, bit<16> mrpf_group, bit<16> ipv4_mcast_key, bit<1> ipv4_mcast_key_type, bit<16> ipv6_mcast_key, bit<1> ipv6_mcast_key_type) { - meta.ingress_metadata.bd = bd; - meta.ingress_metadata.outer_bd = bd; - meta.acl_metadata.bd_label = bd_label; - meta.l2_metadata.stp_group = stp_group; - meta.l2_metadata.bd_stats_idx = stats_idx; - meta.l2_metadata.learning_enabled = learning_enabled; - meta.l3_metadata.vrf = vrf; - meta.ipv4_metadata.ipv4_unicast_enabled = ipv4_unicast_enabled; - meta.ipv6_metadata.ipv6_unicast_enabled = ipv6_unicast_enabled; - meta.ipv4_metadata.ipv4_urpf_mode = ipv4_urpf_mode; - meta.ipv6_metadata.ipv6_urpf_mode = ipv6_urpf_mode; - meta.l3_metadata.rmac_group = rmac_group; - meta.multicast_metadata.igmp_snooping_enabled = igmp_snooping_enabled; - meta.multicast_metadata.mld_snooping_enabled = mld_snooping_enabled; - meta.multicast_metadata.ipv4_multicast_enabled = ipv4_multicast_enabled; - meta.multicast_metadata.ipv6_multicast_enabled = ipv6_multicast_enabled; - meta.multicast_metadata.bd_mrpf_group = mrpf_group; - meta.multicast_metadata.ipv4_mcast_key_type = ipv4_mcast_key_type; - meta.multicast_metadata.ipv4_mcast_key = ipv4_mcast_key; - meta.multicast_metadata.ipv6_mcast_key_type = ipv6_mcast_key_type; - meta.multicast_metadata.ipv6_mcast_key = ipv6_mcast_key; + meta.ingress_metadata.bd = (bit<16>)bd; + meta.ingress_metadata.outer_bd = (bit<16>)bd; + meta.acl_metadata.bd_label = (bit<16>)bd_label; + meta.l2_metadata.stp_group = (bit<10>)stp_group; + meta.l2_metadata.bd_stats_idx = (bit<16>)stats_idx; + meta.l2_metadata.learning_enabled = (bit<1>)learning_enabled; + meta.l3_metadata.vrf = (bit<16>)vrf; + meta.ipv4_metadata.ipv4_unicast_enabled = (bit<1>)ipv4_unicast_enabled; + meta.ipv6_metadata.ipv6_unicast_enabled = (bit<1>)ipv6_unicast_enabled; + meta.ipv4_metadata.ipv4_urpf_mode = (bit<2>)ipv4_urpf_mode; + meta.ipv6_metadata.ipv6_urpf_mode = (bit<2>)ipv6_urpf_mode; + meta.l3_metadata.rmac_group = (bit<10>)rmac_group; + meta.multicast_metadata.igmp_snooping_enabled = (bit<1>)igmp_snooping_enabled; + meta.multicast_metadata.mld_snooping_enabled = (bit<1>)mld_snooping_enabled; + meta.multicast_metadata.ipv4_multicast_enabled = (bit<1>)ipv4_multicast_enabled; + meta.multicast_metadata.ipv6_multicast_enabled = (bit<1>)ipv6_multicast_enabled; + meta.multicast_metadata.bd_mrpf_group = (bit<16>)mrpf_group; + meta.multicast_metadata.ipv4_mcast_key_type = (bit<1>)ipv4_mcast_key_type; + meta.multicast_metadata.ipv4_mcast_key = (bit<16>)ipv4_mcast_key; + meta.multicast_metadata.ipv6_mcast_key_type = (bit<1>)ipv6_mcast_key_type; + meta.multicast_metadata.ipv6_mcast_key = (bit<16>)ipv6_mcast_key; } @name(".port_vlan_mapping_miss") action port_vlan_mapping_miss() { - meta.l2_metadata.port_vlan_mapping_miss = 1w1; + meta.l2_metadata.port_vlan_mapping_miss = (bit<1>)1w1; } @name("port_vlan_mapping") table port_vlan_mapping { actions = { @@ -3400,7 +3400,7 @@ control process_port_vlan_mapping(inout headers hdr, inout metadata meta, inout control process_spanning_tree(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_stp_state") action set_stp_state(bit<3> stp_state) { - meta.l2_metadata.stp_state = stp_state; + meta.l2_metadata.stp_state = (bit<3>)stp_state; } @name("spanning_tree") table spanning_tree { actions = { @@ -3425,7 +3425,7 @@ control process_ip_sourceguard(inout headers hdr, inout metadata meta, inout sta @name(".on_miss") action on_miss() { } @name(".ipsg_miss") action ipsg_miss() { - meta.security_metadata.ipsg_check_fail = 1w1; + meta.security_metadata.ipsg_check_fail = (bit<1>)1w1; } @name("ipsg") table ipsg { actions = { @@ -3468,22 +3468,22 @@ control process_ip_sourceguard(inout headers hdr, inout metadata meta, inout sta control process_int_endpoint(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".int_sink_update_vxlan_gpe_v4") action int_sink_update_vxlan_gpe_v4() { - hdr.vxlan_gpe.next_proto = hdr.vxlan_gpe_int_header.next_proto; + hdr.vxlan_gpe.next_proto = (bit<8>)hdr.vxlan_gpe_int_header.next_proto; hdr.vxlan_gpe_int_header.setInvalid(); - hdr.ipv4.totalLen = hdr.ipv4.totalLen - meta.int_metadata.insert_byte_cnt; - hdr.udp.length_ = hdr.udp.length_ - meta.int_metadata.insert_byte_cnt; + hdr.ipv4.totalLen = (bit<16>)(hdr.ipv4.totalLen - meta.int_metadata.insert_byte_cnt); + hdr.udp.length_ = (bit<16>)(hdr.udp.length_ - meta.int_metadata.insert_byte_cnt); } @name(".nop") action nop() { } @name(".int_set_src") action int_set_src() { - meta.int_metadata_i2e.source = 1w1; + meta.int_metadata_i2e.source = (bit<1>)1w1; } @name(".int_set_no_src") action int_set_no_src() { - meta.int_metadata_i2e.source = 1w0; + meta.int_metadata_i2e.source = (bit<1>)1w0; } @name(".int_sink") action int_sink(bit<32> mirror_id) { - meta.int_metadata_i2e.sink = 1w1; - meta.i2e_metadata.mirror_session_id = mirror_id; + meta.int_metadata_i2e.sink = (bit<1>)1w1; + meta.i2e_metadata.mirror_session_id = (bit<16>)mirror_id; clone3(CloneType.I2E, (bit<32>)mirror_id, { meta.int_metadata_i2e.sink, meta.i2e_metadata.mirror_session_id }); hdr.int_header.setInvalid(); hdr.int_val[0].setInvalid(); @@ -3512,11 +3512,11 @@ control process_int_endpoint(inout headers hdr, inout metadata meta, inout stand hdr.int_val[23].setInvalid(); } @name(".int_sink_gpe") action int_sink_gpe(bit<32> mirror_id) { - meta.int_metadata.insert_byte_cnt = meta.int_metadata.gpe_int_hdr_len << 2; + meta.int_metadata.insert_byte_cnt = (bit<16>)(meta.int_metadata.gpe_int_hdr_len << 2); int_sink(mirror_id); } @name(".int_no_sink") action int_no_sink() { - meta.int_metadata_i2e.sink = 1w0; + meta.int_metadata_i2e.sink = (bit<1>)1w0; } @name("int_sink_update_outer") table int_sink_update_outer { actions = { @@ -3582,42 +3582,42 @@ control process_ingress_fabric(inout headers hdr, inout metadata meta, inout sta @name(".nop") action nop() { } @name(".terminate_cpu_packet") action terminate_cpu_packet() { - standard_metadata.egress_spec = hdr.fabric_header.dstPortOrGroup; - meta.egress_metadata.bypass = hdr.fabric_header_cpu.txBypass; - hdr.ethernet.etherType = hdr.fabric_payload_header.etherType; + standard_metadata.egress_spec = (bit<9>)hdr.fabric_header.dstPortOrGroup; + meta.egress_metadata.bypass = (bit<1>)hdr.fabric_header_cpu.txBypass; + hdr.ethernet.etherType = (bit<16>)hdr.fabric_payload_header.etherType; hdr.fabric_header.setInvalid(); hdr.fabric_header_cpu.setInvalid(); hdr.fabric_payload_header.setInvalid(); } @name(".switch_fabric_unicast_packet") action switch_fabric_unicast_packet() { - meta.fabric_metadata.fabric_header_present = 1w1; - meta.fabric_metadata.dst_device = hdr.fabric_header.dstDevice; - meta.fabric_metadata.dst_port = hdr.fabric_header.dstPortOrGroup; + meta.fabric_metadata.fabric_header_present = (bit<1>)1w1; + meta.fabric_metadata.dst_device = (bit<8>)hdr.fabric_header.dstDevice; + meta.fabric_metadata.dst_port = (bit<16>)hdr.fabric_header.dstPortOrGroup; } @name(".terminate_fabric_unicast_packet") action terminate_fabric_unicast_packet() { - standard_metadata.egress_spec = hdr.fabric_header.dstPortOrGroup; - meta.tunnel_metadata.tunnel_terminate = hdr.fabric_header_unicast.tunnelTerminate; - meta.tunnel_metadata.ingress_tunnel_type = hdr.fabric_header_unicast.ingressTunnelType; - meta.l3_metadata.nexthop_index = hdr.fabric_header_unicast.nexthopIndex; - meta.l3_metadata.routed = hdr.fabric_header_unicast.routed; - meta.l3_metadata.outer_routed = hdr.fabric_header_unicast.outerRouted; - hdr.ethernet.etherType = hdr.fabric_payload_header.etherType; + standard_metadata.egress_spec = (bit<9>)hdr.fabric_header.dstPortOrGroup; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)hdr.fabric_header_unicast.tunnelTerminate; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)hdr.fabric_header_unicast.ingressTunnelType; + meta.l3_metadata.nexthop_index = (bit<16>)hdr.fabric_header_unicast.nexthopIndex; + meta.l3_metadata.routed = (bit<1>)hdr.fabric_header_unicast.routed; + meta.l3_metadata.outer_routed = (bit<1>)hdr.fabric_header_unicast.outerRouted; + hdr.ethernet.etherType = (bit<16>)hdr.fabric_payload_header.etherType; hdr.fabric_header.setInvalid(); hdr.fabric_header_unicast.setInvalid(); hdr.fabric_payload_header.setInvalid(); } @name(".switch_fabric_multicast_packet") action switch_fabric_multicast_packet() { - meta.fabric_metadata.fabric_header_present = 1w1; - meta.intrinsic_metadata.mcast_grp = hdr.fabric_header.dstPortOrGroup; + meta.fabric_metadata.fabric_header_present = (bit<1>)1w1; + meta.intrinsic_metadata.mcast_grp = (bit<16>)hdr.fabric_header.dstPortOrGroup; } @name(".terminate_fabric_multicast_packet") action terminate_fabric_multicast_packet() { - meta.tunnel_metadata.tunnel_terminate = hdr.fabric_header_multicast.tunnelTerminate; - meta.tunnel_metadata.ingress_tunnel_type = hdr.fabric_header_multicast.ingressTunnelType; - meta.l3_metadata.nexthop_index = 16w0; - meta.l3_metadata.routed = hdr.fabric_header_multicast.routed; - meta.l3_metadata.outer_routed = hdr.fabric_header_multicast.outerRouted; - meta.intrinsic_metadata.mcast_grp = hdr.fabric_header_multicast.mcastGrp; - hdr.ethernet.etherType = hdr.fabric_payload_header.etherType; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)hdr.fabric_header_multicast.tunnelTerminate; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)hdr.fabric_header_multicast.ingressTunnelType; + meta.l3_metadata.nexthop_index = (bit<16>)16w0; + meta.l3_metadata.routed = (bit<1>)hdr.fabric_header_multicast.routed; + meta.l3_metadata.outer_routed = (bit<1>)hdr.fabric_header_multicast.outerRouted; + meta.intrinsic_metadata.mcast_grp = (bit<16>)hdr.fabric_header_multicast.mcastGrp; + hdr.ethernet.etherType = (bit<16>)hdr.fabric_payload_header.etherType; hdr.fabric_header.setInvalid(); hdr.fabric_header_multicast.setInvalid(); hdr.fabric_payload_header.setInvalid(); @@ -3625,27 +3625,27 @@ control process_ingress_fabric(inout headers hdr, inout metadata meta, inout sta @name(".set_ingress_ifindex_properties") action set_ingress_ifindex_properties() { } @name(".non_ip_over_fabric") action non_ip_over_fabric() { - meta.l2_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.l2_metadata.lkp_mac_type = hdr.ethernet.etherType; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.ethernet.etherType; } @name(".ipv4_over_fabric") action ipv4_over_fabric() { - meta.l2_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.ipv4_metadata.lkp_ipv4_sa = hdr.ipv4.srcAddr; - meta.ipv4_metadata.lkp_ipv4_da = hdr.ipv4.dstAddr; - meta.l3_metadata.lkp_ip_proto = hdr.ipv4.protocol; - meta.l3_metadata.lkp_l4_sport = meta.l3_metadata.lkp_outer_l4_sport; - meta.l3_metadata.lkp_l4_dport = meta.l3_metadata.lkp_outer_l4_dport; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.ipv4_metadata.lkp_ipv4_sa = (bit<32>)hdr.ipv4.srcAddr; + meta.ipv4_metadata.lkp_ipv4_da = (bit<32>)hdr.ipv4.dstAddr; + meta.l3_metadata.lkp_ip_proto = (bit<8>)hdr.ipv4.protocol; + meta.l3_metadata.lkp_l4_sport = (bit<16>)meta.l3_metadata.lkp_outer_l4_sport; + meta.l3_metadata.lkp_l4_dport = (bit<16>)meta.l3_metadata.lkp_outer_l4_dport; } @name(".ipv6_over_fabric") action ipv6_over_fabric() { - meta.l2_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.ipv6_metadata.lkp_ipv6_sa = hdr.ipv6.srcAddr; - meta.ipv6_metadata.lkp_ipv6_da = hdr.ipv6.dstAddr; - meta.l3_metadata.lkp_ip_proto = hdr.ipv6.nextHdr; - meta.l3_metadata.lkp_l4_sport = meta.l3_metadata.lkp_outer_l4_sport; - meta.l3_metadata.lkp_l4_dport = meta.l3_metadata.lkp_outer_l4_dport; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.ipv6_metadata.lkp_ipv6_sa = (bit<128>)hdr.ipv6.srcAddr; + meta.ipv6_metadata.lkp_ipv6_da = (bit<128>)hdr.ipv6.dstAddr; + meta.l3_metadata.lkp_ip_proto = (bit<8>)hdr.ipv6.nextHdr; + meta.l3_metadata.lkp_l4_sport = (bit<16>)meta.l3_metadata.lkp_outer_l4_sport; + meta.l3_metadata.lkp_l4_dport = (bit<16>)meta.l3_metadata.lkp_outer_l4_dport; } @name("fabric_ingress_dst_lkp") table fabric_ingress_dst_lkp { actions = { @@ -3707,16 +3707,16 @@ control process_ipv4_vtep(inout headers hdr, inout metadata meta, inout standard @name(".nop") action nop() { } @name(".set_tunnel_termination_flag") action set_tunnel_termination_flag() { - meta.tunnel_metadata.tunnel_terminate = 1w1; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; } @name(".set_tunnel_vni_and_termination_flag") action set_tunnel_vni_and_termination_flag(bit<24> tunnel_vni) { - meta.tunnel_metadata.tunnel_vni = tunnel_vni; - meta.tunnel_metadata.tunnel_terminate = 1w1; + meta.tunnel_metadata.tunnel_vni = (bit<24>)tunnel_vni; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; } @name(".on_miss") action on_miss() { } @name(".src_vtep_hit") action src_vtep_hit(bit<16> ifindex) { - meta.ingress_metadata.ifindex = ifindex; + meta.ingress_metadata.ifindex = (bit<16>)ifindex; } @name("ipv4_dest_vtep") table ipv4_dest_vtep { actions = { @@ -3761,16 +3761,16 @@ control process_ipv6_vtep(inout headers hdr, inout metadata meta, inout standard @name(".nop") action nop() { } @name(".set_tunnel_termination_flag") action set_tunnel_termination_flag() { - meta.tunnel_metadata.tunnel_terminate = 1w1; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; } @name(".set_tunnel_vni_and_termination_flag") action set_tunnel_vni_and_termination_flag(bit<24> tunnel_vni) { - meta.tunnel_metadata.tunnel_vni = tunnel_vni; - meta.tunnel_metadata.tunnel_terminate = 1w1; + meta.tunnel_metadata.tunnel_vni = (bit<24>)tunnel_vni; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; } @name(".on_miss") action on_miss() { } @name(".src_vtep_hit") action src_vtep_hit(bit<16> ifindex) { - meta.ingress_metadata.ifindex = ifindex; + meta.ingress_metadata.ifindex = (bit<16>)ifindex; } @name("ipv6_dest_vtep") table ipv6_dest_vtep { actions = { @@ -3813,50 +3813,50 @@ control process_ipv6_vtep(inout headers hdr, inout metadata meta, inout standard control process_mpls(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".terminate_eompls") action terminate_eompls(bit<16> bd, bit<5> tunnel_type) { - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.tunnel_metadata.ingress_tunnel_type = tunnel_type; - meta.ingress_metadata.bd = bd; - meta.l2_metadata.lkp_mac_type = hdr.inner_ethernet.etherType; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)tunnel_type; + meta.ingress_metadata.bd = (bit<16>)bd; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.inner_ethernet.etherType; } @name(".terminate_vpls") action terminate_vpls(bit<16> bd, bit<5> tunnel_type) { - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.tunnel_metadata.ingress_tunnel_type = tunnel_type; - meta.ingress_metadata.bd = bd; - meta.l2_metadata.lkp_mac_type = hdr.inner_ethernet.etherType; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)tunnel_type; + meta.ingress_metadata.bd = (bit<16>)bd; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.inner_ethernet.etherType; } @name(".terminate_ipv4_over_mpls") action terminate_ipv4_over_mpls(bit<16> vrf, bit<5> tunnel_type) { - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.tunnel_metadata.ingress_tunnel_type = tunnel_type; - meta.l3_metadata.vrf = vrf; - meta.l2_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.l3_metadata.lkp_ip_type = 2w1; - meta.l2_metadata.lkp_mac_type = hdr.inner_ethernet.etherType; - meta.l3_metadata.lkp_ip_version = hdr.inner_ipv4.version; - meta.l3_metadata.lkp_ip_tc = hdr.inner_ipv4.diffserv; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)tunnel_type; + meta.l3_metadata.vrf = (bit<16>)vrf; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.l3_metadata.lkp_ip_type = (bit<2>)2w1; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.inner_ethernet.etherType; + meta.l3_metadata.lkp_ip_version = (bit<4>)hdr.inner_ipv4.version; + meta.l3_metadata.lkp_ip_tc = (bit<8>)hdr.inner_ipv4.diffserv; } @name(".terminate_ipv6_over_mpls") action terminate_ipv6_over_mpls(bit<16> vrf, bit<5> tunnel_type) { - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.tunnel_metadata.ingress_tunnel_type = tunnel_type; - meta.l3_metadata.vrf = vrf; - meta.l2_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.l3_metadata.lkp_ip_type = 2w2; - meta.l2_metadata.lkp_mac_type = hdr.inner_ethernet.etherType; - meta.l3_metadata.lkp_ip_version = hdr.inner_ipv6.version; - meta.l3_metadata.lkp_ip_tc = hdr.inner_ipv6.trafficClass; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.tunnel_metadata.ingress_tunnel_type = (bit<5>)tunnel_type; + meta.l3_metadata.vrf = (bit<16>)vrf; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.l3_metadata.lkp_ip_type = (bit<2>)2w2; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.inner_ethernet.etherType; + meta.l3_metadata.lkp_ip_version = (bit<4>)hdr.inner_ipv6.version; + meta.l3_metadata.lkp_ip_tc = (bit<8>)hdr.inner_ipv6.trafficClass; } @name(".terminate_pw") action terminate_pw(bit<16> ifindex) { - meta.ingress_metadata.egress_ifindex = ifindex; - meta.l2_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.ethernet.dstAddr; + meta.ingress_metadata.egress_ifindex = (bit<16>)ifindex; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; } @name(".forward_mpls") action forward_mpls(bit<16> nexthop_index) { - meta.l3_metadata.fib_nexthop = nexthop_index; - meta.l3_metadata.fib_nexthop_type = 1w0; - meta.l3_metadata.fib_hit = 1w1; - meta.l2_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.ethernet.dstAddr; + meta.l3_metadata.fib_nexthop = (bit<16>)nexthop_index; + meta.l3_metadata.fib_nexthop_type = (bit<1>)1w0; + meta.l3_metadata.fib_hit = (bit<1>)1w1; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; } @name("mpls") table mpls_0 { actions = { @@ -3887,34 +3887,34 @@ control process_outer_ipv4_multicast(inout headers hdr, inout metadata meta, ino @name(".on_miss") action on_miss() { } @name(".outer_multicast_route_s_g_hit") action outer_multicast_route_s_g_hit(bit<16> mc_index, bit<16> mcast_rpf_group) { - meta.intrinsic_metadata.mcast_grp = mc_index; - meta.multicast_metadata.outer_mcast_route_hit = 1w1; - meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group; - meta.fabric_metadata.dst_device = 8w127; + meta.intrinsic_metadata.mcast_grp = (bit<16>)mc_index; + meta.multicast_metadata.outer_mcast_route_hit = (bit<1>)1w1; + meta.multicast_metadata.mcast_rpf_group = (bit<16>)(mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group); + meta.fabric_metadata.dst_device = (bit<8>)8w127; } @name(".outer_multicast_bridge_s_g_hit") action outer_multicast_bridge_s_g_hit(bit<16> mc_index) { - meta.intrinsic_metadata.mcast_grp = mc_index; - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.fabric_metadata.dst_device = 8w127; + meta.intrinsic_metadata.mcast_grp = (bit<16>)mc_index; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.fabric_metadata.dst_device = (bit<8>)8w127; } @name(".outer_multicast_route_sm_star_g_hit") action outer_multicast_route_sm_star_g_hit(bit<16> mc_index, bit<16> mcast_rpf_group) { - meta.multicast_metadata.outer_mcast_mode = 2w1; - meta.intrinsic_metadata.mcast_grp = mc_index; - meta.multicast_metadata.outer_mcast_route_hit = 1w1; - meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group; - meta.fabric_metadata.dst_device = 8w127; + meta.multicast_metadata.outer_mcast_mode = (bit<2>)2w1; + meta.intrinsic_metadata.mcast_grp = (bit<16>)mc_index; + meta.multicast_metadata.outer_mcast_route_hit = (bit<1>)1w1; + meta.multicast_metadata.mcast_rpf_group = (bit<16>)(mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group); + meta.fabric_metadata.dst_device = (bit<8>)8w127; } @name(".outer_multicast_route_bidir_star_g_hit") action outer_multicast_route_bidir_star_g_hit(bit<16> mc_index, bit<16> mcast_rpf_group) { - meta.multicast_metadata.outer_mcast_mode = 2w2; - meta.intrinsic_metadata.mcast_grp = mc_index; - meta.multicast_metadata.outer_mcast_route_hit = 1w1; - meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group | meta.multicast_metadata.bd_mrpf_group; - meta.fabric_metadata.dst_device = 8w127; + meta.multicast_metadata.outer_mcast_mode = (bit<2>)2w2; + meta.intrinsic_metadata.mcast_grp = (bit<16>)mc_index; + meta.multicast_metadata.outer_mcast_route_hit = (bit<1>)1w1; + meta.multicast_metadata.mcast_rpf_group = (bit<16>)(mcast_rpf_group | meta.multicast_metadata.bd_mrpf_group); + meta.fabric_metadata.dst_device = (bit<8>)8w127; } @name(".outer_multicast_bridge_star_g_hit") action outer_multicast_bridge_star_g_hit(bit<16> mc_index) { - meta.intrinsic_metadata.mcast_grp = mc_index; - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.fabric_metadata.dst_device = 8w127; + meta.intrinsic_metadata.mcast_grp = (bit<16>)mc_index; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.fabric_metadata.dst_device = (bit<8>)8w127; } @name("outer_ipv4_multicast") table outer_ipv4_multicast { actions = { @@ -3965,34 +3965,34 @@ control process_outer_ipv6_multicast(inout headers hdr, inout metadata meta, ino @name(".on_miss") action on_miss() { } @name(".outer_multicast_route_s_g_hit") action outer_multicast_route_s_g_hit(bit<16> mc_index, bit<16> mcast_rpf_group) { - meta.intrinsic_metadata.mcast_grp = mc_index; - meta.multicast_metadata.outer_mcast_route_hit = 1w1; - meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group; - meta.fabric_metadata.dst_device = 8w127; + meta.intrinsic_metadata.mcast_grp = (bit<16>)mc_index; + meta.multicast_metadata.outer_mcast_route_hit = (bit<1>)1w1; + meta.multicast_metadata.mcast_rpf_group = (bit<16>)(mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group); + meta.fabric_metadata.dst_device = (bit<8>)8w127; } @name(".outer_multicast_bridge_s_g_hit") action outer_multicast_bridge_s_g_hit(bit<16> mc_index) { - meta.intrinsic_metadata.mcast_grp = mc_index; - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.fabric_metadata.dst_device = 8w127; + meta.intrinsic_metadata.mcast_grp = (bit<16>)mc_index; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.fabric_metadata.dst_device = (bit<8>)8w127; } @name(".outer_multicast_route_sm_star_g_hit") action outer_multicast_route_sm_star_g_hit(bit<16> mc_index, bit<16> mcast_rpf_group) { - meta.multicast_metadata.outer_mcast_mode = 2w1; - meta.intrinsic_metadata.mcast_grp = mc_index; - meta.multicast_metadata.outer_mcast_route_hit = 1w1; - meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group; - meta.fabric_metadata.dst_device = 8w127; + meta.multicast_metadata.outer_mcast_mode = (bit<2>)2w1; + meta.intrinsic_metadata.mcast_grp = (bit<16>)mc_index; + meta.multicast_metadata.outer_mcast_route_hit = (bit<1>)1w1; + meta.multicast_metadata.mcast_rpf_group = (bit<16>)(mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group); + meta.fabric_metadata.dst_device = (bit<8>)8w127; } @name(".outer_multicast_route_bidir_star_g_hit") action outer_multicast_route_bidir_star_g_hit(bit<16> mc_index, bit<16> mcast_rpf_group) { - meta.multicast_metadata.outer_mcast_mode = 2w2; - meta.intrinsic_metadata.mcast_grp = mc_index; - meta.multicast_metadata.outer_mcast_route_hit = 1w1; - meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group | meta.multicast_metadata.bd_mrpf_group; - meta.fabric_metadata.dst_device = 8w127; + meta.multicast_metadata.outer_mcast_mode = (bit<2>)2w2; + meta.intrinsic_metadata.mcast_grp = (bit<16>)mc_index; + meta.multicast_metadata.outer_mcast_route_hit = (bit<1>)1w1; + meta.multicast_metadata.mcast_rpf_group = (bit<16>)(mcast_rpf_group | meta.multicast_metadata.bd_mrpf_group); + meta.fabric_metadata.dst_device = (bit<8>)8w127; } @name(".outer_multicast_bridge_star_g_hit") action outer_multicast_bridge_star_g_hit(bit<16> mc_index) { - meta.intrinsic_metadata.mcast_grp = mc_index; - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.fabric_metadata.dst_device = 8w127; + meta.intrinsic_metadata.mcast_grp = (bit<16>)mc_index; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.fabric_metadata.dst_device = (bit<8>)8w127; } @name("outer_ipv6_multicast") table outer_ipv6_multicast { actions = { @@ -4063,114 +4063,114 @@ control process_tunnel(inout headers hdr, inout metadata meta, inout standard_me @name(".on_miss") action on_miss() { } @name(".outer_rmac_hit") action outer_rmac_hit() { - meta.l3_metadata.rmac_hit = 1w1; + meta.l3_metadata.rmac_hit = (bit<1>)1w1; } @name(".nop") action nop() { } @name(".tunnel_lookup_miss") action tunnel_lookup_miss() { } @name(".terminate_tunnel_inner_non_ip") action terminate_tunnel_inner_non_ip(bit<16> bd, bit<16> bd_label, bit<16> stats_idx) { - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.ingress_metadata.bd = bd; - meta.acl_metadata.bd_label = bd_label; - meta.l2_metadata.bd_stats_idx = stats_idx; - meta.l3_metadata.lkp_ip_type = 2w0; - meta.l2_metadata.lkp_mac_type = hdr.inner_ethernet.etherType; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.ingress_metadata.bd = (bit<16>)bd; + meta.acl_metadata.bd_label = (bit<16>)bd_label; + meta.l2_metadata.bd_stats_idx = (bit<16>)stats_idx; + meta.l3_metadata.lkp_ip_type = (bit<2>)2w0; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.inner_ethernet.etherType; } @name(".terminate_tunnel_inner_ethernet_ipv4") action terminate_tunnel_inner_ethernet_ipv4(bit<16> bd, bit<16> vrf, bit<10> rmac_group, bit<16> bd_label, bit<1> ipv4_unicast_enabled, bit<2> ipv4_urpf_mode, bit<1> igmp_snooping_enabled, bit<16> stats_idx, bit<1> ipv4_multicast_enabled, bit<16> mrpf_group) { - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.ingress_metadata.bd = bd; - meta.l3_metadata.vrf = vrf; - meta.qos_metadata.outer_dscp = meta.l3_metadata.lkp_ip_tc; - meta.ipv4_metadata.ipv4_unicast_enabled = ipv4_unicast_enabled; - meta.ipv4_metadata.ipv4_urpf_mode = ipv4_urpf_mode; - meta.l3_metadata.rmac_group = rmac_group; - meta.acl_metadata.bd_label = bd_label; - meta.l2_metadata.bd_stats_idx = stats_idx; - meta.l3_metadata.lkp_ip_type = 2w1; - meta.l2_metadata.lkp_mac_type = hdr.inner_ethernet.etherType; - meta.l3_metadata.lkp_ip_version = hdr.inner_ipv4.version; - meta.l3_metadata.lkp_ip_tc = hdr.inner_ipv4.diffserv; - meta.multicast_metadata.igmp_snooping_enabled = igmp_snooping_enabled; - meta.multicast_metadata.ipv4_multicast_enabled = ipv4_multicast_enabled; - meta.multicast_metadata.bd_mrpf_group = mrpf_group; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.ingress_metadata.bd = (bit<16>)bd; + meta.l3_metadata.vrf = (bit<16>)vrf; + meta.qos_metadata.outer_dscp = (bit<8>)meta.l3_metadata.lkp_ip_tc; + meta.ipv4_metadata.ipv4_unicast_enabled = (bit<1>)ipv4_unicast_enabled; + meta.ipv4_metadata.ipv4_urpf_mode = (bit<2>)ipv4_urpf_mode; + meta.l3_metadata.rmac_group = (bit<10>)rmac_group; + meta.acl_metadata.bd_label = (bit<16>)bd_label; + meta.l2_metadata.bd_stats_idx = (bit<16>)stats_idx; + meta.l3_metadata.lkp_ip_type = (bit<2>)2w1; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.inner_ethernet.etherType; + meta.l3_metadata.lkp_ip_version = (bit<4>)hdr.inner_ipv4.version; + meta.l3_metadata.lkp_ip_tc = (bit<8>)hdr.inner_ipv4.diffserv; + meta.multicast_metadata.igmp_snooping_enabled = (bit<1>)igmp_snooping_enabled; + meta.multicast_metadata.ipv4_multicast_enabled = (bit<1>)ipv4_multicast_enabled; + meta.multicast_metadata.bd_mrpf_group = (bit<16>)mrpf_group; } @name(".terminate_tunnel_inner_ipv4") action terminate_tunnel_inner_ipv4(bit<16> vrf, bit<10> rmac_group, bit<2> ipv4_urpf_mode, bit<1> ipv4_unicast_enabled, bit<1> ipv4_multicast_enabled, bit<16> mrpf_group) { - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.l3_metadata.vrf = vrf; - meta.qos_metadata.outer_dscp = meta.l3_metadata.lkp_ip_tc; - meta.ipv4_metadata.ipv4_unicast_enabled = ipv4_unicast_enabled; - meta.ipv4_metadata.ipv4_urpf_mode = ipv4_urpf_mode; - meta.l3_metadata.rmac_group = rmac_group; - meta.l2_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.l3_metadata.lkp_ip_type = 2w1; - meta.l3_metadata.lkp_ip_version = hdr.inner_ipv4.version; - meta.l3_metadata.lkp_ip_tc = hdr.inner_ipv4.diffserv; - meta.multicast_metadata.bd_mrpf_group = mrpf_group; - meta.multicast_metadata.ipv4_multicast_enabled = ipv4_multicast_enabled; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.l3_metadata.vrf = (bit<16>)vrf; + meta.qos_metadata.outer_dscp = (bit<8>)meta.l3_metadata.lkp_ip_tc; + meta.ipv4_metadata.ipv4_unicast_enabled = (bit<1>)ipv4_unicast_enabled; + meta.ipv4_metadata.ipv4_urpf_mode = (bit<2>)ipv4_urpf_mode; + meta.l3_metadata.rmac_group = (bit<10>)rmac_group; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.l3_metadata.lkp_ip_type = (bit<2>)2w1; + meta.l3_metadata.lkp_ip_version = (bit<4>)hdr.inner_ipv4.version; + meta.l3_metadata.lkp_ip_tc = (bit<8>)hdr.inner_ipv4.diffserv; + meta.multicast_metadata.bd_mrpf_group = (bit<16>)mrpf_group; + meta.multicast_metadata.ipv4_multicast_enabled = (bit<1>)ipv4_multicast_enabled; } @name(".terminate_tunnel_inner_ethernet_ipv6") action terminate_tunnel_inner_ethernet_ipv6(bit<16> bd, bit<16> vrf, bit<10> rmac_group, bit<16> bd_label, bit<1> ipv6_unicast_enabled, bit<2> ipv6_urpf_mode, bit<1> mld_snooping_enabled, bit<16> stats_idx, bit<1> ipv6_multicast_enabled, bit<16> mrpf_group) { - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.ingress_metadata.bd = bd; - meta.l3_metadata.vrf = vrf; - meta.qos_metadata.outer_dscp = meta.l3_metadata.lkp_ip_tc; - meta.ipv6_metadata.ipv6_unicast_enabled = ipv6_unicast_enabled; - meta.ipv6_metadata.ipv6_urpf_mode = ipv6_urpf_mode; - meta.l3_metadata.rmac_group = rmac_group; - meta.acl_metadata.bd_label = bd_label; - meta.l2_metadata.bd_stats_idx = stats_idx; - meta.l3_metadata.lkp_ip_type = 2w2; - meta.l2_metadata.lkp_mac_type = hdr.inner_ethernet.etherType; - meta.l3_metadata.lkp_ip_version = hdr.inner_ipv6.version; - meta.l3_metadata.lkp_ip_tc = hdr.inner_ipv6.trafficClass; - meta.multicast_metadata.bd_mrpf_group = mrpf_group; - meta.multicast_metadata.ipv6_multicast_enabled = ipv6_multicast_enabled; - meta.multicast_metadata.mld_snooping_enabled = mld_snooping_enabled; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.ingress_metadata.bd = (bit<16>)bd; + meta.l3_metadata.vrf = (bit<16>)vrf; + meta.qos_metadata.outer_dscp = (bit<8>)meta.l3_metadata.lkp_ip_tc; + meta.ipv6_metadata.ipv6_unicast_enabled = (bit<1>)ipv6_unicast_enabled; + meta.ipv6_metadata.ipv6_urpf_mode = (bit<2>)ipv6_urpf_mode; + meta.l3_metadata.rmac_group = (bit<10>)rmac_group; + meta.acl_metadata.bd_label = (bit<16>)bd_label; + meta.l2_metadata.bd_stats_idx = (bit<16>)stats_idx; + meta.l3_metadata.lkp_ip_type = (bit<2>)2w2; + meta.l2_metadata.lkp_mac_type = (bit<16>)hdr.inner_ethernet.etherType; + meta.l3_metadata.lkp_ip_version = (bit<4>)hdr.inner_ipv6.version; + meta.l3_metadata.lkp_ip_tc = (bit<8>)hdr.inner_ipv6.trafficClass; + meta.multicast_metadata.bd_mrpf_group = (bit<16>)mrpf_group; + meta.multicast_metadata.ipv6_multicast_enabled = (bit<1>)ipv6_multicast_enabled; + meta.multicast_metadata.mld_snooping_enabled = (bit<1>)mld_snooping_enabled; } @name(".terminate_tunnel_inner_ipv6") action terminate_tunnel_inner_ipv6(bit<16> vrf, bit<10> rmac_group, bit<1> ipv6_unicast_enabled, bit<2> ipv6_urpf_mode, bit<1> ipv6_multicast_enabled, bit<16> mrpf_group) { - meta.tunnel_metadata.tunnel_terminate = 1w1; - meta.l3_metadata.vrf = vrf; - meta.qos_metadata.outer_dscp = meta.l3_metadata.lkp_ip_tc; - meta.ipv6_metadata.ipv6_unicast_enabled = ipv6_unicast_enabled; - meta.ipv6_metadata.ipv6_urpf_mode = ipv6_urpf_mode; - meta.l3_metadata.rmac_group = rmac_group; - meta.l2_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.l3_metadata.lkp_ip_type = 2w2; - meta.ipv6_metadata.lkp_ipv6_sa = hdr.inner_ipv6.srcAddr; - meta.ipv6_metadata.lkp_ipv6_da = hdr.inner_ipv6.dstAddr; - meta.l3_metadata.lkp_ip_version = hdr.inner_ipv6.version; - meta.l3_metadata.lkp_ip_tc = hdr.inner_ipv6.trafficClass; - meta.multicast_metadata.bd_mrpf_group = mrpf_group; - meta.multicast_metadata.ipv6_multicast_enabled = ipv6_multicast_enabled; + meta.tunnel_metadata.tunnel_terminate = (bit<1>)1w1; + meta.l3_metadata.vrf = (bit<16>)vrf; + meta.qos_metadata.outer_dscp = (bit<8>)meta.l3_metadata.lkp_ip_tc; + meta.ipv6_metadata.ipv6_unicast_enabled = (bit<1>)ipv6_unicast_enabled; + meta.ipv6_metadata.ipv6_urpf_mode = (bit<2>)ipv6_urpf_mode; + meta.l3_metadata.rmac_group = (bit<10>)rmac_group; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.l3_metadata.lkp_ip_type = (bit<2>)2w2; + meta.ipv6_metadata.lkp_ipv6_sa = (bit<128>)hdr.inner_ipv6.srcAddr; + meta.ipv6_metadata.lkp_ipv6_da = (bit<128>)hdr.inner_ipv6.dstAddr; + meta.l3_metadata.lkp_ip_version = (bit<4>)hdr.inner_ipv6.version; + meta.l3_metadata.lkp_ip_tc = (bit<8>)hdr.inner_ipv6.trafficClass; + meta.multicast_metadata.bd_mrpf_group = (bit<16>)mrpf_group; + meta.multicast_metadata.ipv6_multicast_enabled = (bit<1>)ipv6_multicast_enabled; } @name(".non_ip_tunnel_lookup_miss") action non_ip_tunnel_lookup_miss() { - meta.l2_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.intrinsic_metadata.mcast_grp = 16w0; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.intrinsic_metadata.mcast_grp = (bit<16>)16w0; } @name(".ipv4_tunnel_lookup_miss") action ipv4_tunnel_lookup_miss() { - meta.l2_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.ipv4_metadata.lkp_ipv4_sa = hdr.ipv4.srcAddr; - meta.ipv4_metadata.lkp_ipv4_da = hdr.ipv4.dstAddr; - meta.l3_metadata.lkp_ip_proto = hdr.ipv4.protocol; - meta.l3_metadata.lkp_ip_ttl = hdr.ipv4.ttl; - meta.l3_metadata.lkp_l4_sport = meta.l3_metadata.lkp_outer_l4_sport; - meta.l3_metadata.lkp_l4_dport = meta.l3_metadata.lkp_outer_l4_dport; - meta.intrinsic_metadata.mcast_grp = 16w0; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.ipv4_metadata.lkp_ipv4_sa = (bit<32>)hdr.ipv4.srcAddr; + meta.ipv4_metadata.lkp_ipv4_da = (bit<32>)hdr.ipv4.dstAddr; + meta.l3_metadata.lkp_ip_proto = (bit<8>)hdr.ipv4.protocol; + meta.l3_metadata.lkp_ip_ttl = (bit<8>)hdr.ipv4.ttl; + meta.l3_metadata.lkp_l4_sport = (bit<16>)meta.l3_metadata.lkp_outer_l4_sport; + meta.l3_metadata.lkp_l4_dport = (bit<16>)meta.l3_metadata.lkp_outer_l4_dport; + meta.intrinsic_metadata.mcast_grp = (bit<16>)16w0; } @name(".ipv6_tunnel_lookup_miss") action ipv6_tunnel_lookup_miss() { - meta.l2_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.l2_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.ipv6_metadata.lkp_ipv6_sa = hdr.ipv6.srcAddr; - meta.ipv6_metadata.lkp_ipv6_da = hdr.ipv6.dstAddr; - meta.l3_metadata.lkp_ip_proto = hdr.ipv6.nextHdr; - meta.l3_metadata.lkp_ip_ttl = hdr.ipv6.hopLimit; - meta.l3_metadata.lkp_l4_sport = meta.l3_metadata.lkp_outer_l4_sport; - meta.l3_metadata.lkp_l4_dport = meta.l3_metadata.lkp_outer_l4_dport; - meta.intrinsic_metadata.mcast_grp = 16w0; + meta.l2_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.l2_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.ipv6_metadata.lkp_ipv6_sa = (bit<128>)hdr.ipv6.srcAddr; + meta.ipv6_metadata.lkp_ipv6_da = (bit<128>)hdr.ipv6.dstAddr; + meta.l3_metadata.lkp_ip_proto = (bit<8>)hdr.ipv6.nextHdr; + meta.l3_metadata.lkp_ip_ttl = (bit<8>)hdr.ipv6.hopLimit; + meta.l3_metadata.lkp_l4_sport = (bit<16>)meta.l3_metadata.lkp_outer_l4_sport; + meta.l3_metadata.lkp_l4_dport = (bit<16>)meta.l3_metadata.lkp_outer_l4_dport; + meta.intrinsic_metadata.mcast_grp = (bit<16>)16w0; } @name("outer_rmac") table outer_rmac { actions = { @@ -4280,21 +4280,21 @@ control process_ingress_sflow(inout headers hdr, inout metadata meta, inout stan @name(".nop") action nop() { } @name(".sflow_ing_pkt_to_cpu") action sflow_ing_pkt_to_cpu(bit<32> sflow_i2e_mirror_id, bit<16> reason_code) { - meta.fabric_metadata.reason_code = reason_code; - meta.i2e_metadata.mirror_session_id = sflow_i2e_mirror_id; + meta.fabric_metadata.reason_code = (bit<16>)reason_code; + meta.i2e_metadata.mirror_session_id = (bit<16>)sflow_i2e_mirror_id; clone3(CloneType.I2E, (bit<32>)sflow_i2e_mirror_id, { { meta.ingress_metadata.bd, meta.ingress_metadata.ifindex, meta.fabric_metadata.reason_code, meta.ingress_metadata.ingress_port }, meta.sflow_metadata.sflow_session_id, meta.i2e_metadata.mirror_session_id }); } @name(".sflow_ing_session_enable") action sflow_ing_session_enable(bit<32> rate_thr, bit<16> session_id) { - meta.ingress_metadata.sflow_take_sample = rate_thr + meta.ingress_metadata.sflow_take_sample; - meta.sflow_metadata.sflow_session_id = session_id; + meta.ingress_metadata.sflow_take_sample = (bit<32>)(rate_thr + meta.ingress_metadata.sflow_take_sample); + meta.sflow_metadata.sflow_session_id = (bit<16>)session_id; } @name(".nop") action nop_1() { sflow_ingress_session_pkt_counter.count(); } @name(".sflow_ing_pkt_to_cpu") action sflow_ing_pkt_to_cpu_0(bit<32> sflow_i2e_mirror_id, bit<16> reason_code) { sflow_ingress_session_pkt_counter.count(); - meta.fabric_metadata.reason_code = reason_code; - meta.i2e_metadata.mirror_session_id = sflow_i2e_mirror_id; + meta.fabric_metadata.reason_code = (bit<16>)reason_code; + meta.i2e_metadata.mirror_session_id = (bit<16>)sflow_i2e_mirror_id; clone3(CloneType.I2E, (bit<32>)sflow_i2e_mirror_id, { { meta.ingress_metadata.bd, meta.ingress_metadata.ifindex, meta.fabric_metadata.reason_code, meta.ingress_metadata.ingress_port }, meta.sflow_metadata.sflow_session_id, meta.i2e_metadata.mirror_session_id }); } @name("sflow_ing_take_sample") table sflow_ing_take_sample { @@ -4337,7 +4337,7 @@ control process_storm_control(inout headers hdr, inout metadata meta, inout stan } @name(".set_storm_control_meter") action set_storm_control_meter(bit<16> meter_idx) { storm_control_meter.execute_meter((bit<32>)meter_idx, meta.meter_metadata.meter_color); - meta.meter_metadata.meter_index = meter_idx; + meta.meter_metadata.meter_index = (bit<16>)meter_idx; } @name("storm_control") table storm_control { actions = { @@ -4363,28 +4363,28 @@ control process_validate_packet(inout headers hdr, inout metadata meta, inout st @name(".nop") action nop() { } @name(".set_unicast") action set_unicast() { - meta.l2_metadata.lkp_pkt_type = 3w1; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w1; } @name(".set_unicast_and_ipv6_src_is_link_local") action set_unicast_and_ipv6_src_is_link_local() { - meta.l2_metadata.lkp_pkt_type = 3w1; - meta.ipv6_metadata.ipv6_src_is_link_local = 1w1; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w1; + meta.ipv6_metadata.ipv6_src_is_link_local = (bit<1>)1w1; } @name(".set_multicast") action set_multicast() { - meta.l2_metadata.lkp_pkt_type = 3w2; - meta.l2_metadata.bd_stats_idx = meta.l2_metadata.bd_stats_idx + 16w1; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w2; + meta.l2_metadata.bd_stats_idx = (bit<16>)(meta.l2_metadata.bd_stats_idx + 16w1); } @name(".set_multicast_and_ipv6_src_is_link_local") action set_multicast_and_ipv6_src_is_link_local() { - meta.l2_metadata.lkp_pkt_type = 3w2; - meta.ipv6_metadata.ipv6_src_is_link_local = 1w1; - meta.l2_metadata.bd_stats_idx = meta.l2_metadata.bd_stats_idx + 16w1; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w2; + meta.ipv6_metadata.ipv6_src_is_link_local = (bit<1>)1w1; + meta.l2_metadata.bd_stats_idx = (bit<16>)(meta.l2_metadata.bd_stats_idx + 16w1); } @name(".set_broadcast") action set_broadcast() { - meta.l2_metadata.lkp_pkt_type = 3w4; - meta.l2_metadata.bd_stats_idx = meta.l2_metadata.bd_stats_idx + 16w2; + meta.l2_metadata.lkp_pkt_type = (bit<3>)3w4; + meta.l2_metadata.bd_stats_idx = (bit<16>)(meta.l2_metadata.bd_stats_idx + 16w2); } @name(".set_malformed_packet") action set_malformed_packet(bit<8> drop_reason) { - meta.ingress_metadata.drop_flag = 1w1; - meta.ingress_metadata.drop_reason = drop_reason; + meta.ingress_metadata.drop_flag = (bit<1>)1w1; + meta.ingress_metadata.drop_reason = (bit<8>)drop_reason; } @name("validate_packet") table validate_packet { actions = { @@ -4420,35 +4420,35 @@ control process_mac(inout headers hdr, inout metadata meta, inout standard_metad @name(".nop") action nop() { } @name(".dmac_hit") action dmac_hit(bit<16> ifindex) { - meta.ingress_metadata.egress_ifindex = ifindex; - meta.l2_metadata.same_if_check = meta.l2_metadata.same_if_check ^ ifindex; + meta.ingress_metadata.egress_ifindex = (bit<16>)ifindex; + meta.l2_metadata.same_if_check = (bit<16>)(meta.l2_metadata.same_if_check ^ ifindex); } @name(".dmac_multicast_hit") action dmac_multicast_hit(bit<16> mc_index) { - meta.intrinsic_metadata.mcast_grp = mc_index; - meta.fabric_metadata.dst_device = 8w127; + meta.intrinsic_metadata.mcast_grp = (bit<16>)mc_index; + meta.fabric_metadata.dst_device = (bit<8>)8w127; } @name(".dmac_miss") action dmac_miss() { - meta.ingress_metadata.egress_ifindex = 16w65535; - meta.fabric_metadata.dst_device = 8w127; + meta.ingress_metadata.egress_ifindex = (bit<16>)16w65535; + meta.fabric_metadata.dst_device = (bit<8>)8w127; } @name(".dmac_redirect_nexthop") action dmac_redirect_nexthop(bit<16> nexthop_index) { - meta.l2_metadata.l2_redirect = 1w1; - meta.l2_metadata.l2_nexthop = nexthop_index; - meta.l2_metadata.l2_nexthop_type = 1w0; + meta.l2_metadata.l2_redirect = (bit<1>)1w1; + meta.l2_metadata.l2_nexthop = (bit<16>)nexthop_index; + meta.l2_metadata.l2_nexthop_type = (bit<1>)1w0; } @name(".dmac_redirect_ecmp") action dmac_redirect_ecmp(bit<16> ecmp_index) { - meta.l2_metadata.l2_redirect = 1w1; - meta.l2_metadata.l2_nexthop = ecmp_index; - meta.l2_metadata.l2_nexthop_type = 1w1; + meta.l2_metadata.l2_redirect = (bit<1>)1w1; + meta.l2_metadata.l2_nexthop = (bit<16>)ecmp_index; + meta.l2_metadata.l2_nexthop_type = (bit<1>)1w1; } @name(".dmac_drop") action dmac_drop() { mark_to_drop(); } @name(".smac_miss") action smac_miss() { - meta.l2_metadata.l2_src_miss = 1w1; + meta.l2_metadata.l2_src_miss = (bit<1>)1w1; } @name(".smac_hit") action smac_hit(bit<16> ifindex) { - meta.l2_metadata.l2_src_move = meta.ingress_metadata.ifindex ^ ifindex; + meta.l2_metadata.l2_src_move = (bit<16>)(meta.ingress_metadata.ifindex ^ ifindex); } @name("dmac") table dmac { support_timeout = true; @@ -4497,42 +4497,42 @@ control process_mac_acl(inout headers hdr, inout metadata meta, inout standard_m @name(".nop") action nop() { } @name(".acl_deny") action acl_deny(bit<14> acl_stats_index, bit<16> acl_meter_index, bit<1> acl_copy, bit<16> acl_copy_reason) { - meta.acl_metadata.acl_deny = 1w1; - meta.acl_metadata.acl_stats_index = acl_stats_index; - meta.meter_metadata.meter_index = acl_meter_index; - meta.acl_metadata.acl_copy = acl_copy; - meta.fabric_metadata.reason_code = acl_copy_reason; + meta.acl_metadata.acl_deny = (bit<1>)1w1; + meta.acl_metadata.acl_stats_index = (bit<14>)acl_stats_index; + meta.meter_metadata.meter_index = (bit<16>)acl_meter_index; + meta.acl_metadata.acl_copy = (bit<1>)acl_copy; + meta.fabric_metadata.reason_code = (bit<16>)acl_copy_reason; } @name(".acl_permit") action acl_permit(bit<14> acl_stats_index, bit<16> acl_meter_index, bit<1> acl_copy, bit<16> acl_copy_reason) { - meta.acl_metadata.acl_stats_index = acl_stats_index; - meta.meter_metadata.meter_index = acl_meter_index; - meta.acl_metadata.acl_copy = acl_copy; - meta.fabric_metadata.reason_code = acl_copy_reason; + meta.acl_metadata.acl_stats_index = (bit<14>)acl_stats_index; + meta.meter_metadata.meter_index = (bit<16>)acl_meter_index; + meta.acl_metadata.acl_copy = (bit<1>)acl_copy; + meta.fabric_metadata.reason_code = (bit<16>)acl_copy_reason; } @name(".acl_mirror") action acl_mirror(bit<32> session_id, bit<14> acl_stats_index, bit<16> acl_meter_index) { - meta.i2e_metadata.mirror_session_id = session_id; - meta.i2e_metadata.ingress_tstamp = meta.intrinsic_metadata.ingress_global_tstamp; + meta.i2e_metadata.mirror_session_id = (bit<16>)session_id; + meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; clone3(CloneType.I2E, (bit<32>)session_id, { meta.i2e_metadata.ingress_tstamp, meta.i2e_metadata.mirror_session_id }); - meta.acl_metadata.acl_stats_index = acl_stats_index; - meta.meter_metadata.meter_index = acl_meter_index; + meta.acl_metadata.acl_stats_index = (bit<14>)acl_stats_index; + meta.meter_metadata.meter_index = (bit<16>)acl_meter_index; } @name(".acl_redirect_nexthop") action acl_redirect_nexthop(bit<16> nexthop_index, bit<14> acl_stats_index, bit<16> acl_meter_index, bit<1> acl_copy, bit<16> acl_copy_reason) { - meta.acl_metadata.acl_redirect = 1w1; - meta.acl_metadata.acl_nexthop = nexthop_index; - meta.acl_metadata.acl_nexthop_type = 1w0; - meta.acl_metadata.acl_stats_index = acl_stats_index; - meta.meter_metadata.meter_index = acl_meter_index; - meta.acl_metadata.acl_copy = acl_copy; - meta.fabric_metadata.reason_code = acl_copy_reason; + meta.acl_metadata.acl_redirect = (bit<1>)1w1; + meta.acl_metadata.acl_nexthop = (bit<16>)nexthop_index; + meta.acl_metadata.acl_nexthop_type = (bit<1>)1w0; + meta.acl_metadata.acl_stats_index = (bit<14>)acl_stats_index; + meta.meter_metadata.meter_index = (bit<16>)acl_meter_index; + meta.acl_metadata.acl_copy = (bit<1>)acl_copy; + meta.fabric_metadata.reason_code = (bit<16>)acl_copy_reason; } @name(".acl_redirect_ecmp") action acl_redirect_ecmp(bit<16> ecmp_index, bit<14> acl_stats_index, bit<16> acl_meter_index, bit<1> acl_copy, bit<16> acl_copy_reason) { - meta.acl_metadata.acl_redirect = 1w1; - meta.acl_metadata.acl_nexthop = ecmp_index; - meta.acl_metadata.acl_nexthop_type = 1w1; - meta.acl_metadata.acl_stats_index = acl_stats_index; - meta.meter_metadata.meter_index = acl_meter_index; - meta.acl_metadata.acl_copy = acl_copy; - meta.fabric_metadata.reason_code = acl_copy_reason; + meta.acl_metadata.acl_redirect = (bit<1>)1w1; + meta.acl_metadata.acl_nexthop = (bit<16>)ecmp_index; + meta.acl_metadata.acl_nexthop_type = (bit<1>)1w1; + meta.acl_metadata.acl_stats_index = (bit<14>)acl_stats_index; + meta.meter_metadata.meter_index = (bit<16>)acl_meter_index; + meta.acl_metadata.acl_copy = (bit<1>)acl_copy; + meta.fabric_metadata.reason_code = (bit<16>)acl_copy_reason; } @name("mac_acl") table mac_acl { actions = { @@ -4565,42 +4565,42 @@ control process_ip_acl(inout headers hdr, inout metadata meta, inout standard_me @name(".nop") action nop() { } @name(".acl_deny") action acl_deny(bit<14> acl_stats_index, bit<16> acl_meter_index, bit<1> acl_copy, bit<16> acl_copy_reason) { - meta.acl_metadata.acl_deny = 1w1; - meta.acl_metadata.acl_stats_index = acl_stats_index; - meta.meter_metadata.meter_index = acl_meter_index; - meta.acl_metadata.acl_copy = acl_copy; - meta.fabric_metadata.reason_code = acl_copy_reason; + meta.acl_metadata.acl_deny = (bit<1>)1w1; + meta.acl_metadata.acl_stats_index = (bit<14>)acl_stats_index; + meta.meter_metadata.meter_index = (bit<16>)acl_meter_index; + meta.acl_metadata.acl_copy = (bit<1>)acl_copy; + meta.fabric_metadata.reason_code = (bit<16>)acl_copy_reason; } @name(".acl_permit") action acl_permit(bit<14> acl_stats_index, bit<16> acl_meter_index, bit<1> acl_copy, bit<16> acl_copy_reason) { - meta.acl_metadata.acl_stats_index = acl_stats_index; - meta.meter_metadata.meter_index = acl_meter_index; - meta.acl_metadata.acl_copy = acl_copy; - meta.fabric_metadata.reason_code = acl_copy_reason; + meta.acl_metadata.acl_stats_index = (bit<14>)acl_stats_index; + meta.meter_metadata.meter_index = (bit<16>)acl_meter_index; + meta.acl_metadata.acl_copy = (bit<1>)acl_copy; + meta.fabric_metadata.reason_code = (bit<16>)acl_copy_reason; } @name(".acl_mirror") action acl_mirror(bit<32> session_id, bit<14> acl_stats_index, bit<16> acl_meter_index) { - meta.i2e_metadata.mirror_session_id = session_id; - meta.i2e_metadata.ingress_tstamp = meta.intrinsic_metadata.ingress_global_tstamp; + meta.i2e_metadata.mirror_session_id = (bit<16>)session_id; + meta.i2e_metadata.ingress_tstamp = (bit<32>)meta.intrinsic_metadata.ingress_global_tstamp; clone3(CloneType.I2E, (bit<32>)session_id, { meta.i2e_metadata.ingress_tstamp, meta.i2e_metadata.mirror_session_id }); - meta.acl_metadata.acl_stats_index = acl_stats_index; - meta.meter_metadata.meter_index = acl_meter_index; + meta.acl_metadata.acl_stats_index = (bit<14>)acl_stats_index; + meta.meter_metadata.meter_index = (bit<16>)acl_meter_index; } @name(".acl_redirect_nexthop") action acl_redirect_nexthop(bit<16> nexthop_index, bit<14> acl_stats_index, bit<16> acl_meter_index, bit<1> acl_copy, bit<16> acl_copy_reason) { - meta.acl_metadata.acl_redirect = 1w1; - meta.acl_metadata.acl_nexthop = nexthop_index; - meta.acl_metadata.acl_nexthop_type = 1w0; - meta.acl_metadata.acl_stats_index = acl_stats_index; - meta.meter_metadata.meter_index = acl_meter_index; - meta.acl_metadata.acl_copy = acl_copy; - meta.fabric_metadata.reason_code = acl_copy_reason; + meta.acl_metadata.acl_redirect = (bit<1>)1w1; + meta.acl_metadata.acl_nexthop = (bit<16>)nexthop_index; + meta.acl_metadata.acl_nexthop_type = (bit<1>)1w0; + meta.acl_metadata.acl_stats_index = (bit<14>)acl_stats_index; + meta.meter_metadata.meter_index = (bit<16>)acl_meter_index; + meta.acl_metadata.acl_copy = (bit<1>)acl_copy; + meta.fabric_metadata.reason_code = (bit<16>)acl_copy_reason; } @name(".acl_redirect_ecmp") action acl_redirect_ecmp(bit<16> ecmp_index, bit<14> acl_stats_index, bit<16> acl_meter_index, bit<1> acl_copy, bit<16> acl_copy_reason) { - meta.acl_metadata.acl_redirect = 1w1; - meta.acl_metadata.acl_nexthop = ecmp_index; - meta.acl_metadata.acl_nexthop_type = 1w1; - meta.acl_metadata.acl_stats_index = acl_stats_index; - meta.meter_metadata.meter_index = acl_meter_index; - meta.acl_metadata.acl_copy = acl_copy; - meta.fabric_metadata.reason_code = acl_copy_reason; + meta.acl_metadata.acl_redirect = (bit<1>)1w1; + meta.acl_metadata.acl_nexthop = (bit<16>)ecmp_index; + meta.acl_metadata.acl_nexthop_type = (bit<1>)1w1; + meta.acl_metadata.acl_stats_index = (bit<14>)acl_stats_index; + meta.meter_metadata.meter_index = (bit<16>)acl_meter_index; + meta.acl_metadata.acl_copy = (bit<1>)acl_copy; + meta.fabric_metadata.reason_code = (bit<16>)acl_copy_reason; } @name("ip_acl") table ip_acl { actions = { @@ -4668,13 +4668,13 @@ control process_qos(inout headers hdr, inout metadata meta, inout standard_metad @name(".nop") action nop() { } @name(".apply_cos_marking") action apply_cos_marking(bit<3> cos) { - meta.qos_metadata.marked_cos = cos; + meta.qos_metadata.marked_cos = (bit<3>)cos; } @name(".apply_dscp_marking") action apply_dscp_marking(bit<8> dscp) { - meta.qos_metadata.marked_dscp = dscp; + meta.qos_metadata.marked_dscp = (bit<8>)dscp; } @name(".apply_tc_marking") action apply_tc_marking(bit<3> tc) { - meta.qos_metadata.marked_exp = tc; + meta.qos_metadata.marked_exp = (bit<3>)tc; } @name("qos") table qos { actions = { @@ -4705,31 +4705,31 @@ control process_ipv4_racl(inout headers hdr, inout metadata meta, inout standard @name(".nop") action nop() { } @name(".racl_deny") action racl_deny(bit<14> acl_stats_index, bit<1> acl_copy, bit<16> acl_copy_reason) { - meta.acl_metadata.racl_deny = 1w1; - meta.acl_metadata.acl_stats_index = acl_stats_index; - meta.acl_metadata.acl_copy = acl_copy; - meta.fabric_metadata.reason_code = acl_copy_reason; + meta.acl_metadata.racl_deny = (bit<1>)1w1; + meta.acl_metadata.acl_stats_index = (bit<14>)acl_stats_index; + meta.acl_metadata.acl_copy = (bit<1>)acl_copy; + meta.fabric_metadata.reason_code = (bit<16>)acl_copy_reason; } @name(".racl_permit") action racl_permit(bit<14> acl_stats_index, bit<1> acl_copy, bit<16> acl_copy_reason) { - meta.acl_metadata.acl_stats_index = acl_stats_index; - meta.acl_metadata.acl_copy = acl_copy; - meta.fabric_metadata.reason_code = acl_copy_reason; + meta.acl_metadata.acl_stats_index = (bit<14>)acl_stats_index; + meta.acl_metadata.acl_copy = (bit<1>)acl_copy; + meta.fabric_metadata.reason_code = (bit<16>)acl_copy_reason; } @name(".racl_redirect_nexthop") action racl_redirect_nexthop(bit<16> nexthop_index, bit<14> acl_stats_index, bit<1> acl_copy, bit<16> acl_copy_reason) { - meta.acl_metadata.racl_redirect = 1w1; - meta.acl_metadata.racl_nexthop = nexthop_index; - meta.acl_metadata.racl_nexthop_type = 1w0; - meta.acl_metadata.acl_stats_index = acl_stats_index; - meta.acl_metadata.acl_copy = acl_copy; - meta.fabric_metadata.reason_code = acl_copy_reason; + meta.acl_metadata.racl_redirect = (bit<1>)1w1; + meta.acl_metadata.racl_nexthop = (bit<16>)nexthop_index; + meta.acl_metadata.racl_nexthop_type = (bit<1>)1w0; + meta.acl_metadata.acl_stats_index = (bit<14>)acl_stats_index; + meta.acl_metadata.acl_copy = (bit<1>)acl_copy; + meta.fabric_metadata.reason_code = (bit<16>)acl_copy_reason; } @name(".racl_redirect_ecmp") action racl_redirect_ecmp(bit<16> ecmp_index, bit<14> acl_stats_index, bit<1> acl_copy, bit<16> acl_copy_reason) { - meta.acl_metadata.racl_redirect = 1w1; - meta.acl_metadata.racl_nexthop = ecmp_index; - meta.acl_metadata.racl_nexthop_type = 1w1; - meta.acl_metadata.acl_stats_index = acl_stats_index; - meta.acl_metadata.acl_copy = acl_copy; - meta.fabric_metadata.reason_code = acl_copy_reason; + meta.acl_metadata.racl_redirect = (bit<1>)1w1; + meta.acl_metadata.racl_nexthop = (bit<16>)ecmp_index; + meta.acl_metadata.racl_nexthop_type = (bit<1>)1w1; + meta.acl_metadata.acl_stats_index = (bit<14>)acl_stats_index; + meta.acl_metadata.acl_copy = (bit<1>)acl_copy; + meta.fabric_metadata.reason_code = (bit<16>)acl_copy_reason; } @name("ipv4_racl") table ipv4_racl { actions = { @@ -4760,12 +4760,12 @@ control process_ipv4_urpf(inout headers hdr, inout metadata meta, inout standard @name(".on_miss") action on_miss() { } @name(".ipv4_urpf_hit") action ipv4_urpf_hit(bit<16> urpf_bd_group) { - meta.l3_metadata.urpf_hit = 1w1; - meta.l3_metadata.urpf_bd_group = urpf_bd_group; - meta.l3_metadata.urpf_mode = meta.ipv4_metadata.ipv4_urpf_mode; + meta.l3_metadata.urpf_hit = (bit<1>)1w1; + meta.l3_metadata.urpf_bd_group = (bit<16>)urpf_bd_group; + meta.l3_metadata.urpf_mode = (bit<2>)meta.ipv4_metadata.ipv4_urpf_mode; } @name(".urpf_miss") action urpf_miss() { - meta.l3_metadata.urpf_check_fail = 1w1; + meta.l3_metadata.urpf_check_fail = (bit<1>)1w1; } @name("ipv4_urpf") table ipv4_urpf { actions = { @@ -4809,14 +4809,14 @@ control process_ipv4_fib(inout headers hdr, inout metadata meta, inout standard_ @name(".on_miss") action on_miss() { } @name(".fib_hit_nexthop") action fib_hit_nexthop(bit<16> nexthop_index) { - meta.l3_metadata.fib_hit = 1w1; - meta.l3_metadata.fib_nexthop = nexthop_index; - meta.l3_metadata.fib_nexthop_type = 1w0; + meta.l3_metadata.fib_hit = (bit<1>)1w1; + meta.l3_metadata.fib_nexthop = (bit<16>)nexthop_index; + meta.l3_metadata.fib_nexthop_type = (bit<1>)1w0; } @name(".fib_hit_ecmp") action fib_hit_ecmp(bit<16> ecmp_index) { - meta.l3_metadata.fib_hit = 1w1; - meta.l3_metadata.fib_nexthop = ecmp_index; - meta.l3_metadata.fib_nexthop_type = 1w1; + meta.l3_metadata.fib_hit = (bit<1>)1w1; + meta.l3_metadata.fib_nexthop = (bit<16>)ecmp_index; + meta.l3_metadata.fib_nexthop_type = (bit<1>)1w1; } @name("ipv4_fib") table ipv4_fib { actions = { @@ -4860,31 +4860,31 @@ control process_ipv6_racl(inout headers hdr, inout metadata meta, inout standard @name(".nop") action nop() { } @name(".racl_deny") action racl_deny(bit<14> acl_stats_index, bit<1> acl_copy, bit<16> acl_copy_reason) { - meta.acl_metadata.racl_deny = 1w1; - meta.acl_metadata.acl_stats_index = acl_stats_index; - meta.acl_metadata.acl_copy = acl_copy; - meta.fabric_metadata.reason_code = acl_copy_reason; + meta.acl_metadata.racl_deny = (bit<1>)1w1; + meta.acl_metadata.acl_stats_index = (bit<14>)acl_stats_index; + meta.acl_metadata.acl_copy = (bit<1>)acl_copy; + meta.fabric_metadata.reason_code = (bit<16>)acl_copy_reason; } @name(".racl_permit") action racl_permit(bit<14> acl_stats_index, bit<1> acl_copy, bit<16> acl_copy_reason) { - meta.acl_metadata.acl_stats_index = acl_stats_index; - meta.acl_metadata.acl_copy = acl_copy; - meta.fabric_metadata.reason_code = acl_copy_reason; + meta.acl_metadata.acl_stats_index = (bit<14>)acl_stats_index; + meta.acl_metadata.acl_copy = (bit<1>)acl_copy; + meta.fabric_metadata.reason_code = (bit<16>)acl_copy_reason; } @name(".racl_redirect_nexthop") action racl_redirect_nexthop(bit<16> nexthop_index, bit<14> acl_stats_index, bit<1> acl_copy, bit<16> acl_copy_reason) { - meta.acl_metadata.racl_redirect = 1w1; - meta.acl_metadata.racl_nexthop = nexthop_index; - meta.acl_metadata.racl_nexthop_type = 1w0; - meta.acl_metadata.acl_stats_index = acl_stats_index; - meta.acl_metadata.acl_copy = acl_copy; - meta.fabric_metadata.reason_code = acl_copy_reason; + meta.acl_metadata.racl_redirect = (bit<1>)1w1; + meta.acl_metadata.racl_nexthop = (bit<16>)nexthop_index; + meta.acl_metadata.racl_nexthop_type = (bit<1>)1w0; + meta.acl_metadata.acl_stats_index = (bit<14>)acl_stats_index; + meta.acl_metadata.acl_copy = (bit<1>)acl_copy; + meta.fabric_metadata.reason_code = (bit<16>)acl_copy_reason; } @name(".racl_redirect_ecmp") action racl_redirect_ecmp(bit<16> ecmp_index, bit<14> acl_stats_index, bit<1> acl_copy, bit<16> acl_copy_reason) { - meta.acl_metadata.racl_redirect = 1w1; - meta.acl_metadata.racl_nexthop = ecmp_index; - meta.acl_metadata.racl_nexthop_type = 1w1; - meta.acl_metadata.acl_stats_index = acl_stats_index; - meta.acl_metadata.acl_copy = acl_copy; - meta.fabric_metadata.reason_code = acl_copy_reason; + meta.acl_metadata.racl_redirect = (bit<1>)1w1; + meta.acl_metadata.racl_nexthop = (bit<16>)ecmp_index; + meta.acl_metadata.racl_nexthop_type = (bit<1>)1w1; + meta.acl_metadata.acl_stats_index = (bit<14>)acl_stats_index; + meta.acl_metadata.acl_copy = (bit<1>)acl_copy; + meta.fabric_metadata.reason_code = (bit<16>)acl_copy_reason; } @name("ipv6_racl") table ipv6_racl { actions = { @@ -4915,12 +4915,12 @@ control process_ipv6_urpf(inout headers hdr, inout metadata meta, inout standard @name(".on_miss") action on_miss() { } @name(".ipv6_urpf_hit") action ipv6_urpf_hit(bit<16> urpf_bd_group) { - meta.l3_metadata.urpf_hit = 1w1; - meta.l3_metadata.urpf_bd_group = urpf_bd_group; - meta.l3_metadata.urpf_mode = meta.ipv6_metadata.ipv6_urpf_mode; + meta.l3_metadata.urpf_hit = (bit<1>)1w1; + meta.l3_metadata.urpf_bd_group = (bit<16>)urpf_bd_group; + meta.l3_metadata.urpf_mode = (bit<2>)meta.ipv6_metadata.ipv6_urpf_mode; } @name(".urpf_miss") action urpf_miss() { - meta.l3_metadata.urpf_check_fail = 1w1; + meta.l3_metadata.urpf_check_fail = (bit<1>)1w1; } @name("ipv6_urpf") table ipv6_urpf { actions = { @@ -4964,14 +4964,14 @@ control process_ipv6_fib(inout headers hdr, inout metadata meta, inout standard_ @name(".on_miss") action on_miss() { } @name(".fib_hit_nexthop") action fib_hit_nexthop(bit<16> nexthop_index) { - meta.l3_metadata.fib_hit = 1w1; - meta.l3_metadata.fib_nexthop = nexthop_index; - meta.l3_metadata.fib_nexthop_type = 1w0; + meta.l3_metadata.fib_hit = (bit<1>)1w1; + meta.l3_metadata.fib_nexthop = (bit<16>)nexthop_index; + meta.l3_metadata.fib_nexthop_type = (bit<1>)1w0; } @name(".fib_hit_ecmp") action fib_hit_ecmp(bit<16> ecmp_index) { - meta.l3_metadata.fib_hit = 1w1; - meta.l3_metadata.fib_nexthop = ecmp_index; - meta.l3_metadata.fib_nexthop_type = 1w1; + meta.l3_metadata.fib_hit = (bit<1>)1w1; + meta.l3_metadata.fib_nexthop = (bit<16>)ecmp_index; + meta.l3_metadata.fib_nexthop_type = (bit<1>)1w1; } @name("ipv6_fib") table ipv6_fib { actions = { @@ -5015,7 +5015,7 @@ control process_urpf_bd(inout headers hdr, inout metadata meta, inout standard_m @name(".nop") action nop() { } @name(".urpf_bd_miss") action urpf_bd_miss() { - meta.l3_metadata.urpf_check_fail = 1w1; + meta.l3_metadata.urpf_check_fail = (bit<1>)1w1; } @name("urpf_bd") table urpf_bd { actions = { @@ -5043,35 +5043,35 @@ control process_ipv4_multicast(inout headers hdr, inout metadata meta, inout sta @name(".on_miss") action on_miss() { } @name(".multicast_bridge_s_g_hit") action multicast_bridge_s_g_hit(bit<16> mc_index) { - meta.multicast_metadata.multicast_bridge_mc_index = mc_index; - meta.multicast_metadata.mcast_bridge_hit = 1w1; + meta.multicast_metadata.multicast_bridge_mc_index = (bit<16>)mc_index; + meta.multicast_metadata.mcast_bridge_hit = (bit<1>)1w1; } @name(".nop") action nop() { } @name(".multicast_bridge_star_g_hit") action multicast_bridge_star_g_hit(bit<16> mc_index) { - meta.multicast_metadata.multicast_bridge_mc_index = mc_index; - meta.multicast_metadata.mcast_bridge_hit = 1w1; + meta.multicast_metadata.multicast_bridge_mc_index = (bit<16>)mc_index; + meta.multicast_metadata.mcast_bridge_hit = (bit<1>)1w1; } @name(".multicast_route_s_g_hit") action multicast_route_s_g_hit(bit<16> mc_index, bit<16> mcast_rpf_group) { - meta.multicast_metadata.multicast_route_mc_index = mc_index; - meta.multicast_metadata.mcast_mode = 2w1; - meta.multicast_metadata.mcast_route_hit = 1w1; - meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group; + meta.multicast_metadata.multicast_route_mc_index = (bit<16>)mc_index; + meta.multicast_metadata.mcast_mode = (bit<2>)2w1; + meta.multicast_metadata.mcast_route_hit = (bit<1>)1w1; + meta.multicast_metadata.mcast_rpf_group = (bit<16>)(mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group); } @name(".multicast_route_star_g_miss") action multicast_route_star_g_miss() { - meta.l3_metadata.l3_copy = 1w1; + meta.l3_metadata.l3_copy = (bit<1>)1w1; } @name(".multicast_route_sm_star_g_hit") action multicast_route_sm_star_g_hit(bit<16> mc_index, bit<16> mcast_rpf_group) { - meta.multicast_metadata.mcast_mode = 2w1; - meta.multicast_metadata.multicast_route_mc_index = mc_index; - meta.multicast_metadata.mcast_route_hit = 1w1; - meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group; + meta.multicast_metadata.mcast_mode = (bit<2>)2w1; + meta.multicast_metadata.multicast_route_mc_index = (bit<16>)mc_index; + meta.multicast_metadata.mcast_route_hit = (bit<1>)1w1; + meta.multicast_metadata.mcast_rpf_group = (bit<16>)(mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group); } @name(".multicast_route_bidir_star_g_hit") action multicast_route_bidir_star_g_hit(bit<16> mc_index, bit<16> mcast_rpf_group) { - meta.multicast_metadata.mcast_mode = 2w2; - meta.multicast_metadata.multicast_route_mc_index = mc_index; - meta.multicast_metadata.mcast_route_hit = 1w1; - meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group | meta.multicast_metadata.bd_mrpf_group; + meta.multicast_metadata.mcast_mode = (bit<2>)2w2; + meta.multicast_metadata.multicast_route_mc_index = (bit<16>)mc_index; + meta.multicast_metadata.mcast_route_hit = (bit<1>)1w1; + meta.multicast_metadata.mcast_rpf_group = (bit<16>)(mcast_rpf_group | meta.multicast_metadata.bd_mrpf_group); } @name("ipv4_multicast_bridge") table ipv4_multicast_bridge { actions = { @@ -5105,10 +5105,10 @@ control process_ipv4_multicast(inout headers hdr, inout metadata meta, inout sta } @name(".multicast_route_s_g_hit") action multicast_route_s_g_hit_0(bit<16> mc_index, bit<16> mcast_rpf_group) { ipv4_multicast_route_s_g_stats.count(); - meta.multicast_metadata.multicast_route_mc_index = mc_index; - meta.multicast_metadata.mcast_mode = 2w1; - meta.multicast_metadata.mcast_route_hit = 1w1; - meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group; + meta.multicast_metadata.multicast_route_mc_index = (bit<16>)mc_index; + meta.multicast_metadata.mcast_mode = (bit<2>)2w1; + meta.multicast_metadata.mcast_route_hit = (bit<1>)1w1; + meta.multicast_metadata.mcast_rpf_group = (bit<16>)(mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group); } @name("ipv4_multicast_route") table ipv4_multicast_route { actions = { @@ -5127,21 +5127,21 @@ control process_ipv4_multicast(inout headers hdr, inout metadata meta, inout sta } @name(".multicast_route_star_g_miss") action multicast_route_star_g_miss_0() { ipv4_multicast_route_star_g_stats.count(); - meta.l3_metadata.l3_copy = 1w1; + meta.l3_metadata.l3_copy = (bit<1>)1w1; } @name(".multicast_route_sm_star_g_hit") action multicast_route_sm_star_g_hit_0(bit<16> mc_index, bit<16> mcast_rpf_group) { ipv4_multicast_route_star_g_stats.count(); - meta.multicast_metadata.mcast_mode = 2w1; - meta.multicast_metadata.multicast_route_mc_index = mc_index; - meta.multicast_metadata.mcast_route_hit = 1w1; - meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group; + meta.multicast_metadata.mcast_mode = (bit<2>)2w1; + meta.multicast_metadata.multicast_route_mc_index = (bit<16>)mc_index; + meta.multicast_metadata.mcast_route_hit = (bit<1>)1w1; + meta.multicast_metadata.mcast_rpf_group = (bit<16>)(mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group); } @name(".multicast_route_bidir_star_g_hit") action multicast_route_bidir_star_g_hit_0(bit<16> mc_index, bit<16> mcast_rpf_group) { ipv4_multicast_route_star_g_stats.count(); - meta.multicast_metadata.mcast_mode = 2w2; - meta.multicast_metadata.multicast_route_mc_index = mc_index; - meta.multicast_metadata.mcast_route_hit = 1w1; - meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group | meta.multicast_metadata.bd_mrpf_group; + meta.multicast_metadata.mcast_mode = (bit<2>)2w2; + meta.multicast_metadata.multicast_route_mc_index = (bit<16>)mc_index; + meta.multicast_metadata.mcast_route_hit = (bit<1>)1w1; + meta.multicast_metadata.mcast_rpf_group = (bit<16>)(mcast_rpf_group | meta.multicast_metadata.bd_mrpf_group); } @name("ipv4_multicast_route_star_g") table ipv4_multicast_route_star_g { actions = { @@ -5184,35 +5184,35 @@ control process_ipv6_multicast(inout headers hdr, inout metadata meta, inout sta @name(".on_miss") action on_miss() { } @name(".multicast_bridge_s_g_hit") action multicast_bridge_s_g_hit(bit<16> mc_index) { - meta.multicast_metadata.multicast_bridge_mc_index = mc_index; - meta.multicast_metadata.mcast_bridge_hit = 1w1; + meta.multicast_metadata.multicast_bridge_mc_index = (bit<16>)mc_index; + meta.multicast_metadata.mcast_bridge_hit = (bit<1>)1w1; } @name(".nop") action nop() { } @name(".multicast_bridge_star_g_hit") action multicast_bridge_star_g_hit(bit<16> mc_index) { - meta.multicast_metadata.multicast_bridge_mc_index = mc_index; - meta.multicast_metadata.mcast_bridge_hit = 1w1; + meta.multicast_metadata.multicast_bridge_mc_index = (bit<16>)mc_index; + meta.multicast_metadata.mcast_bridge_hit = (bit<1>)1w1; } @name(".multicast_route_s_g_hit") action multicast_route_s_g_hit(bit<16> mc_index, bit<16> mcast_rpf_group) { - meta.multicast_metadata.multicast_route_mc_index = mc_index; - meta.multicast_metadata.mcast_mode = 2w1; - meta.multicast_metadata.mcast_route_hit = 1w1; - meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group; + meta.multicast_metadata.multicast_route_mc_index = (bit<16>)mc_index; + meta.multicast_metadata.mcast_mode = (bit<2>)2w1; + meta.multicast_metadata.mcast_route_hit = (bit<1>)1w1; + meta.multicast_metadata.mcast_rpf_group = (bit<16>)(mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group); } @name(".multicast_route_star_g_miss") action multicast_route_star_g_miss() { - meta.l3_metadata.l3_copy = 1w1; + meta.l3_metadata.l3_copy = (bit<1>)1w1; } @name(".multicast_route_sm_star_g_hit") action multicast_route_sm_star_g_hit(bit<16> mc_index, bit<16> mcast_rpf_group) { - meta.multicast_metadata.mcast_mode = 2w1; - meta.multicast_metadata.multicast_route_mc_index = mc_index; - meta.multicast_metadata.mcast_route_hit = 1w1; - meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group; + meta.multicast_metadata.mcast_mode = (bit<2>)2w1; + meta.multicast_metadata.multicast_route_mc_index = (bit<16>)mc_index; + meta.multicast_metadata.mcast_route_hit = (bit<1>)1w1; + meta.multicast_metadata.mcast_rpf_group = (bit<16>)(mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group); } @name(".multicast_route_bidir_star_g_hit") action multicast_route_bidir_star_g_hit(bit<16> mc_index, bit<16> mcast_rpf_group) { - meta.multicast_metadata.mcast_mode = 2w2; - meta.multicast_metadata.multicast_route_mc_index = mc_index; - meta.multicast_metadata.mcast_route_hit = 1w1; - meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group | meta.multicast_metadata.bd_mrpf_group; + meta.multicast_metadata.mcast_mode = (bit<2>)2w2; + meta.multicast_metadata.multicast_route_mc_index = (bit<16>)mc_index; + meta.multicast_metadata.mcast_route_hit = (bit<1>)1w1; + meta.multicast_metadata.mcast_rpf_group = (bit<16>)(mcast_rpf_group | meta.multicast_metadata.bd_mrpf_group); } @name("ipv6_multicast_bridge") table ipv6_multicast_bridge { actions = { @@ -5246,10 +5246,10 @@ control process_ipv6_multicast(inout headers hdr, inout metadata meta, inout sta } @name(".multicast_route_s_g_hit") action multicast_route_s_g_hit_1(bit<16> mc_index, bit<16> mcast_rpf_group) { ipv6_multicast_route_s_g_stats.count(); - meta.multicast_metadata.multicast_route_mc_index = mc_index; - meta.multicast_metadata.mcast_mode = 2w1; - meta.multicast_metadata.mcast_route_hit = 1w1; - meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group; + meta.multicast_metadata.multicast_route_mc_index = (bit<16>)mc_index; + meta.multicast_metadata.mcast_mode = (bit<2>)2w1; + meta.multicast_metadata.mcast_route_hit = (bit<1>)1w1; + meta.multicast_metadata.mcast_rpf_group = (bit<16>)(mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group); } @name("ipv6_multicast_route") table ipv6_multicast_route { actions = { @@ -5268,21 +5268,21 @@ control process_ipv6_multicast(inout headers hdr, inout metadata meta, inout sta } @name(".multicast_route_star_g_miss") action multicast_route_star_g_miss_1() { ipv6_multicast_route_star_g_stats.count(); - meta.l3_metadata.l3_copy = 1w1; + meta.l3_metadata.l3_copy = (bit<1>)1w1; } @name(".multicast_route_sm_star_g_hit") action multicast_route_sm_star_g_hit_1(bit<16> mc_index, bit<16> mcast_rpf_group) { ipv6_multicast_route_star_g_stats.count(); - meta.multicast_metadata.mcast_mode = 2w1; - meta.multicast_metadata.multicast_route_mc_index = mc_index; - meta.multicast_metadata.mcast_route_hit = 1w1; - meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group; + meta.multicast_metadata.mcast_mode = (bit<2>)2w1; + meta.multicast_metadata.multicast_route_mc_index = (bit<16>)mc_index; + meta.multicast_metadata.mcast_route_hit = (bit<1>)1w1; + meta.multicast_metadata.mcast_rpf_group = (bit<16>)(mcast_rpf_group ^ meta.multicast_metadata.bd_mrpf_group); } @name(".multicast_route_bidir_star_g_hit") action multicast_route_bidir_star_g_hit_1(bit<16> mc_index, bit<16> mcast_rpf_group) { ipv6_multicast_route_star_g_stats.count(); - meta.multicast_metadata.mcast_mode = 2w2; - meta.multicast_metadata.multicast_route_mc_index = mc_index; - meta.multicast_metadata.mcast_route_hit = 1w1; - meta.multicast_metadata.mcast_rpf_group = mcast_rpf_group | meta.multicast_metadata.bd_mrpf_group; + meta.multicast_metadata.mcast_mode = (bit<2>)2w2; + meta.multicast_metadata.multicast_route_mc_index = (bit<16>)mc_index; + meta.multicast_metadata.mcast_route_hit = (bit<1>)1w1; + meta.multicast_metadata.mcast_rpf_group = (bit<16>)(mcast_rpf_group | meta.multicast_metadata.bd_mrpf_group); } @name("ipv6_multicast_route_star_g") table ipv6_multicast_route_star_g { actions = { @@ -5380,13 +5380,13 @@ control process_hashes(inout headers hdr, inout metadata meta, inout standard_me hash(meta.hash_metadata.hash2, HashAlgorithm.crc16, (bit<16>)0, { meta.ingress_metadata.ifindex, meta.l2_metadata.lkp_mac_sa, meta.l2_metadata.lkp_mac_da, meta.l2_metadata.lkp_mac_type }, (bit<32>)65536); } @name(".computed_two_hashes") action computed_two_hashes() { - meta.intrinsic_metadata.mcast_hash = meta.hash_metadata.hash1; - meta.hash_metadata.entropy_hash = meta.hash_metadata.hash2; + meta.intrinsic_metadata.mcast_hash = (bit<13>)meta.hash_metadata.hash1; + meta.hash_metadata.entropy_hash = (bit<16>)meta.hash_metadata.hash2; } @name(".computed_one_hash") action computed_one_hash() { - meta.hash_metadata.hash1 = meta.hash_metadata.hash2; - meta.intrinsic_metadata.mcast_hash = meta.hash_metadata.hash2; - meta.hash_metadata.entropy_hash = meta.hash_metadata.hash2; + meta.hash_metadata.hash1 = (bit<16>)meta.hash_metadata.hash2; + meta.intrinsic_metadata.mcast_hash = (bit<13>)meta.hash_metadata.hash2; + meta.hash_metadata.entropy_hash = (bit<16>)meta.hash_metadata.hash2; } @name("compute_ipv4_hashes") table compute_ipv4_hashes { actions = { @@ -5545,61 +5545,61 @@ control process_fwd_results(inout headers hdr, inout metadata meta, inout standa @name(".nop") action nop() { } @name(".set_l2_redirect_action") action set_l2_redirect_action() { - meta.l3_metadata.nexthop_index = meta.l2_metadata.l2_nexthop; - meta.nexthop_metadata.nexthop_type = meta.l2_metadata.l2_nexthop_type; - meta.ingress_metadata.egress_ifindex = 16w0; - meta.intrinsic_metadata.mcast_grp = 16w0; - meta.fabric_metadata.dst_device = 8w0; + meta.l3_metadata.nexthop_index = (bit<16>)meta.l2_metadata.l2_nexthop; + meta.nexthop_metadata.nexthop_type = (bit<1>)meta.l2_metadata.l2_nexthop_type; + meta.ingress_metadata.egress_ifindex = (bit<16>)16w0; + meta.intrinsic_metadata.mcast_grp = (bit<16>)16w0; + meta.fabric_metadata.dst_device = (bit<8>)8w0; } @name(".set_fib_redirect_action") action set_fib_redirect_action() { - meta.l3_metadata.nexthop_index = meta.l3_metadata.fib_nexthop; - meta.nexthop_metadata.nexthop_type = meta.l3_metadata.fib_nexthop_type; - meta.l3_metadata.routed = 1w1; - meta.intrinsic_metadata.mcast_grp = 16w0; - meta.fabric_metadata.reason_code = 16w0x217; - meta.fabric_metadata.dst_device = 8w0; + meta.l3_metadata.nexthop_index = (bit<16>)meta.l3_metadata.fib_nexthop; + meta.nexthop_metadata.nexthop_type = (bit<1>)meta.l3_metadata.fib_nexthop_type; + meta.l3_metadata.routed = (bit<1>)1w1; + meta.intrinsic_metadata.mcast_grp = (bit<16>)16w0; + meta.fabric_metadata.reason_code = (bit<16>)16w0x217; + meta.fabric_metadata.dst_device = (bit<8>)8w0; } @name(".set_cpu_redirect_action") action set_cpu_redirect_action() { - meta.l3_metadata.routed = 1w0; - meta.intrinsic_metadata.mcast_grp = 16w0; - standard_metadata.egress_spec = 9w64; - meta.ingress_metadata.egress_ifindex = 16w0; - meta.fabric_metadata.dst_device = 8w0; + meta.l3_metadata.routed = (bit<1>)1w0; + meta.intrinsic_metadata.mcast_grp = (bit<16>)16w0; + standard_metadata.egress_spec = (bit<9>)9w64; + meta.ingress_metadata.egress_ifindex = (bit<16>)16w0; + meta.fabric_metadata.dst_device = (bit<8>)8w0; } @name(".set_acl_redirect_action") action set_acl_redirect_action() { - meta.l3_metadata.nexthop_index = meta.acl_metadata.acl_nexthop; - meta.nexthop_metadata.nexthop_type = meta.acl_metadata.acl_nexthop_type; - meta.ingress_metadata.egress_ifindex = 16w0; - meta.intrinsic_metadata.mcast_grp = 16w0; - meta.fabric_metadata.dst_device = 8w0; + meta.l3_metadata.nexthop_index = (bit<16>)meta.acl_metadata.acl_nexthop; + meta.nexthop_metadata.nexthop_type = (bit<1>)meta.acl_metadata.acl_nexthop_type; + meta.ingress_metadata.egress_ifindex = (bit<16>)16w0; + meta.intrinsic_metadata.mcast_grp = (bit<16>)16w0; + meta.fabric_metadata.dst_device = (bit<8>)8w0; } @name(".set_racl_redirect_action") action set_racl_redirect_action() { - meta.l3_metadata.nexthop_index = meta.acl_metadata.racl_nexthop; - meta.nexthop_metadata.nexthop_type = meta.acl_metadata.racl_nexthop_type; - meta.l3_metadata.routed = 1w1; - meta.ingress_metadata.egress_ifindex = 16w0; - meta.intrinsic_metadata.mcast_grp = 16w0; - meta.fabric_metadata.dst_device = 8w0; + meta.l3_metadata.nexthop_index = (bit<16>)meta.acl_metadata.racl_nexthop; + meta.nexthop_metadata.nexthop_type = (bit<1>)meta.acl_metadata.racl_nexthop_type; + meta.l3_metadata.routed = (bit<1>)1w1; + meta.ingress_metadata.egress_ifindex = (bit<16>)16w0; + meta.intrinsic_metadata.mcast_grp = (bit<16>)16w0; + meta.fabric_metadata.dst_device = (bit<8>)8w0; } @name(".set_multicast_route_action") action set_multicast_route_action() { - meta.fabric_metadata.dst_device = 8w127; - meta.ingress_metadata.egress_ifindex = 16w0; - meta.intrinsic_metadata.mcast_grp = meta.multicast_metadata.multicast_route_mc_index; - meta.l3_metadata.routed = 1w1; - meta.l3_metadata.same_bd_check = 16w0xffff; + meta.fabric_metadata.dst_device = (bit<8>)8w127; + meta.ingress_metadata.egress_ifindex = (bit<16>)16w0; + meta.intrinsic_metadata.mcast_grp = (bit<16>)meta.multicast_metadata.multicast_route_mc_index; + meta.l3_metadata.routed = (bit<1>)1w1; + meta.l3_metadata.same_bd_check = (bit<16>)16w0xffff; } @name(".set_multicast_bridge_action") action set_multicast_bridge_action() { - meta.fabric_metadata.dst_device = 8w127; - meta.ingress_metadata.egress_ifindex = 16w0; - meta.intrinsic_metadata.mcast_grp = meta.multicast_metadata.multicast_bridge_mc_index; + meta.fabric_metadata.dst_device = (bit<8>)8w127; + meta.ingress_metadata.egress_ifindex = (bit<16>)16w0; + meta.intrinsic_metadata.mcast_grp = (bit<16>)meta.multicast_metadata.multicast_bridge_mc_index; } @name(".set_multicast_flood") action set_multicast_flood() { - meta.fabric_metadata.dst_device = 8w127; - meta.ingress_metadata.egress_ifindex = 16w65535; + meta.fabric_metadata.dst_device = (bit<8>)8w127; + meta.ingress_metadata.egress_ifindex = (bit<16>)16w65535; } @name(".set_multicast_drop") action set_multicast_drop() { - meta.ingress_metadata.drop_flag = 1w1; - meta.ingress_metadata.drop_reason = 8w44; + meta.ingress_metadata.drop_flag = (bit<1>)1w1; + meta.ingress_metadata.drop_reason = (bit<8>)8w44; } @name("fwd_result") table fwd_result { actions = { @@ -5644,30 +5644,30 @@ control process_nexthop(inout headers hdr, inout metadata meta, inout standard_m @name(".nop") action nop() { } @name(".set_ecmp_nexthop_details") action set_ecmp_nexthop_details(bit<16> ifindex, bit<16> bd, bit<16> nhop_index, bit<1> tunnel) { - meta.ingress_metadata.egress_ifindex = ifindex; - meta.l3_metadata.nexthop_index = nhop_index; - meta.l3_metadata.same_bd_check = meta.ingress_metadata.bd ^ bd; - meta.l2_metadata.same_if_check = meta.l2_metadata.same_if_check ^ ifindex; - meta.tunnel_metadata.tunnel_if_check = meta.tunnel_metadata.tunnel_terminate ^ tunnel; + meta.ingress_metadata.egress_ifindex = (bit<16>)ifindex; + meta.l3_metadata.nexthop_index = (bit<16>)nhop_index; + meta.l3_metadata.same_bd_check = (bit<16>)(meta.ingress_metadata.bd ^ bd); + meta.l2_metadata.same_if_check = (bit<16>)(meta.l2_metadata.same_if_check ^ ifindex); + meta.tunnel_metadata.tunnel_if_check = (bit<1>)(meta.tunnel_metadata.tunnel_terminate ^ tunnel); } @name(".set_ecmp_nexthop_details_for_post_routed_flood") action set_ecmp_nexthop_details_for_post_routed_flood(bit<16> bd, bit<16> uuc_mc_index, bit<16> nhop_index) { - meta.intrinsic_metadata.mcast_grp = uuc_mc_index; - meta.l3_metadata.nexthop_index = nhop_index; - meta.ingress_metadata.egress_ifindex = 16w0; - meta.l3_metadata.same_bd_check = meta.ingress_metadata.bd ^ bd; - meta.fabric_metadata.dst_device = 8w127; + meta.intrinsic_metadata.mcast_grp = (bit<16>)uuc_mc_index; + meta.l3_metadata.nexthop_index = (bit<16>)nhop_index; + meta.ingress_metadata.egress_ifindex = (bit<16>)16w0; + meta.l3_metadata.same_bd_check = (bit<16>)(meta.ingress_metadata.bd ^ bd); + meta.fabric_metadata.dst_device = (bit<8>)8w127; } @name(".set_nexthop_details") action set_nexthop_details(bit<16> ifindex, bit<16> bd, bit<1> tunnel) { - meta.ingress_metadata.egress_ifindex = ifindex; - meta.l3_metadata.same_bd_check = meta.ingress_metadata.bd ^ bd; - meta.l2_metadata.same_if_check = meta.l2_metadata.same_if_check ^ ifindex; - meta.tunnel_metadata.tunnel_if_check = meta.tunnel_metadata.tunnel_terminate ^ tunnel; + meta.ingress_metadata.egress_ifindex = (bit<16>)ifindex; + meta.l3_metadata.same_bd_check = (bit<16>)(meta.ingress_metadata.bd ^ bd); + meta.l2_metadata.same_if_check = (bit<16>)(meta.l2_metadata.same_if_check ^ ifindex); + meta.tunnel_metadata.tunnel_if_check = (bit<1>)(meta.tunnel_metadata.tunnel_terminate ^ tunnel); } @name(".set_nexthop_details_for_post_routed_flood") action set_nexthop_details_for_post_routed_flood(bit<16> bd, bit<16> uuc_mc_index) { - meta.intrinsic_metadata.mcast_grp = uuc_mc_index; - meta.ingress_metadata.egress_ifindex = 16w0; - meta.l3_metadata.same_bd_check = meta.ingress_metadata.bd ^ bd; - meta.fabric_metadata.dst_device = 8w127; + meta.intrinsic_metadata.mcast_grp = (bit<16>)uuc_mc_index; + meta.ingress_metadata.egress_ifindex = (bit<16>)16w0; + meta.l3_metadata.same_bd_check = (bit<16>)(meta.ingress_metadata.bd ^ bd); + meta.fabric_metadata.dst_device = (bit<8>)8w127; } @name("ecmp_group") table ecmp_group { actions = { @@ -5711,7 +5711,7 @@ control process_multicast_flooding(inout headers hdr, inout metadata meta, inout @name(".nop") action nop() { } @name(".set_bd_flood_mc_index") action set_bd_flood_mc_index(bit<16> mc_index) { - meta.intrinsic_metadata.mcast_grp = mc_index; + meta.intrinsic_metadata.mcast_grp = (bit<16>)mc_index; } @name("bd_flood") table bd_flood { actions = { @@ -5735,11 +5735,11 @@ control process_lag(inout headers hdr, inout metadata meta, inout standard_metad @name(".set_lag_miss") action set_lag_miss() { } @name(".set_lag_port") action set_lag_port(bit<9> port) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name(".set_lag_remote_port") action set_lag_remote_port(bit<8> device, bit<16> port) { - meta.fabric_metadata.dst_device = device; - meta.fabric_metadata.dst_port = port; + meta.fabric_metadata.dst_device = (bit<8>)device; + meta.fabric_metadata.dst_port = (bit<16>)port; } @name("lag_group") table lag_group { actions = { @@ -5798,10 +5798,10 @@ control process_fabric_lag(inout headers hdr, inout metadata meta, inout standar @name(".nop") action nop() { } @name(".set_fabric_lag_port") action set_fabric_lag_port(bit<9> port) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; } @name(".set_fabric_multicast") action set_fabric_multicast(bit<8> fabric_mgid) { - meta.multicast_metadata.mcast_grp = meta.intrinsic_metadata.mcast_grp; + meta.multicast_metadata.mcast_grp = (bit<16>)meta.intrinsic_metadata.mcast_grp; } @name("fabric_lag") table fabric_lag { actions = { @@ -5831,13 +5831,13 @@ control process_system_acl(inout headers hdr, inout metadata meta, inout standar @name(".nop") action nop() { } @name(".copy_to_cpu_with_reason") action copy_to_cpu_with_reason(bit<16> reason_code) { - meta.fabric_metadata.reason_code = reason_code; + meta.fabric_metadata.reason_code = (bit<16>)reason_code; clone3(CloneType.I2E, (bit<32>)32w250, { meta.ingress_metadata.bd, meta.ingress_metadata.ifindex, meta.fabric_metadata.reason_code, meta.ingress_metadata.ingress_port }); } @name(".redirect_to_cpu") action redirect_to_cpu(bit<16> reason_code) { copy_to_cpu_with_reason(reason_code); mark_to_drop(); - meta.fabric_metadata.dst_device = 8w0; + meta.fabric_metadata.dst_device = (bit<8>)8w0; } @name(".copy_to_cpu") action copy_to_cpu() { clone3(CloneType.I2E, (bit<32>)32w250, { meta.ingress_metadata.bd, meta.ingress_metadata.ifindex, meta.fabric_metadata.reason_code, meta.ingress_metadata.ingress_port }); @@ -5916,10 +5916,10 @@ control process_system_acl(inout headers hdr, inout metadata meta, inout standar control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".rmac_hit") action rmac_hit() { - meta.l3_metadata.rmac_hit = 1w1; + meta.l3_metadata.rmac_hit = (bit<1>)1w1; } @name(".rmac_miss") action rmac_miss() { - meta.l3_metadata.rmac_hit = 1w0; + meta.l3_metadata.rmac_hit = (bit<1>)1w0; } @name("rmac") table rmac { actions = { diff --git a/testdata/p4_14_samples_outputs/ternary_match1.p4 b/testdata/p4_14_samples_outputs/ternary_match1.p4 index 11972f58db1..dc1695d8c1b 100644 --- a/testdata/p4_14_samples_outputs/ternary_match1.p4 +++ b/testdata/p4_14_samples_outputs/ternary_match1.p4 @@ -28,8 +28,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/ternary_match2.p4 b/testdata/p4_14_samples_outputs/ternary_match2.p4 index 06e70565d71..0d96e854b0c 100644 --- a/testdata/p4_14_samples_outputs/ternary_match2.p4 +++ b/testdata/p4_14_samples_outputs/ternary_match2.p4 @@ -27,8 +27,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/ternary_match3.p4 b/testdata/p4_14_samples_outputs/ternary_match3.p4 index 270e2319151..c96b31d574c 100644 --- a/testdata/p4_14_samples_outputs/ternary_match3.p4 +++ b/testdata/p4_14_samples_outputs/ternary_match3.p4 @@ -27,8 +27,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/ternary_match4.p4 b/testdata/p4_14_samples_outputs/ternary_match4.p4 index 40808bf0393..a7dcaa4a0e4 100644 --- a/testdata/p4_14_samples_outputs/ternary_match4.p4 +++ b/testdata/p4_14_samples_outputs/ternary_match4.p4 @@ -27,8 +27,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/test_7_storm_control.p4 b/testdata/p4_14_samples_outputs/test_7_storm_control.p4 index 59ad09216ce..edc5ba556f3 100644 --- a/testdata/p4_14_samples_outputs/test_7_storm_control.p4 +++ b/testdata/p4_14_samples_outputs/test_7_storm_control.p4 @@ -107,7 +107,7 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ ; } @name(".ing_meter_set") action ing_meter_set(bit<16> meter_) { - meta.ingress_metadata.ing_meter = meter_; + meta.ingress_metadata.ing_meter = (bit<16>)meter_; } @name("storm_control") table storm_control { actions = { diff --git a/testdata/p4_14_samples_outputs/test_config_175_match_table_with_no_key.p4 b/testdata/p4_14_samples_outputs/test_config_175_match_table_with_no_key.p4 index 81098bb87f5..3acbdb72df4 100644 --- a/testdata/p4_14_samples_outputs/test_config_175_match_table_with_no_key.p4 +++ b/testdata/p4_14_samples_outputs/test_config_175_match_table_with_no_key.p4 @@ -37,10 +37,10 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".action_0") action action_0() { - hdr.pkt.field_a_32 = ~(hdr.pkt.field_b_32 | (int<32>)hdr.pkt.field_c_32); + hdr.pkt.field_a_32 = (bit<32>)~(hdr.pkt.field_b_32 | (int<32>)hdr.pkt.field_c_32); } @name(".action_1") action action_1(int<32> param0) { - hdr.pkt.field_b_32 = ~param0 | (int<32>)hdr.pkt.field_c_32; + hdr.pkt.field_b_32 = (int<32>)(~param0 | (int<32>)hdr.pkt.field_c_32); } @name(".do_nothing") action do_nothing() { } diff --git a/testdata/p4_14_samples_outputs/test_config_23_same_container_modified.p4 b/testdata/p4_14_samples_outputs/test_config_23_same_container_modified.p4 index f984a3e12b5..5a8dbc92b0e 100644 --- a/testdata/p4_14_samples_outputs/test_config_23_same_container_modified.p4 +++ b/testdata/p4_14_samples_outputs/test_config_23_same_container_modified.p4 @@ -66,10 +66,10 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".action_0") action action_0(bit<8> my_param0, bit<8> my_param1) { hdr.ipv4.protocol[7:3] = my_param0[7:3]; - hdr.ipv4.ttl = my_param1; + hdr.ipv4.ttl = (bit<8>)my_param1; } @name(".action_1") action action_1(bit<8> my_param2) { - hdr.ipv4.totalLen = hdr.ipv4.totalLen; + hdr.ipv4.totalLen = (bit<16>)hdr.ipv4.totalLen; } @name("table_0") table table_0 { actions = { diff --git a/testdata/p4_14_samples_outputs/testgw.p4 b/testdata/p4_14_samples_outputs/testgw.p4 index 5375fee57ff..09409f9ef3d 100644 --- a/testdata/p4_14_samples_outputs/testgw.p4 +++ b/testdata/p4_14_samples_outputs/testgw.p4 @@ -46,16 +46,16 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".route_eth") action route_eth(bit<9> egress_spec, bit<48> src_addr) { - standard_metadata.egress_spec = egress_spec; - hdr.ethernet.src_addr = src_addr; + standard_metadata.egress_spec = (bit<9>)egress_spec; + hdr.ethernet.src_addr = (bit<48>)src_addr; } @name(".noop") action noop() { } @name(".setf2") action setf2(bit<32> val) { - hdr.data.f2 = val; + hdr.data.f2 = (bit<32>)val; } @name(".setf1") action setf1(bit<32> val) { - hdr.data.f1 = val; + hdr.data.f1 = (bit<32>)val; } @name("routing") table routing { actions = { diff --git a/testdata/p4_14_samples_outputs/tmvalid.p4 b/testdata/p4_14_samples_outputs/tmvalid.p4 index e30cfc8f730..a441e93504a 100644 --- a/testdata/p4_14_samples_outputs/tmvalid.p4 +++ b/testdata/p4_14_samples_outputs/tmvalid.p4 @@ -28,8 +28,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<8> val, bit<9> port) { - hdr.data.b1 = val; - standard_metadata.egress_spec = port; + hdr.data.b1 = (bit<8>)val; + standard_metadata.egress_spec = (bit<9>)port; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/tp2a.p4 b/testdata/p4_14_samples_outputs/tp2a.p4 index fb9ef33c820..34830696da1 100644 --- a/testdata/p4_14_samples_outputs/tp2a.p4 +++ b/testdata/p4_14_samples_outputs/tp2a.p4 @@ -29,18 +29,18 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<32> val) { - hdr.data.b1 = val; + hdr.data.b1 = (bit<32>)val; } @name(".noop") action noop() { } @name(".setb3") action setb3(bit<32> val) { - hdr.data.b3 = val; + hdr.data.b3 = (bit<32>)val; } @name(".setb2") action setb2(bit<32> val) { - hdr.data.b2 = val; + hdr.data.b2 = (bit<32>)val; } @name(".setb4") action setb4(bit<32> val) { - hdr.data.b4 = val; + hdr.data.b4 = (bit<32>)val; } @name("A1") table A1 { actions = { diff --git a/testdata/p4_14_samples_outputs/tp2b.p4 b/testdata/p4_14_samples_outputs/tp2b.p4 index 783144dd5ef..2746026a9d8 100644 --- a/testdata/p4_14_samples_outputs/tp2b.p4 +++ b/testdata/p4_14_samples_outputs/tp2b.p4 @@ -29,15 +29,15 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setf1") action setf1(bit<32> val) { - hdr.data.f1 = val; + hdr.data.f1 = (bit<32>)val; } @name(".noop") action noop() { } @name(".setb1") action setb1(bit<32> val) { - hdr.data.b1 = val; + hdr.data.b1 = (bit<32>)val; } @name(".setb2") action setb2(bit<32> val) { - hdr.data.b2 = val; + hdr.data.b2 = (bit<32>)val; } @name("E1") table E1 { actions = { @@ -85,18 +85,18 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<32> val) { - hdr.data.b1 = val; + hdr.data.b1 = (bit<32>)val; } @name(".noop") action noop() { } @name(".setb3") action setb3(bit<32> val) { - hdr.data.b3 = val; + hdr.data.b3 = (bit<32>)val; } @name(".setb2") action setb2(bit<32> val) { - hdr.data.b2 = val; + hdr.data.b2 = (bit<32>)val; } @name(".setb4") action setb4(bit<32> val) { - hdr.data.b4 = val; + hdr.data.b4 = (bit<32>)val; } @name("A1") table A1 { actions = { diff --git a/testdata/p4_14_samples_outputs/tp2c.p4 b/testdata/p4_14_samples_outputs/tp2c.p4 index fc76020456c..0cf9d4712bd 100644 --- a/testdata/p4_14_samples_outputs/tp2c.p4 +++ b/testdata/p4_14_samples_outputs/tp2c.p4 @@ -29,22 +29,22 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<32> val) { - hdr.data.b1 = val; + hdr.data.b1 = (bit<32>)val; } @name(".noop") action noop() { } @name(".setb3") action setb3(bit<32> val) { - hdr.data.b3 = val; + hdr.data.b3 = (bit<32>)val; } @name(".on_hit") action on_hit() { } @name(".on_miss") action on_miss() { } @name(".setb2") action setb2(bit<32> val) { - hdr.data.b2 = val; + hdr.data.b2 = (bit<32>)val; } @name(".setb4") action setb4(bit<32> val) { - hdr.data.b4 = val; + hdr.data.b4 = (bit<32>)val; } @name("A1") table A1 { actions = { diff --git a/testdata/p4_14_samples_outputs/tp3a.p4 b/testdata/p4_14_samples_outputs/tp3a.p4 index fee0bee0cd3..77dedc6d7b5 100644 --- a/testdata/p4_14_samples_outputs/tp3a.p4 +++ b/testdata/p4_14_samples_outputs/tp3a.p4 @@ -29,15 +29,15 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setf1") action setf1(bit<32> val) { - hdr.data.f1 = val; + hdr.data.f1 = (bit<32>)val; } @name(".noop") action noop() { } @name(".setb4") action setb4(bit<32> val) { - hdr.data.b4 = val; + hdr.data.b4 = (bit<32>)val; } @name(".setb1") action setb1(bit<32> val) { - hdr.data.b1 = val; + hdr.data.b1 = (bit<32>)val; } @name("E1") table E1 { actions = { @@ -97,18 +97,18 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setb1") action setb1(bit<32> val) { - hdr.data.b1 = val; + hdr.data.b1 = (bit<32>)val; } @name(".noop") action noop() { } @name(".setb3") action setb3(bit<32> val) { - hdr.data.b3 = val; + hdr.data.b3 = (bit<32>)val; } @name(".setb2") action setb2(bit<32> val) { - hdr.data.b2 = val; + hdr.data.b2 = (bit<32>)val; } @name(".setb4") action setb4(bit<32> val) { - hdr.data.b4 = val; + hdr.data.b4 = (bit<32>)val; } @name("A1") table A1 { actions = { diff --git a/testdata/p4_14_samples_outputs/triv_eth.p4 b/testdata/p4_14_samples_outputs/triv_eth.p4 index 7db49a33a07..52595e78756 100644 --- a/testdata/p4_14_samples_outputs/triv_eth.p4 +++ b/testdata/p4_14_samples_outputs/triv_eth.p4 @@ -24,8 +24,8 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".route_eth") action route_eth(bit<9> egress_spec, bit<48> src_addr) { - standard_metadata.egress_spec = egress_spec; - hdr.ethernet.src_addr = src_addr; + standard_metadata.egress_spec = (bit<9>)egress_spec; + hdr.ethernet.src_addr = (bit<48>)src_addr; } @name(".noop") action noop() { } diff --git a/testdata/p4_14_samples_outputs/triv_ipv4.p4 b/testdata/p4_14_samples_outputs/triv_ipv4.p4 index b14fb0dac48..5f3d01c4271 100644 --- a/testdata/p4_14_samples_outputs/triv_ipv4.p4 +++ b/testdata/p4_14_samples_outputs/triv_ipv4.p4 @@ -57,8 +57,8 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name(".do_drop") action do_drop() { } @name(".route_ipv4") action route_ipv4(bit<9> egress_spec) { - hdr.ipv4.ttl = hdr.ipv4.ttl + 8w255; - standard_metadata.egress_spec = egress_spec; + hdr.ipv4.ttl = (bit<8>)(hdr.ipv4.ttl + 8w255); + standard_metadata.egress_spec = (bit<9>)egress_spec; } @name("routing") table routing { actions = { diff --git a/testdata/p4_14_samples_outputs/truncate-first.p4 b/testdata/p4_14_samples_outputs/truncate-first.p4 index 8f2a129e958..f15cf76b305 100644 --- a/testdata/p4_14_samples_outputs/truncate-first.p4 +++ b/testdata/p4_14_samples_outputs/truncate-first.p4 @@ -31,7 +31,7 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ } @name("._truncate") action _truncate(bit<32> new_length, bit<9> port) { standard_metadata.egress_spec = port; - truncate((bit<32>)new_length); + truncate(new_length); } @name("t_ingress") table t_ingress { actions = { diff --git a/testdata/p4_14_samples_outputs/truncate.p4 b/testdata/p4_14_samples_outputs/truncate.p4 index fa5125b868e..0259c30272f 100644 --- a/testdata/p4_14_samples_outputs/truncate.p4 +++ b/testdata/p4_14_samples_outputs/truncate.p4 @@ -30,7 +30,7 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name("._nop") action _nop() { } @name("._truncate") action _truncate(bit<32> new_length, bit<9> port) { - standard_metadata.egress_spec = port; + standard_metadata.egress_spec = (bit<9>)port; truncate((bit<32>)new_length); } @name("t_ingress") table t_ingress { diff --git a/testdata/p4_14_samples_outputs/validate_outer_ethernet.p4 b/testdata/p4_14_samples_outputs/validate_outer_ethernet.p4 index d99afbeabb9..ecd01045c56 100644 --- a/testdata/p4_14_samples_outputs/validate_outer_ethernet.p4 +++ b/testdata/p4_14_samples_outputs/validate_outer_ethernet.p4 @@ -61,76 +61,76 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_valid_outer_unicast_packet_untagged") action set_valid_outer_unicast_packet_untagged() { - meta.ingress_metadata.lkp_pkt_type = 3w1; - meta.ingress_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.ingress_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.ingress_metadata.lkp_mac_type = hdr.ethernet.etherType; + meta.ingress_metadata.lkp_pkt_type = (bit<3>)3w1; + meta.ingress_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.ingress_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.ingress_metadata.lkp_mac_type = (bit<16>)hdr.ethernet.etherType; } @name(".set_valid_outer_unicast_packet_single_tagged") action set_valid_outer_unicast_packet_single_tagged() { - meta.ingress_metadata.lkp_pkt_type = 3w1; - meta.ingress_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.ingress_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.ingress_metadata.lkp_mac_type = hdr.vlan_tag_[0].etherType; + meta.ingress_metadata.lkp_pkt_type = (bit<3>)3w1; + meta.ingress_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.ingress_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.ingress_metadata.lkp_mac_type = (bit<16>)hdr.vlan_tag_[0].etherType; } @name(".set_valid_outer_unicast_packet_double_tagged") action set_valid_outer_unicast_packet_double_tagged() { - meta.ingress_metadata.lkp_pkt_type = 3w1; - meta.ingress_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.ingress_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.ingress_metadata.lkp_mac_type = hdr.vlan_tag_[1].etherType; + meta.ingress_metadata.lkp_pkt_type = (bit<3>)3w1; + meta.ingress_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.ingress_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.ingress_metadata.lkp_mac_type = (bit<16>)hdr.vlan_tag_[1].etherType; } @name(".set_valid_outer_unicast_packet_qinq_tagged") action set_valid_outer_unicast_packet_qinq_tagged() { - meta.ingress_metadata.lkp_pkt_type = 3w1; - meta.ingress_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.ingress_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.ingress_metadata.lkp_mac_type = hdr.ethernet.etherType; + meta.ingress_metadata.lkp_pkt_type = (bit<3>)3w1; + meta.ingress_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.ingress_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.ingress_metadata.lkp_mac_type = (bit<16>)hdr.ethernet.etherType; } @name(".set_valid_outer_multicast_packet_untagged") action set_valid_outer_multicast_packet_untagged() { - meta.ingress_metadata.lkp_pkt_type = 3w2; - meta.ingress_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.ingress_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.ingress_metadata.lkp_mac_type = hdr.ethernet.etherType; + meta.ingress_metadata.lkp_pkt_type = (bit<3>)3w2; + meta.ingress_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.ingress_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.ingress_metadata.lkp_mac_type = (bit<16>)hdr.ethernet.etherType; } @name(".set_valid_outer_multicast_packet_single_tagged") action set_valid_outer_multicast_packet_single_tagged() { - meta.ingress_metadata.lkp_pkt_type = 3w2; - meta.ingress_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.ingress_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.ingress_metadata.lkp_mac_type = hdr.vlan_tag_[0].etherType; + meta.ingress_metadata.lkp_pkt_type = (bit<3>)3w2; + meta.ingress_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.ingress_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.ingress_metadata.lkp_mac_type = (bit<16>)hdr.vlan_tag_[0].etherType; } @name(".set_valid_outer_multicast_packet_double_tagged") action set_valid_outer_multicast_packet_double_tagged() { - meta.ingress_metadata.lkp_pkt_type = 3w2; - meta.ingress_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.ingress_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.ingress_metadata.lkp_mac_type = hdr.vlan_tag_[1].etherType; + meta.ingress_metadata.lkp_pkt_type = (bit<3>)3w2; + meta.ingress_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.ingress_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.ingress_metadata.lkp_mac_type = (bit<16>)hdr.vlan_tag_[1].etherType; } @name(".set_valid_outer_multicast_packet_qinq_tagged") action set_valid_outer_multicast_packet_qinq_tagged() { - meta.ingress_metadata.lkp_pkt_type = 3w2; - meta.ingress_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.ingress_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.ingress_metadata.lkp_mac_type = hdr.ethernet.etherType; + meta.ingress_metadata.lkp_pkt_type = (bit<3>)3w2; + meta.ingress_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.ingress_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.ingress_metadata.lkp_mac_type = (bit<16>)hdr.ethernet.etherType; } @name(".set_valid_outer_broadcast_packet_untagged") action set_valid_outer_broadcast_packet_untagged() { - meta.ingress_metadata.lkp_pkt_type = 3w4; - meta.ingress_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.ingress_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.ingress_metadata.lkp_mac_type = hdr.ethernet.etherType; + meta.ingress_metadata.lkp_pkt_type = (bit<3>)3w4; + meta.ingress_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.ingress_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.ingress_metadata.lkp_mac_type = (bit<16>)hdr.ethernet.etherType; } @name(".set_valid_outer_broadcast_packet_single_tagged") action set_valid_outer_broadcast_packet_single_tagged() { - meta.ingress_metadata.lkp_pkt_type = 3w4; - meta.ingress_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.ingress_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.ingress_metadata.lkp_mac_type = hdr.vlan_tag_[0].etherType; + meta.ingress_metadata.lkp_pkt_type = (bit<3>)3w4; + meta.ingress_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.ingress_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.ingress_metadata.lkp_mac_type = (bit<16>)hdr.vlan_tag_[0].etherType; } @name(".set_valid_outer_broadcast_packet_double_tagged") action set_valid_outer_broadcast_packet_double_tagged() { - meta.ingress_metadata.lkp_pkt_type = 3w4; - meta.ingress_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.ingress_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.ingress_metadata.lkp_mac_type = hdr.vlan_tag_[1].etherType; + meta.ingress_metadata.lkp_pkt_type = (bit<3>)3w4; + meta.ingress_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.ingress_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.ingress_metadata.lkp_mac_type = (bit<16>)hdr.vlan_tag_[1].etherType; } @name(".set_valid_outer_broadcast_packet_qinq_tagged") action set_valid_outer_broadcast_packet_qinq_tagged() { - meta.ingress_metadata.lkp_pkt_type = 3w4; - meta.ingress_metadata.lkp_mac_sa = hdr.ethernet.srcAddr; - meta.ingress_metadata.lkp_mac_da = hdr.ethernet.dstAddr; - meta.ingress_metadata.lkp_mac_type = hdr.ethernet.etherType; + meta.ingress_metadata.lkp_pkt_type = (bit<3>)3w4; + meta.ingress_metadata.lkp_mac_sa = (bit<48>)hdr.ethernet.srcAddr; + meta.ingress_metadata.lkp_mac_da = (bit<48>)hdr.ethernet.dstAddr; + meta.ingress_metadata.lkp_mac_type = (bit<16>)hdr.ethernet.etherType; } @name("validate_outer_ethernet") table validate_outer_ethernet { actions = { diff --git a/testdata/p4_14_samples_outputs/wide_action1.p4 b/testdata/p4_14_samples_outputs/wide_action1.p4 index fa318e70d13..27e53426843 100644 --- a/testdata/p4_14_samples_outputs/wide_action1.p4 +++ b/testdata/p4_14_samples_outputs/wide_action1.p4 @@ -49,13 +49,13 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setmeta") action setmeta(bit<32> v0, bit<32> v1, bit<32> v2, bit<32> v3, bit<32> v4, bit<16> v5, bit<16> v6) { - meta.m.m0 = v0; - meta.m.m1 = v1; - meta.m.m2 = v2; - meta.m.m3 = v3; - meta.m.m4 = v4; - meta.m.m5 = v5; - meta.m.m6 = v6; + meta.m.m0 = (bit<32>)v0; + meta.m.m1 = (bit<32>)v1; + meta.m.m2 = (bit<32>)v2; + meta.m.m3 = (bit<32>)v3; + meta.m.m4 = (bit<32>)v4; + meta.m.m5 = (bit<16>)v5; + meta.m.m6 = (bit<16>)v6; } @name("test1") table test1 { actions = { diff --git a/testdata/p4_14_samples_outputs/wide_action2.p4 b/testdata/p4_14_samples_outputs/wide_action2.p4 index 2b2e3d74f37..781c5c41dab 100644 --- a/testdata/p4_14_samples_outputs/wide_action2.p4 +++ b/testdata/p4_14_samples_outputs/wide_action2.p4 @@ -44,29 +44,29 @@ struct headers { parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name("start") state start { packet.extract(hdr.data); - meta.ingress_metadata.bd = hdr.data.f2; + meta.ingress_metadata.bd = (bit<16>)hdr.data.f2; transition accept; } } control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".set_bd_info") action set_bd_info(bit<12> vrf, bit<10> rmac_group, bit<16> mrpf_group, bit<16> bd_label, bit<16> uuc_mc_index, bit<16> bcast_mc_index, bit<16> umc_mc_index, bit<1> ipv4_unicast_enabled, bit<1> ipv6_unicast_enabled, bit<2> ipv4_multicast_mode, bit<2> ipv6_multicast_mode, bit<1> igmp_snooping_enabled, bit<1> mld_snooping_enabled, bit<2> ipv4_urpf_mode, bit<2> ipv6_urpf_mode, bit<16> exclusion_id) { - meta.ingress_metadata.vrf = vrf; - meta.ingress_metadata.ipv4_unicast_enabled = ipv4_unicast_enabled; - meta.ingress_metadata.ipv6_unicast_enabled = ipv6_unicast_enabled; - meta.ingress_metadata.ipv4_multicast_mode = ipv4_multicast_mode; - meta.ingress_metadata.ipv6_multicast_mode = ipv6_multicast_mode; - meta.ingress_metadata.igmp_snooping_enabled = igmp_snooping_enabled; - meta.ingress_metadata.mld_snooping_enabled = mld_snooping_enabled; - meta.ingress_metadata.ipv4_urpf_mode = ipv4_urpf_mode; - meta.ingress_metadata.ipv6_urpf_mode = ipv6_urpf_mode; - meta.ingress_metadata.rmac_group = rmac_group; - meta.ingress_metadata.bd_mrpf_group = mrpf_group; - meta.ingress_metadata.uuc_mc_index = uuc_mc_index; - meta.ingress_metadata.umc_mc_index = umc_mc_index; - meta.ingress_metadata.bcast_mc_index = bcast_mc_index; - meta.ingress_metadata.bd_label = bd_label; - meta.intrinsic_metadata.exclusion_id1 = exclusion_id; + meta.ingress_metadata.vrf = (bit<12>)vrf; + meta.ingress_metadata.ipv4_unicast_enabled = (bit<1>)ipv4_unicast_enabled; + meta.ingress_metadata.ipv6_unicast_enabled = (bit<1>)ipv6_unicast_enabled; + meta.ingress_metadata.ipv4_multicast_mode = (bit<2>)ipv4_multicast_mode; + meta.ingress_metadata.ipv6_multicast_mode = (bit<2>)ipv6_multicast_mode; + meta.ingress_metadata.igmp_snooping_enabled = (bit<1>)igmp_snooping_enabled; + meta.ingress_metadata.mld_snooping_enabled = (bit<1>)mld_snooping_enabled; + meta.ingress_metadata.ipv4_urpf_mode = (bit<2>)ipv4_urpf_mode; + meta.ingress_metadata.ipv6_urpf_mode = (bit<2>)ipv6_urpf_mode; + meta.ingress_metadata.rmac_group = (bit<10>)rmac_group; + meta.ingress_metadata.bd_mrpf_group = (bit<16>)mrpf_group; + meta.ingress_metadata.uuc_mc_index = (bit<16>)uuc_mc_index; + meta.ingress_metadata.umc_mc_index = (bit<16>)umc_mc_index; + meta.ingress_metadata.bcast_mc_index = (bit<16>)bcast_mc_index; + meta.ingress_metadata.bd_label = (bit<16>)bd_label; + meta.intrinsic_metadata.exclusion_id1 = (bit<16>)exclusion_id; } @name("bd") table bd { actions = { diff --git a/testdata/p4_14_samples_outputs/wide_action3.p4 b/testdata/p4_14_samples_outputs/wide_action3.p4 index 1641c94e013..dccbc807eeb 100644 --- a/testdata/p4_14_samples_outputs/wide_action3.p4 +++ b/testdata/p4_14_samples_outputs/wide_action3.p4 @@ -49,13 +49,13 @@ parser ParserImpl(packet_in packet, out headers hdr, inout metadata meta, inout control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { @name(".setmeta") action setmeta(bit<8> v0, bit<32> v1, bit<32> v2, bit<32> v3, bit<32> v4, bit<16> v5, bit<16> v6) { - meta.m.m10 = v0; - meta.m.m1 = v1; - meta.m.m2 = v2; - meta.m.m3 = v3; - meta.m.m4 = v4; - meta.m.m5 = v5; - meta.m.m6 = v6; + meta.m.m10 = (bit<8>)v0; + meta.m.m1 = (bit<32>)v1; + meta.m.m2 = (bit<32>)v2; + meta.m.m3 = (bit<32>)v3; + meta.m.m4 = (bit<32>)v4; + meta.m.m5 = (bit<16>)v5; + meta.m.m6 = (bit<16>)v6; } @name("test1") table test1 { actions = { diff --git a/testdata/p4_16_samples/implicit.p4 b/testdata/p4_16_errors/implicit.p4 similarity index 100% rename from testdata/p4_16_samples/implicit.p4 rename to testdata/p4_16_errors/implicit.p4 diff --git a/testdata/p4_16_errors/not_bound.p4 b/testdata/p4_16_errors/not_bound.p4 index 98774b1b125..3f01a68ebbd 100644 --- a/testdata/p4_16_errors/not_bound.p4 +++ b/testdata/p4_16_errors/not_bound.p4 @@ -29,7 +29,7 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t } control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - action set_nhop(bit<8> port) { + action set_nhop(bit<9> port) { standard_metadata.egress_spec = port; } apply { diff --git a/testdata/p4_16_samples_outputs/implicit.p4 b/testdata/p4_16_errors_outputs/implicit.p4 similarity index 100% rename from testdata/p4_16_samples_outputs/implicit.p4 rename to testdata/p4_16_errors_outputs/implicit.p4 diff --git a/testdata/p4_16_errors_outputs/implicit.p4-stderr b/testdata/p4_16_errors_outputs/implicit.p4-stderr new file mode 100644 index 00000000000..06c11c59704 --- /dev/null +++ b/testdata/p4_16_errors_outputs/implicit.p4-stderr @@ -0,0 +1,3 @@ +../testdata/p4_16_errors/implicit.p4(19): error: b: Cannot unify int<32> to bit<32> + bit<32> b = 32s1; + ^^^^^^^^^^^^^^^^^ diff --git a/testdata/p4_16_errors_outputs/not_bound.p4 b/testdata/p4_16_errors_outputs/not_bound.p4 index 1b6dbf973bb..304097c71a1 100644 --- a/testdata/p4_16_errors_outputs/not_bound.p4 +++ b/testdata/p4_16_errors_outputs/not_bound.p4 @@ -19,7 +19,7 @@ control egress(inout headers hdr, inout metadata meta, inout standard_metadata_t } control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - action set_nhop(bit<8> port) { + action set_nhop(bit<9> port) { standard_metadata.egress_spec = port; } apply { diff --git a/testdata/p4_16_errors_outputs/not_bound.p4-stderr b/testdata/p4_16_errors_outputs/not_bound.p4-stderr index 39e04d3472b..fe5dbe3154a 100644 --- a/testdata/p4_16_errors_outputs/not_bound.p4-stderr +++ b/testdata/p4_16_errors_outputs/not_bound.p4-stderr @@ -2,5 +2,5 @@ set_nhop(); // parameter not bound ^^^^^^^^^^ ../testdata/p4_16_errors/not_bound.p4(32) - action set_nhop(bit<8> port) { + action set_nhop(bit<9> port) { ^^^^ diff --git a/testdata/p4_16_errors_outputs/signs.p4-stderr b/testdata/p4_16_errors_outputs/signs.p4-stderr index eb275e2b25c..0b39766ae7c 100644 --- a/testdata/p4_16_errors_outputs/signs.p4-stderr +++ b/testdata/p4_16_errors_outputs/signs.p4-stderr @@ -4,6 +4,9 @@ ../testdata/p4_16_errors/signs.p4(16) action a() { ^ +../testdata/p4_16_errors/signs.p4(18): error: b: Cannot unify bit<8> to int<8> + int<8> b = 8w0; + ^^^^^^^^^^^^^^^ ../testdata/p4_16_errors/signs.p4(19): error: -: Cannot operate on values with different signs a = a - b; ^^^^^ diff --git a/testdata/p4_16_samples/arith-bmv2.p4 b/testdata/p4_16_samples/arith-bmv2.p4 index 0659c973914..0c634c09354 100644 --- a/testdata/p4_16_samples/arith-bmv2.p4 +++ b/testdata/p4_16_samples/arith-bmv2.p4 @@ -27,7 +27,7 @@ header hdr { control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { action add() - { h.h.c = h.h.a + h.h.b; sm.egress_spec = 0; } + { h.h.c = (bit<64>)(h.h.a + h.h.b); sm.egress_spec = 0; } table t { actions = { add; } const default_action = add; diff --git a/testdata/p4_16_samples/arith-inline-bmv2.p4 b/testdata/p4_16_samples/arith-inline-bmv2.p4 index e4a1e827a50..d34d9dfb04a 100644 --- a/testdata/p4_16_samples/arith-inline-bmv2.p4 +++ b/testdata/p4_16_samples/arith-inline-bmv2.p4 @@ -25,7 +25,7 @@ header hdr { control compute(inout hdr h) { action add() - { h.c = h.a + h.b; } + { h.c = (bit<64>)(h.a + h.b); } table t { actions = { add; } const default_action = add; diff --git a/testdata/p4_16_samples/arith3-bmv2.p4 b/testdata/p4_16_samples/arith3-bmv2.p4 index a893f3297ec..433d164b41c 100644 --- a/testdata/p4_16_samples/arith3-bmv2.p4 +++ b/testdata/p4_16_samples/arith3-bmv2.p4 @@ -27,7 +27,7 @@ header hdr { control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { action shift() - { h.h.c = h.h.a << h.h.b; sm.egress_spec = 0; } + { h.h.c = (bit<64>)(h.h.a << h.h.b); sm.egress_spec = 0; } table t { actions = { shift; } const default_action = shift; diff --git a/testdata/p4_16_samples/arith4-bmv2.p4 b/testdata/p4_16_samples/arith4-bmv2.p4 index 318e3998c78..64e7ab93cd2 100644 --- a/testdata/p4_16_samples/arith4-bmv2.p4 +++ b/testdata/p4_16_samples/arith4-bmv2.p4 @@ -27,7 +27,7 @@ header hdr { control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { action shift() - { h.h.c = h.h.a >> h.h.b; sm.egress_spec = 0; } + { h.h.c = (bit<64>)(h.h.a >> h.h.b); sm.egress_spec = 0; } table t { actions = { shift; } const default_action = shift; diff --git a/testdata/p4_16_samples/arith5-bmv2.p4 b/testdata/p4_16_samples/arith5-bmv2.p4 index 58aa656cd1d..eca6ab51bc5 100644 --- a/testdata/p4_16_samples/arith5-bmv2.p4 +++ b/testdata/p4_16_samples/arith5-bmv2.p4 @@ -27,7 +27,7 @@ header hdr { control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { action shift() - { h.h.c = h.h.a >> h.h.b; sm.egress_spec = 0; } + { h.h.c = (int<64>)(h.h.a >> h.h.b); sm.egress_spec = 0; } table t { actions = { shift; } const default_action = shift; diff --git a/testdata/p4_16_samples/array_field.p4 b/testdata/p4_16_samples/array_field.p4 index edc4271e406..d4a6c029af6 100644 --- a/testdata/p4_16_samples/array_field.p4 +++ b/testdata/p4_16_samples/array_field.p4 @@ -16,7 +16,7 @@ limitations under the License. header H { bit z; } -extern bit f(inout bit x, in bit b); +extern bit<32> f(inout bit x, in bit b); control c(out H[2] h); package top(c _c); diff --git a/testdata/p4_16_samples/constant_folding.p4 b/testdata/p4_16_samples/constant_folding.p4 index 63102351141..cfc2cfdd7d8 100644 --- a/testdata/p4_16_samples/constant_folding.p4 +++ b/testdata/p4_16_samples/constant_folding.p4 @@ -56,7 +56,7 @@ control c(out bit<32> x) { x = 5 << 0; x = 5 >> 0; - x = 4w1 ++ 4w1; + x = (bit<32>)(4w1 ++ 4w1); bool w; w = 5 == 3; diff --git a/testdata/p4_16_samples/flowlet_switching-bmv2.p4 b/testdata/p4_16_samples/flowlet_switching-bmv2.p4 index 8e7e7fc4f1c..b159d48af62 100644 --- a/testdata/p4_16_samples/flowlet_switching-bmv2.p4 +++ b/testdata/p4_16_samples/flowlet_switching-bmv2.p4 @@ -133,7 +133,7 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name("lookup_flowlet_map") action lookup_flowlet_map() { hash(meta.ingress_metadata.flowlet_map_index, HashAlgorithm.crc16, (bit<13>)0, { hdr.ipv4.srcAddr, hdr.ipv4.dstAddr, hdr.ipv4.protocol, hdr.tcp.srcPort, hdr.tcp.dstPort }, (bit<26>)13); flowlet_id.read(meta.ingress_metadata.flowlet_id, (bit<32>)meta.ingress_metadata.flowlet_map_index); - meta.ingress_metadata.flow_ipg = meta.intrinsic_metadata.ingress_global_timestamp; + meta.ingress_metadata.flow_ipg = (bit<32>)meta.intrinsic_metadata.ingress_global_timestamp; flowlet_lasttime.read(meta.ingress_metadata.flowlet_lasttime, (bit<32>)meta.ingress_metadata.flowlet_map_index); meta.ingress_metadata.flow_ipg = meta.ingress_metadata.flow_ipg - meta.ingress_metadata.flowlet_lasttime; flowlet_lasttime.write((bit<32>)meta.ingress_metadata.flowlet_map_index, (bit<32>)meta.intrinsic_metadata.ingress_global_timestamp); diff --git a/testdata/p4_16_samples/generic1.p4 b/testdata/p4_16_samples/generic1.p4 index b498acf1795..a53ccce8c32 100644 --- a/testdata/p4_16_samples/generic1.p4 +++ b/testdata/p4_16_samples/generic1.p4 @@ -26,7 +26,7 @@ control c()(T size) { Generic(size) x; apply { bit<32> a = x.get>(); - bit<32> b = x.get1(10w0, 5w0); + bit<5> b = x.get1(10w0, 5w0); f(b); } } diff --git a/testdata/p4_16_samples/issue364-bmv2.p4 b/testdata/p4_16_samples/issue364-bmv2.p4 index 4818d62bc0c..5ee1f646a4d 100644 --- a/testdata/p4_16_samples/issue364-bmv2.p4 +++ b/testdata/p4_16_samples/issue364-bmv2.p4 @@ -48,7 +48,7 @@ control deparser(packet_out b, in Headers h) { control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { direct_counter(CounterType.packets) c; - action my_action(bit<32> a) { sm.egress_spec = a; } + action my_action(bit<9> a) { sm.egress_spec = a; } table t { actions = { my_action; } const default_action = my_action(0); diff --git a/testdata/p4_16_samples/octal.p4 b/testdata/p4_16_samples/octal.p4 index a1c4d7d3148..a933a0af615 100644 --- a/testdata/p4_16_samples/octal.p4 +++ b/testdata/p4_16_samples/octal.p4 @@ -1,6 +1,6 @@ const bit<16> n1 = 16w0377; // 377 const bit<16> n2 = 16w0o0377; // 255 -const bit t1 = (n1 == 377); -const bit t2 = (n1 == 255); -const bit t3 = (n2 == 377); -const bit t4 = (n2 == 255); +const bool t1 = (n1 == 377); +const bool t2 = (n1 == 255); +const bool t3 = (n2 == 377); +const bool t4 = (n2 == 255); diff --git a/testdata/p4_16_samples/stack_complex-bmv2.p4 b/testdata/p4_16_samples/stack_complex-bmv2.p4 index ea614538e60..fb5e51fb14e 100644 --- a/testdata/p4_16_samples/stack_complex-bmv2.p4 +++ b/testdata/p4_16_samples/stack_complex-bmv2.p4 @@ -55,7 +55,7 @@ control deparser(packet_out b, in Headers h) { } control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { - action set_port() { sm.egress_spec = m.v; } + action set_port() { sm.egress_spec = (bit<9>)m.v; } table t { actions = { set_port; } const default_action = set_port(); diff --git a/testdata/p4_16_samples/unused-counter-bmv2.p4 b/testdata/p4_16_samples/unused-counter-bmv2.p4 index 6d06ccee87d..0c36f66e5d9 100644 --- a/testdata/p4_16_samples/unused-counter-bmv2.p4 +++ b/testdata/p4_16_samples/unused-counter-bmv2.p4 @@ -50,7 +50,7 @@ control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { direct_counter(CounterType.packets) c; direct_counter(CounterType.packets) c1; - action my_action(bit<32> a) { sm.egress_spec = a; } + action my_action(bit<9> a) { sm.egress_spec = a; } table t { actions = { my_action; } const default_action = my_action(0); diff --git a/testdata/p4_16_samples_outputs/arith-bmv2.p4 b/testdata/p4_16_samples_outputs/arith-bmv2.p4 index c72acb7fc5d..05e4fe2fd72 100644 --- a/testdata/p4_16_samples_outputs/arith-bmv2.p4 +++ b/testdata/p4_16_samples_outputs/arith-bmv2.p4 @@ -44,7 +44,7 @@ control deparser(packet_out b, in Headers h) { control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { action add() { - h.h.c = h.h.a + h.h.b; + h.h.c = (bit<64>)(h.h.a + h.h.b); sm.egress_spec = 0; } table t { diff --git a/testdata/p4_16_samples_outputs/arith-inline-bmv2.p4 b/testdata/p4_16_samples_outputs/arith-inline-bmv2.p4 index 47be98c7f84..14929136822 100644 --- a/testdata/p4_16_samples_outputs/arith-inline-bmv2.p4 +++ b/testdata/p4_16_samples_outputs/arith-inline-bmv2.p4 @@ -9,7 +9,7 @@ header hdr { control compute(inout hdr h) { action add() { - h.c = h.a + h.b; + h.c = (bit<64>)(h.a + h.b); } table t { actions = { diff --git a/testdata/p4_16_samples_outputs/arith3-bmv2.p4 b/testdata/p4_16_samples_outputs/arith3-bmv2.p4 index da8fee753d0..29fed1c067f 100644 --- a/testdata/p4_16_samples_outputs/arith3-bmv2.p4 +++ b/testdata/p4_16_samples_outputs/arith3-bmv2.p4 @@ -44,7 +44,7 @@ control deparser(packet_out b, in Headers h) { control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { action shift() { - h.h.c = h.h.a << h.h.b; + h.h.c = (bit<64>)(h.h.a << h.h.b); sm.egress_spec = 0; } table t { diff --git a/testdata/p4_16_samples_outputs/arith4-bmv2.p4 b/testdata/p4_16_samples_outputs/arith4-bmv2.p4 index f4c86d670c3..5941f9377d1 100644 --- a/testdata/p4_16_samples_outputs/arith4-bmv2.p4 +++ b/testdata/p4_16_samples_outputs/arith4-bmv2.p4 @@ -44,7 +44,7 @@ control deparser(packet_out b, in Headers h) { control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { action shift() { - h.h.c = h.h.a >> h.h.b; + h.h.c = (bit<64>)(h.h.a >> h.h.b); sm.egress_spec = 0; } table t { diff --git a/testdata/p4_16_samples_outputs/arith5-bmv2.p4 b/testdata/p4_16_samples_outputs/arith5-bmv2.p4 index b4bebc3377b..3a128a31f93 100644 --- a/testdata/p4_16_samples_outputs/arith5-bmv2.p4 +++ b/testdata/p4_16_samples_outputs/arith5-bmv2.p4 @@ -44,7 +44,7 @@ control deparser(packet_out b, in Headers h) { control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { action shift() { - h.h.c = h.h.a >> h.h.b; + h.h.c = (int<64>)(h.h.a >> h.h.b); sm.egress_spec = 0; } table t { diff --git a/testdata/p4_16_samples_outputs/array_field-first.p4 b/testdata/p4_16_samples_outputs/array_field-first.p4 index a5221c2b6ad..28087709241 100644 --- a/testdata/p4_16_samples_outputs/array_field-first.p4 +++ b/testdata/p4_16_samples_outputs/array_field-first.p4 @@ -2,7 +2,7 @@ header H { bit<1> z; } -extern bit<1> f(inout bit<1> x, in bit<1> b); +extern bit<32> f(inout bit<1> x, in bit<1> b); control c(out H[2] h); package top(c _c); control my(out H[2] s) { @@ -10,8 +10,8 @@ control my(out H[2] s) { bit<32> a = 32w0; s[a].z = 1w1; s[a + 32w1].z = 1w0; - a = (bit<32>)f(s[a].z, 1w0); - a = (bit<32>)f(s[a].z, 1w1); + a = f(s[a].z, 1w0); + a = f(s[a].z, 1w1); } } diff --git a/testdata/p4_16_samples_outputs/array_field-frontend.p4 b/testdata/p4_16_samples_outputs/array_field-frontend.p4 index 4f52e1d81fc..bb1109a7131 100644 --- a/testdata/p4_16_samples_outputs/array_field-frontend.p4 +++ b/testdata/p4_16_samples_outputs/array_field-frontend.p4 @@ -2,19 +2,19 @@ header H { bit<1> z; } -extern bit<1> f(inout bit<1> x, in bit<1> b); +extern bit<32> f(inout bit<1> x, in bit<1> b); control c(out H[2] h); package top(c _c); control my(out H[2] s) { bit<32> a_0; - bit<1> tmp; - bit<1> tmp_0; + bit<32> tmp; + bit<32> tmp_0; apply { a_0 = 32w0; s[a_0].z = 1w1; s[a_0 + 32w1].z = 1w0; tmp = f(s[a_0].z, 1w0); - a_0 = (bit<32>)tmp; + a_0 = tmp; tmp_0 = f(s[a_0].z, 1w1); } } diff --git a/testdata/p4_16_samples_outputs/array_field-midend.p4 b/testdata/p4_16_samples_outputs/array_field-midend.p4 index 477810803aa..232fbc76015 100644 --- a/testdata/p4_16_samples_outputs/array_field-midend.p4 +++ b/testdata/p4_16_samples_outputs/array_field-midend.p4 @@ -2,11 +2,11 @@ header H { bit<1> z; } -extern bit<1> f(inout bit<1> x, in bit<1> b); +extern bit<32> f(inout bit<1> x, in bit<1> b); control c(out H[2] h); package top(c _c); control my(out H[2] s) { - bit<1> tmp_1; + bit<32> tmp_1; @hidden action act() { s[32w0].z = 1w1; s[32w1].z = 1w0; diff --git a/testdata/p4_16_samples_outputs/array_field.p4 b/testdata/p4_16_samples_outputs/array_field.p4 index 50905d6b2a0..309e6fc1432 100644 --- a/testdata/p4_16_samples_outputs/array_field.p4 +++ b/testdata/p4_16_samples_outputs/array_field.p4 @@ -2,7 +2,7 @@ header H { bit<1> z; } -extern bit<1> f(inout bit<1> x, in bit<1> b); +extern bit<32> f(inout bit<1> x, in bit<1> b); control c(out H[2] h); package top(c _c); control my(out H[2] s) { diff --git a/testdata/p4_16_samples_outputs/cast_noop-first.p4 b/testdata/p4_16_samples_outputs/cast_noop-first.p4 new file mode 100644 index 00000000000..4fd911fd9f4 --- /dev/null +++ b/testdata/p4_16_samples_outputs/cast_noop-first.p4 @@ -0,0 +1,5 @@ +const bool x = true; +const bool y = true; +const bool v = false; +const bool z = true; +const bool w = false; diff --git a/testdata/p4_16_samples_outputs/constant_folding.p4 b/testdata/p4_16_samples_outputs/constant_folding.p4 index 0f466ff88d8..b41abda8faa 100644 --- a/testdata/p4_16_samples_outputs/constant_folding.p4 +++ b/testdata/p4_16_samples_outputs/constant_folding.p4 @@ -28,7 +28,7 @@ control c(out bit<32> x) { x = 32w5 >> 1; x = 5 << 0; x = 5 >> 0; - x = 4w1 ++ 4w1; + x = (bit<32>)(4w1 ++ 4w1); bool w; w = 5 == 3; w = 32w5 == 3; diff --git a/testdata/p4_16_samples_outputs/count_ebpf-first.p4 b/testdata/p4_16_samples_outputs/count_ebpf-first.p4 index 4baf5be32a2..fbadafcf261 100644 --- a/testdata/p4_16_samples_outputs/count_ebpf-first.p4 +++ b/testdata/p4_16_samples_outputs/count_ebpf-first.p4 @@ -47,7 +47,7 @@ control pipe(inout Headers_t headers, out bool pass) { CounterArray(32w10, true) counters; apply { if (headers.ipv4.isValid()) { - counters.increment((bit<32>)headers.ipv4.dstAddr); + counters.increment(headers.ipv4.dstAddr); pass = true; } else diff --git a/testdata/p4_16_samples_outputs/flowlet_switching-bmv2-first.p4 b/testdata/p4_16_samples_outputs/flowlet_switching-bmv2-first.p4 index 6a3a9afffcb..8ca990b77a9 100644 --- a/testdata/p4_16_samples_outputs/flowlet_switching-bmv2-first.p4 +++ b/testdata/p4_16_samples_outputs/flowlet_switching-bmv2-first.p4 @@ -143,7 +143,7 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ } @name("update_flowlet_id") action update_flowlet_id() { meta.ingress_metadata.flowlet_id = meta.ingress_metadata.flowlet_id + 16w1; - flowlet_id.write((bit<32>)meta.ingress_metadata.flowlet_map_index, (bit<16>)meta.ingress_metadata.flowlet_id); + flowlet_id.write((bit<32>)meta.ingress_metadata.flowlet_map_index, meta.ingress_metadata.flowlet_id); } @name("ecmp_group") table ecmp_group { actions = { diff --git a/testdata/p4_16_samples_outputs/flowlet_switching-bmv2.p4 b/testdata/p4_16_samples_outputs/flowlet_switching-bmv2.p4 index 1e51d59d13f..d556a35e3b5 100644 --- a/testdata/p4_16_samples_outputs/flowlet_switching-bmv2.p4 +++ b/testdata/p4_16_samples_outputs/flowlet_switching-bmv2.p4 @@ -133,7 +133,7 @@ control ingress(inout headers hdr, inout metadata meta, inout standard_metadata_ @name("lookup_flowlet_map") action lookup_flowlet_map() { hash(meta.ingress_metadata.flowlet_map_index, HashAlgorithm.crc16, (bit<13>)0, { hdr.ipv4.srcAddr, hdr.ipv4.dstAddr, hdr.ipv4.protocol, hdr.tcp.srcPort, hdr.tcp.dstPort }, (bit<26>)13); flowlet_id.read(meta.ingress_metadata.flowlet_id, (bit<32>)meta.ingress_metadata.flowlet_map_index); - meta.ingress_metadata.flow_ipg = meta.intrinsic_metadata.ingress_global_timestamp; + meta.ingress_metadata.flow_ipg = (bit<32>)meta.intrinsic_metadata.ingress_global_timestamp; flowlet_lasttime.read(meta.ingress_metadata.flowlet_lasttime, (bit<32>)meta.ingress_metadata.flowlet_map_index); meta.ingress_metadata.flow_ipg = meta.ingress_metadata.flow_ipg - meta.ingress_metadata.flowlet_lasttime; flowlet_lasttime.write((bit<32>)meta.ingress_metadata.flowlet_map_index, (bit<32>)meta.intrinsic_metadata.ingress_global_timestamp); diff --git a/testdata/p4_16_samples_outputs/generic1-first.p4 b/testdata/p4_16_samples_outputs/generic1-first.p4 index 766c52b84c3..be11f8396c0 100644 --- a/testdata/p4_16_samples_outputs/generic1-first.p4 +++ b/testdata/p4_16_samples_outputs/generic1-first.p4 @@ -9,8 +9,8 @@ control c()(T size) { Generic(size) x; apply { bit<32> a = x.get>(); - bit<32> b = (bit<32>)(x.get1, bit<10>>(10w0, 5w0)); - f>(b); + bit<5> b = x.get1, bit<10>>(10w0, 5w0); + f>(b); } } diff --git a/testdata/p4_16_samples_outputs/generic1-frontend.p4 b/testdata/p4_16_samples_outputs/generic1-frontend.p4 index 8b0612fcb4f..e73fe5301ac 100644 --- a/testdata/p4_16_samples_outputs/generic1-frontend.p4 +++ b/testdata/p4_16_samples_outputs/generic1-frontend.p4 @@ -6,15 +6,15 @@ extern Generic { extern void f(in T arg); control c_0() { - bit<32> b_0; + bit<5> b_0; bit<32> tmp; bit<5> tmp_0; @name("x") Generic>(8w9) x_0; apply { tmp = x_0.get>(); tmp_0 = x_0.get1, bit<10>>(10w0, 5w0); - b_0 = (bit<32>)tmp_0; - f>(b_0); + b_0 = tmp_0; + f>(b_0); } } diff --git a/testdata/p4_16_samples_outputs/generic1-midend.p4 b/testdata/p4_16_samples_outputs/generic1-midend.p4 index 6137bada04e..24f991d28d3 100644 --- a/testdata/p4_16_samples_outputs/generic1-midend.p4 +++ b/testdata/p4_16_samples_outputs/generic1-midend.p4 @@ -10,7 +10,7 @@ control caller() { @name("cinst.x") Generic>(8w9) cinst_x_0; @hidden action act() { cinst_tmp_2 = cinst_x_0.get1, bit<10>>(10w0, 5w0); - f>((bit<32>)cinst_tmp_2); + f>(cinst_tmp_2); } @hidden table tbl_act { actions = { diff --git a/testdata/p4_16_samples_outputs/generic1.p4 b/testdata/p4_16_samples_outputs/generic1.p4 index d662a541d08..dd81cc38ea6 100644 --- a/testdata/p4_16_samples_outputs/generic1.p4 +++ b/testdata/p4_16_samples_outputs/generic1.p4 @@ -9,7 +9,7 @@ control c()(T size) { Generic(size) x; apply { bit<32> a = x.get>(); - bit<32> b = x.get1(10w0, 5w0); + bit<5> b = x.get1(10w0, 5w0); f(b); } } diff --git a/testdata/p4_16_samples_outputs/implicit-first.p4 b/testdata/p4_16_samples_outputs/implicit-first.p4 deleted file mode 100644 index ee13a9b6934..00000000000 --- a/testdata/p4_16_samples_outputs/implicit-first.p4 +++ /dev/null @@ -1,4 +0,0 @@ -action p() { - bit<32> b = 32w1; - b = b + 32w1; -} diff --git a/testdata/p4_16_samples_outputs/implicit-frontend.p4 b/testdata/p4_16_samples_outputs/implicit-frontend.p4 deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/testdata/p4_16_samples_outputs/implicit.p4-stderr b/testdata/p4_16_samples_outputs/implicit.p4-stderr deleted file mode 100644 index 7f94c95a8ff..00000000000 --- a/testdata/p4_16_samples_outputs/implicit.p4-stderr +++ /dev/null @@ -1 +0,0 @@ -warning: Program does not contain a `main' module diff --git a/testdata/p4_16_samples_outputs/issue361-bmv2-first.p4 b/testdata/p4_16_samples_outputs/issue361-bmv2-first.p4 new file mode 100644 index 00000000000..8820deaeac6 --- /dev/null +++ b/testdata/p4_16_samples_outputs/issue361-bmv2-first.p4 @@ -0,0 +1,59 @@ +#include +#include + +header H { + bit<32> f; +} + +struct my_packet { + H h; +} + +struct my_metadata { +} + +parser MyParser(packet_in b, out my_packet p, inout my_metadata m, inout standard_metadata_t s) { + bool bv = true; + state start { + transition select(bv) { + false: next; + true: accept; + } + } + state next { + b.extract(p.h); + transition accept; + } +} + +control MyVerifyChecksum(in my_packet hdr, inout my_metadata meta) { + apply { + } +} + +control C() { + apply { + } +} + +control MyIngress(inout my_packet p, inout my_metadata m, inout standard_metadata_t s) { + apply { + } +} + +control MyEgress(inout my_packet p, inout my_metadata m, inout standard_metadata_t s) { + apply { + } +} + +control MyComputeChecksum(inout my_packet p, inout my_metadata m) { + apply { + } +} + +control MyDeparser(packet_out b, in my_packet p) { + apply { + } +} + +V1Switch(MyParser(), MyVerifyChecksum(), MyIngress(), MyEgress(), MyComputeChecksum(), MyDeparser()) main; diff --git a/testdata/p4_16_samples_outputs/issue364-bmv2-first.p4 b/testdata/p4_16_samples_outputs/issue364-bmv2-first.p4 index 168cbe86bce..5d65fe698cd 100644 --- a/testdata/p4_16_samples_outputs/issue364-bmv2-first.p4 +++ b/testdata/p4_16_samples_outputs/issue364-bmv2-first.p4 @@ -42,14 +42,14 @@ control deparser(packet_out b, in Headers h) { control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { direct_counter(CounterType.packets) c; - action my_action(bit<32> a) { - sm.egress_spec = (bit<9>)a; + action my_action(bit<9> a) { + sm.egress_spec = a; } table t { actions = { my_action(); } - const default_action = my_action(32w0); + const default_action = my_action(9w0); counters = c; } apply { diff --git a/testdata/p4_16_samples_outputs/issue364-bmv2-frontend.p4 b/testdata/p4_16_samples_outputs/issue364-bmv2-frontend.p4 index d5a35e75d1a..66eac951d94 100644 --- a/testdata/p4_16_samples_outputs/issue364-bmv2-frontend.p4 +++ b/testdata/p4_16_samples_outputs/issue364-bmv2-frontend.p4 @@ -42,14 +42,14 @@ control deparser(packet_out b, in Headers h) { control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { @name("c") direct_counter(CounterType.packets) c_0; - @name("my_action") action my_action_0(bit<32> a) { - sm.egress_spec = (bit<9>)a; + @name("my_action") action my_action_0(bit<9> a) { + sm.egress_spec = a; } @name("t") table t_0 { actions = { my_action_0(); } - const default_action = my_action_0(32w0); + const default_action = my_action_0(9w0); counters = c_0; } apply { diff --git a/testdata/p4_16_samples_outputs/issue364-bmv2-midend.p4 b/testdata/p4_16_samples_outputs/issue364-bmv2-midend.p4 index c33dd7a85f7..a3bb2a4bc22 100644 --- a/testdata/p4_16_samples_outputs/issue364-bmv2-midend.p4 +++ b/testdata/p4_16_samples_outputs/issue364-bmv2-midend.p4 @@ -42,14 +42,14 @@ control deparser(packet_out b, in Headers h) { control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { @name("c") direct_counter(CounterType.packets) c; - @name("my_action") action my_action_0(bit<32> a) { - sm.egress_spec = (bit<9>)a; + @name("my_action") action my_action_0(bit<9> a) { + sm.egress_spec = a; } @name("t") table t { actions = { my_action_0(); } - const default_action = my_action_0(32w0); + const default_action = my_action_0(9w0); counters = c; } apply { diff --git a/testdata/p4_16_samples_outputs/issue364-bmv2.p4 b/testdata/p4_16_samples_outputs/issue364-bmv2.p4 index 89efe203933..741c2ae2c32 100644 --- a/testdata/p4_16_samples_outputs/issue364-bmv2.p4 +++ b/testdata/p4_16_samples_outputs/issue364-bmv2.p4 @@ -42,7 +42,7 @@ control deparser(packet_out b, in Headers h) { control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { direct_counter(CounterType.packets) c; - action my_action(bit<32> a) { + action my_action(bit<9> a) { sm.egress_spec = a; } table t { diff --git a/testdata/p4_16_samples_outputs/issue407-2-first.p4 b/testdata/p4_16_samples_outputs/issue407-2-first.p4 new file mode 100644 index 00000000000..6c7f0826c59 --- /dev/null +++ b/testdata/p4_16_samples_outputs/issue407-2-first.p4 @@ -0,0 +1,38 @@ +#include +#include + +typedef bit<48> EthernetAddress; +typedef int<32> MySignedInt; +struct mystruct1 { + bit<4> a; + bit<4> b; +} + +struct mystruct2 { + mystruct1 foo; + bit<4> a; + bit<4> b; +} + +enum myenum1 { + MY_ENUM1_VAL1, + MY_ENUM1_VAL2, + MY_ENUM1_VAL3 +} + +header Ethernet_h { + EthernetAddress dstAddr; + EthernetAddress srcAddr; + bit<16> etherType; +} + +typedef tuple, bit<16>> myTuple0; +typedef tuple, int<33>, EthernetAddress, MySignedInt, varbit<56>, varbit<104>, error, bool, myenum1, Ethernet_h, Ethernet_h[4], mystruct1, mystruct2, myTuple0> myTuple1; +header MyHeader1 { + bit<8> x1; + int<8> x2; + EthernetAddress x3; + MySignedInt x4; + varbit<8> x5; +} + diff --git a/testdata/p4_16_samples_outputs/issue407-3-first.p4 b/testdata/p4_16_samples_outputs/issue407-3-first.p4 new file mode 100644 index 00000000000..ee90b39089b --- /dev/null +++ b/testdata/p4_16_samples_outputs/issue407-3-first.p4 @@ -0,0 +1,47 @@ +#include +#include + +typedef bit<48> EthernetAddress; +typedef int<32> MySignedInt; +struct mystruct1 { + bit<4> a; + bit<4> b; +} + +struct mystruct2 { + mystruct1 foo; + bit<4> a; + bit<4> b; +} + +enum myenum1 { + MY_ENUM1_VAL1, + MY_ENUM1_VAL2, + MY_ENUM1_VAL3 +} + +header Ethernet_h { + EthernetAddress dstAddr; + EthernetAddress srcAddr; + bit<16> etherType; +} + +typedef tuple, bit<16>> myTuple0; +typedef tuple, int<33>, EthernetAddress, MySignedInt, varbit<56>, varbit<104>, error, bool, myenum1, Ethernet_h, Ethernet_h[4], mystruct1, mystruct2, myTuple0> myTuple1; +struct myStruct1 { + bit<7> x1; + int<33> x2; + EthernetAddress x3; + MySignedInt x4; + varbit<56> x5; + varbit<104> x6; + error x7; + bool x8; + myenum1 x9; + Ethernet_h x10; + Ethernet_h[4] x11; + mystruct1 x12; + mystruct2 x13; + myTuple0 x14; +} + diff --git a/testdata/p4_16_samples_outputs/issue496-first.p4 b/testdata/p4_16_samples_outputs/issue496-first.p4 new file mode 100644 index 00000000000..ac6f281bd09 --- /dev/null +++ b/testdata/p4_16_samples_outputs/issue496-first.p4 @@ -0,0 +1,60 @@ +#include +#include + +header h_t { + bit<8> f; +} + +struct my_packet { + h_t h; +} + +struct my_metadata { +} + +parser MyParser(packet_in b, out my_packet p, inout my_metadata m, inout standard_metadata_t s) { + state start { + transition accept; + } +} + +control MyVerifyChecksum(in my_packet hdr, inout my_metadata meta) { + apply { + } +} + +control D() { + apply { + } +} + +control C()(D d) { + apply { + d.apply(); + } +} + +control MyIngress(inout my_packet p, inout my_metadata m, inout standard_metadata_t s) { + D() d; + C(d) c; + apply { + c.apply(); + } +} + +control MyEgress(inout my_packet p, inout my_metadata m, inout standard_metadata_t s) { + apply { + } +} + +control MyComputeChecksum(inout my_packet p, inout my_metadata m) { + apply { + } +} + +control MyDeparser(packet_out b, in my_packet p) { + apply { + } +} + +V1Switch(MyParser(), MyVerifyChecksum(), MyIngress(), MyEgress(), MyComputeChecksum(), MyDeparser()) main; diff --git a/testdata/p4_16_samples_outputs/match-first.p4 b/testdata/p4_16_samples_outputs/match-first.p4 index fab30ffca20..d2f6f4aa6be 100644 --- a/testdata/p4_16_samples_outputs/match-first.p4 +++ b/testdata/p4_16_samples_outputs/match-first.p4 @@ -1,8 +1,7 @@ -#include - error { InvalidOptions } +#include header Ipv4_no_options_h { bit<4> version; @@ -23,7 +22,7 @@ header Ipv4_options_h { varbit<160> options; } -struct Tcp { +header Tcp { bit<16> port; } diff --git a/testdata/p4_16_samples_outputs/octal-first.p4 b/testdata/p4_16_samples_outputs/octal-first.p4 index 916291a8618..982e6bbe7a1 100644 --- a/testdata/p4_16_samples_outputs/octal-first.p4 +++ b/testdata/p4_16_samples_outputs/octal-first.p4 @@ -1,6 +1,6 @@ const bit<16> n1 = 16w377; const bit<16> n2 = 16w0o377; -const bit<1> t1 = 1w1; -const bit<1> t2 = 1w0; -const bit<1> t3 = 1w0; -const bit<1> t4 = 1w1; +const bool t1 = true; +const bool t2 = false; +const bool t3 = false; +const bool t4 = true; diff --git a/testdata/p4_16_samples_outputs/octal.p4 b/testdata/p4_16_samples_outputs/octal.p4 index c9087e4514c..d8125563ee1 100644 --- a/testdata/p4_16_samples_outputs/octal.p4 +++ b/testdata/p4_16_samples_outputs/octal.p4 @@ -1,6 +1,6 @@ const bit<16> n1 = 16w377; const bit<16> n2 = 16w0o377; -const bit<1> t1 = n1 == 377; -const bit<1> t2 = n1 == 255; -const bit<1> t3 = n2 == 377; -const bit<1> t4 = n2 == 255; +const bool t1 = n1 == 377; +const bool t2 = n1 == 255; +const bool t3 = n2 == 377; +const bool t4 = n2 == 255; diff --git a/testdata/p4_16_samples_outputs/pipe-first.p4 b/testdata/p4_16_samples_outputs/pipe-first.p4 index 02f51a2c719..1537516eeb4 100644 --- a/testdata/p4_16_samples_outputs/pipe-first.p4 +++ b/testdata/p4_16_samples_outputs/pipe-first.p4 @@ -37,7 +37,7 @@ struct Packet_data { control T_host(inout TArg1 tArg1, in TArg2 aArg2)(bit<32> t2Size) { action B_action(out bit<9> barg, BParamType bData) { - barg = (bit<9>)bData; + barg = bData; } action C_action(bit<9> cData) { tArg1.field1 = cData; diff --git a/testdata/p4_16_samples_outputs/precedence-first.p4 b/testdata/p4_16_samples_outputs/precedence-first.p4 index 4618258b4e9..9598985566c 100644 --- a/testdata/p4_16_samples_outputs/precedence-first.p4 +++ b/testdata/p4_16_samples_outputs/precedence-first.p4 @@ -78,12 +78,12 @@ action ac() { a = fct(a + b, a + c); a = fct(a, fct(b, a) + c); a = fct(a + b * c, a * (b + c)); - a = (Bit)b; - a = (Bit)b + c; - a = (Bit)(b + c); - a = (Bit)f.z + b; - a = (Bit)fct((Bit)f.z + b, b + c); + a = b; + a = b + c; + a = b + c; + a = f.z + b; + a = fct(f.z + b, b + c); f = { a + b, c }; g = { { a + b, c }, { a + b, c } }; - g = { { (Bit)(a + b) + b, c }, { a + (b + c), c } }; + g = { { a + b + b, c }, { a + (b + c), c } }; } diff --git a/testdata/p4_16_samples_outputs/spec-ex18-first.p4 b/testdata/p4_16_samples_outputs/spec-ex18-first.p4 index 82f71a40a1d..bff8d0abb40 100644 --- a/testdata/p4_16_samples_outputs/spec-ex18-first.p4 +++ b/testdata/p4_16_samples_outputs/spec-ex18-first.p4 @@ -1,8 +1,7 @@ -#include - error { InvalidOptions } +#include header IPv4_no_options_h { bit<4> version; @@ -23,7 +22,7 @@ header IPv4_options_h { varbit<160> options; } -struct Tcp { +header Tcp { bit<16> port; } diff --git a/testdata/p4_16_samples_outputs/spec-ex29-first.p4 b/testdata/p4_16_samples_outputs/spec-ex29-first.p4 index 4fc0194043d..d1796c819f2 100644 --- a/testdata/p4_16_samples_outputs/spec-ex29-first.p4 +++ b/testdata/p4_16_samples_outputs/spec-ex29-first.p4 @@ -1,29 +1,27 @@ -#include - error { IPv4FragmentsNotSupported, IPv4OptionsNotSupported, IPv4IncorrectVersion } +#include header Ethernet { bit<16> etherType; } header IPv4 { - bit<4> version; - bit<4> ihl; - bit<8> diffserv; - bit<16> totalLen; - bit<16> identification; - bit<3> flags; - bit<13> fragOffset; - bit<8> ttl; - bit<8> protocol; - bit<16> hdrChecksum; - bit<32> srcAddr; - bit<32> dstAddr; - varbit<160> options; + bit<4> version; + bit<4> ihl; + bit<8> diffserv; + bit<16> totalLen; + bit<16> identification; + bit<3> flags; + bit<13> fragOffset; + bit<8> ttl; + bit<8> protocol; + bit<16> hdrChecksum; + bit<32> srcAddr; + bit<32> dstAddr; } header IPv6 { diff --git a/testdata/p4_16_samples_outputs/spec-ex31-first.p4 b/testdata/p4_16_samples_outputs/spec-ex31-first.p4 index ec9519a6060..2970e316b51 100644 --- a/testdata/p4_16_samples_outputs/spec-ex31-first.p4 +++ b/testdata/p4_16_samples_outputs/spec-ex31-first.p4 @@ -1,10 +1,10 @@ #include -struct EthernetHeader { +header EthernetHeader { bit<16> etherType; } -struct IPv4 { +header IPv4 { bit<16> protocol; } diff --git a/testdata/p4_16_samples_outputs/stack_complex-bmv2.p4 b/testdata/p4_16_samples_outputs/stack_complex-bmv2.p4 index 512346309d6..9931a62a028 100644 --- a/testdata/p4_16_samples_outputs/stack_complex-bmv2.p4 +++ b/testdata/p4_16_samples_outputs/stack_complex-bmv2.p4 @@ -49,7 +49,7 @@ control deparser(packet_out b, in Headers h) { control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { action set_port() { - sm.egress_spec = m.v; + sm.egress_spec = (bit<9>)m.v; } table t { actions = { diff --git a/testdata/p4_16_samples_outputs/unused-counter-bmv2-first.p4 b/testdata/p4_16_samples_outputs/unused-counter-bmv2-first.p4 index f339ad3a7a5..fee0e0a5825 100644 --- a/testdata/p4_16_samples_outputs/unused-counter-bmv2-first.p4 +++ b/testdata/p4_16_samples_outputs/unused-counter-bmv2-first.p4 @@ -43,14 +43,14 @@ control deparser(packet_out b, in Headers h) { control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { direct_counter(CounterType.packets) c; direct_counter(CounterType.packets) c1; - action my_action(bit<32> a) { - sm.egress_spec = (bit<9>)a; + action my_action(bit<9> a) { + sm.egress_spec = a; } table t { actions = { my_action(); } - const default_action = my_action(32w0); + const default_action = my_action(9w0); counters = c; } apply { diff --git a/testdata/p4_16_samples_outputs/unused-counter-bmv2-frontend.p4 b/testdata/p4_16_samples_outputs/unused-counter-bmv2-frontend.p4 index 297d7bc8acd..bd95cf4230b 100644 --- a/testdata/p4_16_samples_outputs/unused-counter-bmv2-frontend.p4 +++ b/testdata/p4_16_samples_outputs/unused-counter-bmv2-frontend.p4 @@ -43,14 +43,14 @@ control deparser(packet_out b, in Headers h) { control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { @name("c") direct_counter(CounterType.packets) c_0; @name("c1") direct_counter(CounterType.packets) c1_0; - @name("my_action") action my_action_0(bit<32> a) { - sm.egress_spec = (bit<9>)a; + @name("my_action") action my_action_0(bit<9> a) { + sm.egress_spec = a; } @name("t") table t_0 { actions = { my_action_0(); } - const default_action = my_action_0(32w0); + const default_action = my_action_0(9w0); counters = c_0; } apply { diff --git a/testdata/p4_16_samples_outputs/unused-counter-bmv2-midend.p4 b/testdata/p4_16_samples_outputs/unused-counter-bmv2-midend.p4 index d113a8f8eb5..8b530b913b4 100644 --- a/testdata/p4_16_samples_outputs/unused-counter-bmv2-midend.p4 +++ b/testdata/p4_16_samples_outputs/unused-counter-bmv2-midend.p4 @@ -43,14 +43,14 @@ control deparser(packet_out b, in Headers h) { control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { @name("c") direct_counter(CounterType.packets) c; @name("c1") direct_counter(CounterType.packets) c1; - @name("my_action") action my_action_0(bit<32> a) { - sm.egress_spec = (bit<9>)a; + @name("my_action") action my_action_0(bit<9> a) { + sm.egress_spec = a; } @name("t") table t { actions = { my_action_0(); } - const default_action = my_action_0(32w0); + const default_action = my_action_0(9w0); counters = c; } apply { diff --git a/testdata/p4_16_samples_outputs/unused-counter-bmv2.p4 b/testdata/p4_16_samples_outputs/unused-counter-bmv2.p4 index 2956417ddc6..27dff47c71f 100644 --- a/testdata/p4_16_samples_outputs/unused-counter-bmv2.p4 +++ b/testdata/p4_16_samples_outputs/unused-counter-bmv2.p4 @@ -43,7 +43,7 @@ control deparser(packet_out b, in Headers h) { control ingress(inout Headers h, inout Meta m, inout standard_metadata_t sm) { direct_counter(CounterType.packets) c; direct_counter(CounterType.packets) c1; - action my_action(bit<32> a) { + action my_action(bit<9> a) { sm.egress_spec = a; } table t { diff --git a/testdata/p4_16_samples_outputs/useless-cast-first.p4 b/testdata/p4_16_samples_outputs/useless-cast-first.p4 new file mode 100644 index 00000000000..f4b538c4a1c --- /dev/null +++ b/testdata/p4_16_samples_outputs/useless-cast-first.p4 @@ -0,0 +1,7 @@ +control c(out bit<32> y) { + bit<32> x = 32w10; + apply { + y = x; + } +} +