diff --git a/fboss/agent/switch_config.thrift b/fboss/agent/switch_config.thrift index 9c5c96edc33d1..e48925b7a18ba 100644 --- a/fboss/agent/switch_config.thrift +++ b/fboss/agent/switch_config.thrift @@ -370,6 +370,21 @@ struct Mirror { 5: optional i32 samplingRate; } +/* + * Aggregation of mirror-on-drop reasons. The exact drop reasons corresponding to each + * enum is platform-specific and is converted in the platform-specific SaiTamManagers. + */ +enum MirrorOnDropReasonAggregation { + UNEXPECTED_REASON_DISCARDS = 0, + + INGRESS_MISC_DISCARDS = 1, + INGRESS_PACKET_PROCESSING_DISCARDS = 2, + INGRESS_QUEUE_RESOLUTION_DISCARDS = 3, + INGRESS_SOURCE_CONGESTION_DISCARDS = 4, // e.g. VSQ + INGRESS_DESTINATION_CONGESTION_DISCARDS = 5, // e.g. VOQ + INGRESS_GLOBAL_CONGESTION_DISCARDS = 6, +} + struct MirrorOnDropReport { 1: string name; /* @@ -389,6 +404,8 @@ struct MirrorOnDropReport { 8: byte dscp = 0; // At most one mirrored packet will be sent per port/PG/VOQ within an interval. Granularity is not configurable as of now. 9: optional i32 agingIntervalUsecs; + // Mapping from drop ID / event ID to groups of reasons. + 10: map> eventIdToDropReasons; } /** diff --git a/fboss/agent/switch_state.thrift b/fboss/agent/switch_state.thrift index 23300417c2a45..a372b14a95044 100644 --- a/fboss/agent/switch_state.thrift +++ b/fboss/agent/switch_state.thrift @@ -331,6 +331,10 @@ struct MirrorOnDropReportFields { 10: optional i32 agingIntervalUsecs; 11: string switchMac; // Populated at runtime 12: string firstInterfaceMac; // Populated at runtime + 13: map< + byte, + list + > eventIdToDropReasons; } struct ControlPlaneFields { diff --git a/fboss/fsdb/if/oss/fsdb_model_thriftpath.h b/fboss/fsdb/if/oss/fsdb_model_thriftpath.h index dc5db765e3d99..b3757a3ae6ed1 100755 --- a/fboss/fsdb/if/oss/fsdb_model_thriftpath.h +++ b/fboss/fsdb/if/oss/fsdb_model_thriftpath.h @@ -4892,7 +4892,8 @@ std::pair>, std::pair>, std::pair>, -std::pair>>; +std::pair>, +std::pair>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, std::pair, ChildThriftPath<::facebook::network::thrift::BinaryAddress, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, @@ -4904,7 +4905,8 @@ std::pair, Child<::std::int8_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::byte_t>>, std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>>; + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, ChildThriftPath<::std::map<::std::int8_t, ::std::vector<::facebook::fboss::cfg::MirrorOnDropReasonAggregation>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; template using NameToId = fatal::tuple>, std::pair>, @@ -4917,7 +4919,8 @@ std::pair>, std::pair>, std::pair>, -std::pair>>::template type_of; +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; @@ -4935,6 +4938,7 @@ std::pair auto operator()(const std::integral_constant&) { @@ -4950,6 +4954,7 @@ std::pair @@ -5374,21 +5379,21 @@ std::pair -class ChildThriftPath<::facebook::fboss::cfg::UdfConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::state::VlanFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::UdfConfig, + ::facebook::fboss::state::VlanFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::UdfConfig>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::VlanFields>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::UdfConfig, + ::facebook::fboss::state::VlanFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::UdfConfig>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::VlanFields>, Parent>; - using strings = ::facebook::fboss::cfg::switch_config_tags::strings; + using strings = ::facebook::fboss::state::switch_state_tags::strings; template using Child = Path< ChildType, @@ -5397,25 +5402,80 @@ class ChildThriftPath<::facebook::fboss::cfg::UdfConfig, ::facebook::fboss::fsdb ChildTag, Self >; - using Children = fatal::tuple, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; - using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::std::map<::std::string, ::facebook::fboss::cfg::UdfGroup>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::map<::std::string, ::facebook::fboss::cfg::UdfPacketMatcher>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using Children = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, ChildThriftPath<::std::map<::std::string, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::map<::std::string, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::map<::std::int16_t, bool>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::map<::std::string, ::facebook::fboss::state::NeighborEntryFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::map<::std::string, ::facebook::fboss::state::NeighborResponseEntryFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::map<::std::string, ::facebook::fboss::state::NeighborEntryFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::map<::std::string, ::facebook::fboss::state::NeighborResponseEntryFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::map<::std::string, ::facebook::fboss::state::MacEntryFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; template - using NameToId = fatal::tuple>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(udfGroups, 1); - STRUCT_CHILD_GETTERS(udfPacketMatcher, 2); + STRUCT_CHILD_GETTERS(vlanId, 1); + STRUCT_CHILD_GETTERS(vlanName, 2); + STRUCT_CHILD_GETTERS(intfID, 3); + STRUCT_CHILD_GETTERS(dhcpV4Relay, 4); + STRUCT_CHILD_GETTERS(dhcpV6Relay, 5); + STRUCT_CHILD_GETTERS(dhcpRelayOverridesV4, 6); + STRUCT_CHILD_GETTERS(dhcpRelayOverridesV6, 7); + STRUCT_CHILD_GETTERS(ports, 8); + STRUCT_CHILD_GETTERS(arpTable, 9); + STRUCT_CHILD_GETTERS(arpResponseTable, 10); + STRUCT_CHILD_GETTERS(ndpTable, 11); + STRUCT_CHILD_GETTERS(ndpResponseTable, 12); + STRUCT_CHILD_GETTERS(macTable, 13); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return udfGroups(); } - else if constexpr (__id == 2) { return udfPacketMatcher(); } + if constexpr (__id == 1) { return vlanId(); } + else if constexpr (__id == 2) { return vlanName(); } + else if constexpr (__id == 3) { return intfID(); } + else if constexpr (__id == 4) { return dhcpV4Relay(); } + else if constexpr (__id == 5) { return dhcpV6Relay(); } + else if constexpr (__id == 6) { return dhcpRelayOverridesV4(); } + else if constexpr (__id == 7) { return dhcpRelayOverridesV6(); } + else if constexpr (__id == 8) { return ports(); } + else if constexpr (__id == 9) { return arpTable(); } + else if constexpr (__id == 10) { return arpResponseTable(); } + else if constexpr (__id == 11) { return ndpTable(); } + else if constexpr (__id == 12) { return ndpResponseTable(); } + else if constexpr (__id == 13) { return macTable(); } } template @@ -5424,23 +5484,65 @@ std::pair +class ChildThriftPath<::std::vector<::facebook::fboss::cfg::PortQueue>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::vector<::facebook::fboss::cfg::PortQueue>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortQueue>>, + Parent> { + public: + using Self = Path< + ::std::vector<::facebook::fboss::cfg::PortQueue>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortQueue>>, + Parent>; + using Child = ChildThriftPath<::facebook::fboss::cfg::PortQueue, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int32_t); +}; template -class ChildThriftPath<::facebook::fboss::phy::TxSettings, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::vector<::facebook::fboss::cfg::IpInIpTunnel>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::phy::TxSettings, + ::std::vector<::facebook::fboss::cfg::IpInIpTunnel>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::IpInIpTunnel>>, + Parent> { + public: + using Self = Path< + ::std::vector<::facebook::fboss::cfg::IpInIpTunnel>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::IpInIpTunnel>>, + Parent>; + using Child = ChildThriftPath<::facebook::fboss::cfg::IpInIpTunnel, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int32_t); +}; + + +template +class ChildThriftPath<::facebook::fboss::cfg::AggregatePort, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::facebook::fboss::cfg::AggregatePort, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::phy::TxSettings>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::AggregatePort>, Parent> { public: using Self = Path< - ::facebook::fboss::phy::TxSettings, + ::facebook::fboss::cfg::AggregatePort, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::phy::TxSettings>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::AggregatePort>, Parent>; - using strings = ::facebook::fboss::phy::phy_tags::strings; + using strings = ::facebook::fboss::cfg::switch_config_tags::strings; template using Child = Path< ChildType, @@ -5449,170 +5551,45 @@ class ChildThriftPath<::facebook::fboss::phy::TxSettings, ::facebook::fboss::fsd ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>>; + using Children = fatal::tuple>, +std::pair>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>>; + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, ChildThriftPath<::std::vector<::facebook::fboss::cfg::AggregatePortMember>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::facebook::fboss::cfg::MinimumCapacity, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::vector<::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(pre, 1); - STRUCT_CHILD_GETTERS(pre2, 2); - STRUCT_CHILD_GETTERS(main, 3); - STRUCT_CHILD_GETTERS(post, 4); - STRUCT_CHILD_GETTERS(post2, 5); - STRUCT_CHILD_GETTERS(post3, 6); - STRUCT_CHILD_GETTERS(lutMode, 7); - STRUCT_CHILD_GETTERS(driveCurrent, 8); - STRUCT_CHILD_GETTERS(diffEncoderEn, 9); - STRUCT_CHILD_GETTERS(digGain, 10); - STRUCT_CHILD_GETTERS(ffeCoeff0, 11); - STRUCT_CHILD_GETTERS(ffeCoeff1, 12); - STRUCT_CHILD_GETTERS(ffeCoeff2, 13); - STRUCT_CHILD_GETTERS(ffeCoeff3, 14); - STRUCT_CHILD_GETTERS(ffeCoeff4, 15); - STRUCT_CHILD_GETTERS(parityEncoderEn, 16); - STRUCT_CHILD_GETTERS(thpEn, 17); - STRUCT_CHILD_GETTERS(setPrecode, 18); - STRUCT_CHILD_GETTERS(pre3, 19); - STRUCT_CHILD_GETTERS(driverSwing, 20); - STRUCT_CHILD_GETTERS(innerEyeNeg, 21); - STRUCT_CHILD_GETTERS(innerEyePos, 22); - STRUCT_CHILD_GETTERS(ffeCoeff5, 23); - STRUCT_CHILD_GETTERS(ldoBypass, 24); - STRUCT_CHILD_GETTERS(firPre1, 25); - STRUCT_CHILD_GETTERS(firPre2, 26); - STRUCT_CHILD_GETTERS(firPre3, 27); - STRUCT_CHILD_GETTERS(firMain, 28); - STRUCT_CHILD_GETTERS(firPost1, 29); - STRUCT_CHILD_GETTERS(firPost2, 30); - STRUCT_CHILD_GETTERS(firPost3, 31); + STRUCT_CHILD_GETTERS(key, 1); + STRUCT_CHILD_GETTERS(name, 2); + STRUCT_CHILD_GETTERS(description, 3); + STRUCT_CHILD_GETTERS(memberPorts, 4); + STRUCT_CHILD_GETTERS(minimumCapacity, 5); + STRUCT_CHILD_GETTERS(counterTags, 6); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return pre(); } - else if constexpr (__id == 2) { return pre2(); } - else if constexpr (__id == 3) { return main(); } - else if constexpr (__id == 4) { return post(); } - else if constexpr (__id == 5) { return post2(); } - else if constexpr (__id == 6) { return post3(); } - else if constexpr (__id == 7) { return lutMode(); } - else if constexpr (__id == 8) { return driveCurrent(); } - else if constexpr (__id == 9) { return diffEncoderEn(); } - else if constexpr (__id == 10) { return digGain(); } - else if constexpr (__id == 11) { return ffeCoeff0(); } - else if constexpr (__id == 12) { return ffeCoeff1(); } - else if constexpr (__id == 13) { return ffeCoeff2(); } - else if constexpr (__id == 14) { return ffeCoeff3(); } - else if constexpr (__id == 15) { return ffeCoeff4(); } - else if constexpr (__id == 16) { return parityEncoderEn(); } - else if constexpr (__id == 17) { return thpEn(); } - else if constexpr (__id == 18) { return setPrecode(); } - else if constexpr (__id == 19) { return pre3(); } - else if constexpr (__id == 20) { return driverSwing(); } - else if constexpr (__id == 21) { return innerEyeNeg(); } - else if constexpr (__id == 22) { return innerEyePos(); } - else if constexpr (__id == 23) { return ffeCoeff5(); } - else if constexpr (__id == 24) { return ldoBypass(); } - else if constexpr (__id == 25) { return firPre1(); } - else if constexpr (__id == 26) { return firPre2(); } - else if constexpr (__id == 27) { return firPre3(); } - else if constexpr (__id == 28) { return firMain(); } - else if constexpr (__id == 29) { return firPost1(); } - else if constexpr (__id == 30) { return firPost2(); } - else if constexpr (__id == 31) { return firPost3(); } + if constexpr (__id == 1) { return key(); } + else if constexpr (__id == 2) { return name(); } + else if constexpr (__id == 3) { return description(); } + else if constexpr (__id == 4) { return memberPorts(); } + else if constexpr (__id == 5) { return minimumCapacity(); } + else if constexpr (__id == 6) { return counterTags(); } } template @@ -5622,41 +5599,62 @@ std::pair -class ChildThriftPath<::std::set<::facebook::fboss::cfg::IPv6Field>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::int16_t, ::facebook::fboss::state::TransceiverSpecFields>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::set<::facebook::fboss::cfg::IPv6Field>, + ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::int16_t, ::facebook::fboss::state::TransceiverSpecFields>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::set<::apache::thrift::type_class::enumeration>, - ::apache::thrift::type::set<::apache::thrift::type::enum_t<::facebook::fboss::cfg::IPv6Field>>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::i16_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::TransceiverSpecFields>>>, Parent> { public: using Self = Path< - ::std::set<::facebook::fboss::cfg::IPv6Field>, + ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::int16_t, ::facebook::fboss::state::TransceiverSpecFields>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::set<::apache::thrift::type_class::enumeration>, - ::apache::thrift::type::set<::apache::thrift::type::enum_t<::facebook::fboss::cfg::IPv6Field>>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::i16_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::TransceiverSpecFields>>>, Parent>; - using Child = Path<::facebook::fboss::cfg::IPv6Field, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::IPv6Field>, Self>; + using Child = ChildThriftPath<::std::map<::std::int16_t, ::facebook::fboss::state::TransceiverSpecFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; - CONTAINER_CHILD_GETTERS(::facebook::fboss::cfg::IPv6Field); + CONTAINER_CHILD_GETTERS(::facebook::fboss::state::SwitchIdList); +}; + +template +class ChildThriftPath<::std::vector<::facebook::fboss::cfg::StaticRouteNoNextHops>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::vector<::facebook::fboss::cfg::StaticRouteNoNextHops>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::StaticRouteNoNextHops>>, + Parent> { + public: + using Self = Path< + ::std::vector<::facebook::fboss::cfg::StaticRouteNoNextHops>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::StaticRouteNoNextHops>>, + Parent>; + using Child = ChildThriftPath<::facebook::fboss::cfg::StaticRouteNoNextHops, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int32_t); }; template -class ChildThriftPath<::facebook::fboss::cfg::PortPgConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::Fields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::PortPgConfig, + ::facebook::fboss::cfg::Fields, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortPgConfig>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::Fields>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::PortPgConfig, + ::facebook::fboss::cfg::Fields, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortPgConfig>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::Fields>, Parent>; using strings = ::facebook::fboss::cfg::switch_config_tags::strings; template @@ -5667,75 +5665,40 @@ class ChildThriftPath<::facebook::fboss::cfg::PortPgConfig, ::facebook::fboss::f ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>, -std::pair>>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, Child<::facebook::fboss::cfg::MMUScalingFactor, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::MMUScalingFactor>>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, Child<::std::int64_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i64_t>>, - std::pair, Child<::std::int64_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i64_t>>, - std::pair, Child<::std::int64_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i64_t>>, - std::pair, Child<::std::int64_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i64_t>>, - std::pair, Child<::std::int64_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i64_t>>>; + using Children = fatal::tuple, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::std::set<::facebook::fboss::cfg::IPv4Field>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::set<::facebook::fboss::cfg::IPv6Field>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::set<::facebook::fboss::cfg::TransportField>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::set<::facebook::fboss::cfg::MPLSField>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::vector<::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(id, 1); - STRUCT_CHILD_GETTERS(name, 2); - STRUCT_CHILD_GETTERS(scalingFactor, 3); - STRUCT_CHILD_GETTERS(minLimitBytes, 4); - STRUCT_CHILD_GETTERS(headroomLimitBytes, 5); - STRUCT_CHILD_GETTERS(resumeOffsetBytes, 6); - STRUCT_CHILD_GETTERS(bufferPoolName, 7); - STRUCT_CHILD_GETTERS(maxSharedXoffThresholdBytes, 8); - STRUCT_CHILD_GETTERS(minSharedXoffThresholdBytes, 9); - STRUCT_CHILD_GETTERS(maxSramXoffThresholdBytes, 10); - STRUCT_CHILD_GETTERS(minSramXoffThresholdBytes, 11); - STRUCT_CHILD_GETTERS(sramResumeOffsetBytes, 12); + STRUCT_CHILD_GETTERS(ipv4Fields, 1); + STRUCT_CHILD_GETTERS(ipv6Fields, 2); + STRUCT_CHILD_GETTERS(transportFields, 3); + STRUCT_CHILD_GETTERS(mplsFields, 4); + STRUCT_CHILD_GETTERS(udfGroups, 5); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return id(); } - else if constexpr (__id == 2) { return name(); } - else if constexpr (__id == 3) { return scalingFactor(); } - else if constexpr (__id == 4) { return minLimitBytes(); } - else if constexpr (__id == 5) { return headroomLimitBytes(); } - else if constexpr (__id == 6) { return resumeOffsetBytes(); } - else if constexpr (__id == 7) { return bufferPoolName(); } - else if constexpr (__id == 8) { return maxSharedXoffThresholdBytes(); } - else if constexpr (__id == 9) { return minSharedXoffThresholdBytes(); } - else if constexpr (__id == 10) { return maxSramXoffThresholdBytes(); } - else if constexpr (__id == 11) { return minSramXoffThresholdBytes(); } - else if constexpr (__id == 12) { return sramResumeOffsetBytes(); } + if constexpr (__id == 1) { return ipv4Fields(); } + else if constexpr (__id == 2) { return ipv6Fields(); } + else if constexpr (__id == 3) { return transportFields(); } + else if constexpr (__id == 4) { return mplsFields(); } + else if constexpr (__id == 5) { return udfGroups(); } } template @@ -5744,23 +5707,65 @@ std::pair +class ChildThriftPath<::std::map<::facebook::fboss::cfg::FirmwareName, ::facebook::fboss::cfg::FirmwareInfo>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::map<::facebook::fboss::cfg::FirmwareName, ::facebook::fboss::cfg::FirmwareInfo>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::cfg::FirmwareInfo>>, + Parent> { + public: + using Self = Path< + ::std::map<::facebook::fboss::cfg::FirmwareName, ::facebook::fboss::cfg::FirmwareInfo>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::cfg::FirmwareInfo>>, + Parent>; + using Child = ChildThriftPath<::facebook::fboss::cfg::FirmwareInfo, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::facebook::fboss::cfg::FirmwareName); +}; + +template +class ChildThriftPath<::std::vector<::facebook::fboss::cfg::RedirectNextHop>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::vector<::facebook::fboss::cfg::RedirectNextHop>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::RedirectNextHop>>, + Parent> { + public: + using Self = Path< + ::std::vector<::facebook::fboss::cfg::RedirectNextHop>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::RedirectNextHop>>, + Parent>; + using Child = ChildThriftPath<::facebook::fboss::cfg::RedirectNextHop, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int32_t); +}; + template -class ChildThriftPath<::facebook::fboss::state::VlanFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::Neighbor, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::state::VlanFields, + ::facebook::fboss::cfg::Neighbor, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::VlanFields>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::Neighbor>, Parent> { public: using Self = Path< - ::facebook::fboss::state::VlanFields, + ::facebook::fboss::cfg::Neighbor, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::VlanFields>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::Neighbor>, Parent>; - using strings = ::facebook::fboss::state::switch_state_tags::strings; + using strings = ::facebook::fboss::cfg::switch_config_tags::strings; template using Child = Path< ChildType, @@ -5769,80 +5774,25 @@ class ChildThriftPath<::facebook::fboss::state::VlanFields, ::facebook::fboss::f ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, ChildThriftPath<::std::map<::std::string, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::map<::std::string, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::map<::std::int16_t, bool>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::map<::std::string, ::facebook::fboss::state::NeighborEntryFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::map<::std::string, ::facebook::fboss::state::NeighborResponseEntryFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::map<::std::string, ::facebook::fboss::state::NeighborEntryFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::map<::std::string, ::facebook::fboss::state::NeighborResponseEntryFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::map<::std::string, ::facebook::fboss::state::MacEntryFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using Children = fatal::tuple>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>>; template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(vlanId, 1); - STRUCT_CHILD_GETTERS(vlanName, 2); - STRUCT_CHILD_GETTERS(intfID, 3); - STRUCT_CHILD_GETTERS(dhcpV4Relay, 4); - STRUCT_CHILD_GETTERS(dhcpV6Relay, 5); - STRUCT_CHILD_GETTERS(dhcpRelayOverridesV4, 6); - STRUCT_CHILD_GETTERS(dhcpRelayOverridesV6, 7); - STRUCT_CHILD_GETTERS(ports, 8); - STRUCT_CHILD_GETTERS(arpTable, 9); - STRUCT_CHILD_GETTERS(arpResponseTable, 10); - STRUCT_CHILD_GETTERS(ndpTable, 11); - STRUCT_CHILD_GETTERS(ndpResponseTable, 12); - STRUCT_CHILD_GETTERS(macTable, 13); + STRUCT_CHILD_GETTERS(vlanID, 1); + STRUCT_CHILD_GETTERS(ipAddress, 2); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return vlanId(); } - else if constexpr (__id == 2) { return vlanName(); } - else if constexpr (__id == 3) { return intfID(); } - else if constexpr (__id == 4) { return dhcpV4Relay(); } - else if constexpr (__id == 5) { return dhcpV6Relay(); } - else if constexpr (__id == 6) { return dhcpRelayOverridesV4(); } - else if constexpr (__id == 7) { return dhcpRelayOverridesV6(); } - else if constexpr (__id == 8) { return ports(); } - else if constexpr (__id == 9) { return arpTable(); } - else if constexpr (__id == 10) { return arpResponseTable(); } - else if constexpr (__id == 11) { return ndpTable(); } - else if constexpr (__id == 12) { return ndpResponseTable(); } - else if constexpr (__id == 13) { return macTable(); } + if constexpr (__id == 1) { return vlanID(); } + else if constexpr (__id == 2) { return ipAddress(); } } template @@ -5851,63 +5801,21 @@ std::pair -class ChildThriftPath<::std::vector<::facebook::fboss::cfg::PortQueue>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::vector<::facebook::fboss::cfg::PortQueue>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortQueue>>, - Parent> { - public: - using Self = Path< - ::std::vector<::facebook::fboss::cfg::PortQueue>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortQueue>>, - Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::PortQueue, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int32_t); -}; - -template -class ChildThriftPath<::std::vector<::facebook::fboss::cfg::IpInIpTunnel>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::vector<::facebook::fboss::cfg::IpInIpTunnel>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::IpInIpTunnel>>, - Parent> { - public: - using Self = Path< - ::std::vector<::facebook::fboss::cfg::IpInIpTunnel>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::IpInIpTunnel>>, - Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::IpInIpTunnel, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int32_t); -}; - template -class ChildThriftPath<::facebook::fboss::cfg::AggregatePort, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::TrafficCounter, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::AggregatePort, + ::facebook::fboss::cfg::TrafficCounter, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::AggregatePort>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::TrafficCounter>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::AggregatePort, + ::facebook::fboss::cfg::TrafficCounter, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::AggregatePort>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::TrafficCounter>, Parent>; using strings = ::facebook::fboss::cfg::switch_config_tags::strings; template @@ -5918,45 +5826,25 @@ class ChildThriftPath<::facebook::fboss::cfg::AggregatePort, ::facebook::fboss:: ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, ChildThriftPath<::std::vector<::facebook::fboss::cfg::AggregatePortMember>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::facebook::fboss::cfg::MinimumCapacity, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::vector<::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using Children = fatal::tuple>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, ChildThriftPath<::std::vector<::facebook::fboss::cfg::CounterType>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(key, 1); - STRUCT_CHILD_GETTERS(name, 2); - STRUCT_CHILD_GETTERS(description, 3); - STRUCT_CHILD_GETTERS(memberPorts, 4); - STRUCT_CHILD_GETTERS(minimumCapacity, 5); - STRUCT_CHILD_GETTERS(counterTags, 6); + STRUCT_CHILD_GETTERS(name, 1); + STRUCT_CHILD_GETTERS(types, 2); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return key(); } - else if constexpr (__id == 2) { return name(); } - else if constexpr (__id == 3) { return description(); } - else if constexpr (__id == 4) { return memberPorts(); } - else if constexpr (__id == 5) { return minimumCapacity(); } - else if constexpr (__id == 6) { return counterTags(); } + if constexpr (__id == 1) { return name(); } + else if constexpr (__id == 2) { return types(); } } template @@ -5965,44 +5853,23 @@ std::pair -class ChildThriftPath<::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::int16_t, ::facebook::fboss::state::TransceiverSpecFields>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::int16_t, ::facebook::fboss::state::TransceiverSpecFields>>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::i16_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::TransceiverSpecFields>>>, - Parent> { - public: - using Self = Path< - ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::int16_t, ::facebook::fboss::state::TransceiverSpecFields>>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::i16_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::TransceiverSpecFields>>>, - Parent>; - using Child = ChildThriftPath<::std::map<::std::int16_t, ::facebook::fboss::state::TransceiverSpecFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::facebook::fboss::state::SwitchIdList); -}; - template -class ChildThriftPath<::facebook::fboss::cfg::SetTcAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::state::SetTc, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::SetTcAction, + ::facebook::fboss::state::SetTc, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::SetTcAction>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::SetTc>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::SetTcAction, + ::facebook::fboss::state::SetTc, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::SetTcAction>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::SetTc>, Parent>; - using strings = ::facebook::fboss::cfg::switch_config_tags::strings; + using strings = ::facebook::fboss::state::switch_state_tags::strings; template using Child = Path< ChildType, @@ -6011,20 +5878,25 @@ class ChildThriftPath<::facebook::fboss::cfg::SetTcAction, ::facebook::fboss::fs ChildTag, Self >; - using Children = fatal::tuple>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::int8_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::byte_t>>>; + using Children = fatal::tuple>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::facebook::fboss::cfg::SetTcAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, Child>>; template - using NameToId = fatal::tuple>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(tcValue, 1); + STRUCT_CHILD_GETTERS(action, 1); + STRUCT_CHILD_GETTERS(sendToCPU, 2); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return tcValue(); } + if constexpr (__id == 1) { return action(); } + else if constexpr (__id == 2) { return sendToCPU(); } } template @@ -6035,21 +5907,21 @@ class ChildThriftPath<::facebook::fboss::cfg::SetTcAction, ::facebook::fboss::fs template -class ChildThriftPath<::facebook::fboss::cfg::Vlan, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::phy::PinConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::Vlan, + ::facebook::fboss::phy::PinConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::Vlan>, + ::apache::thrift::type::struct_t<::facebook::fboss::phy::PinConfig>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::Vlan, + ::facebook::fboss::phy::PinConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::Vlan>, + ::apache::thrift::type::struct_t<::facebook::fboss::phy::PinConfig>, Parent>; - using strings = ::facebook::fboss::cfg::switch_config_tags::strings; + using strings = ::facebook::fboss::phy::phy_tags::strings; template using Child = Path< ChildType, @@ -6058,65 +5930,40 @@ class ChildThriftPath<::facebook::fboss::cfg::Vlan, ::facebook::fboss::fsdb::Fsd ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child>, - std::pair, Child>, - std::pair, ChildThriftPath<::std::vector<::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, ChildThriftPath<::std::map<::std::string, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::map<::std::string, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>>; - template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>>::template type_of; + using Children = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::facebook::fboss::phy::PinID, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::facebook::fboss::phy::TxSettings, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::facebook::fboss::phy::RxSettings, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::facebook::fboss::phy::LaneMap, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::facebook::fboss::phy::PolaritySwap, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + template + using NameToId = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(name, 1); - STRUCT_CHILD_GETTERS(id, 2); - STRUCT_CHILD_GETTERS(recordStats, 3); - STRUCT_CHILD_GETTERS(routable, 5); - STRUCT_CHILD_GETTERS(ipAddresses, 6); - STRUCT_CHILD_GETTERS(dhcpRelayAddressV4, 7); - STRUCT_CHILD_GETTERS(dhcpRelayAddressV6, 8); - STRUCT_CHILD_GETTERS(dhcpRelayOverridesV4, 9); - STRUCT_CHILD_GETTERS(dhcpRelayOverridesV6, 10); - STRUCT_CHILD_GETTERS(intfID, 11); + STRUCT_CHILD_GETTERS(id, 1); + STRUCT_CHILD_GETTERS(tx, 2); + STRUCT_CHILD_GETTERS(rx, 3); + STRUCT_CHILD_GETTERS(laneMap, 4); + STRUCT_CHILD_GETTERS(polaritySwap, 5); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return name(); } - else if constexpr (__id == 2) { return id(); } - else if constexpr (__id == 3) { return recordStats(); } - else if constexpr (__id == 5) { return routable(); } - else if constexpr (__id == 6) { return ipAddresses(); } - else if constexpr (__id == 7) { return dhcpRelayAddressV4(); } - else if constexpr (__id == 8) { return dhcpRelayAddressV6(); } - else if constexpr (__id == 9) { return dhcpRelayOverridesV4(); } - else if constexpr (__id == 10) { return dhcpRelayOverridesV6(); } - else if constexpr (__id == 11) { return intfID(); } + if constexpr (__id == 1) { return id(); } + else if constexpr (__id == 2) { return tx(); } + else if constexpr (__id == 3) { return rx(); } + else if constexpr (__id == 4) { return laneMap(); } + else if constexpr (__id == 5) { return polaritySwap(); } } template @@ -6125,42 +5972,21 @@ std::pair -class ChildThriftPath<::std::vector<::std::int8_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::vector<::std::int8_t>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, - ::apache::thrift::type::list<::apache::thrift::type::byte_t>, - Parent> { - public: - using Self = Path< - ::std::vector<::std::int8_t>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, - ::apache::thrift::type::list<::apache::thrift::type::byte_t>, - Parent>; - using Child = Path<::std::int8_t, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::integral, ::apache::thrift::type::byte_t, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int32_t); -}; - template -class ChildThriftPath<::facebook::fboss::cfg::FirmwareInfo, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::QosRule, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::FirmwareInfo, + ::facebook::fboss::cfg::QosRule, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::FirmwareInfo>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::QosRule>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::FirmwareInfo, + ::facebook::fboss::cfg::QosRule, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::FirmwareInfo>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::QosRule>, Parent>; using strings = ::facebook::fboss::cfg::switch_config_tags::strings; template @@ -6171,35 +5997,25 @@ class ChildThriftPath<::facebook::fboss::cfg::FirmwareInfo, ::facebook::fboss::f ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, Child<::facebook::fboss::cfg::FirmwareLoadType, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::FirmwareLoadType>>>>; + using Children = fatal::tuple>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, ChildThriftPath<::std::vector<::std::int16_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(coreToUse, 1); - STRUCT_CHILD_GETTERS(path, 2); - STRUCT_CHILD_GETTERS(logPath, 3); - STRUCT_CHILD_GETTERS(firmwareLoadType, 4); + STRUCT_CHILD_GETTERS(queueId, 1); + STRUCT_CHILD_GETTERS(dscp, 2); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return coreToUse(); } - else if constexpr (__id == 2) { return path(); } - else if constexpr (__id == 3) { return logPath(); } - else if constexpr (__id == 4) { return firmwareLoadType(); } + if constexpr (__id == 1) { return queueId(); } + else if constexpr (__id == 2) { return dscp(); } } template @@ -6208,75 +6024,44 @@ std::pair -class ChildThriftPath<::facebook::fboss::state::RedirectToNextHopAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::set<::facebook::fboss::cfg::IPv6Field>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::state::RedirectToNextHopAction, + ::std::set<::facebook::fboss::cfg::IPv6Field>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::RedirectToNextHopAction>, + ::apache::thrift::type_class::set<::apache::thrift::type_class::enumeration>, + ::apache::thrift::type::set<::apache::thrift::type::enum_t<::facebook::fboss::cfg::IPv6Field>>, Parent> { public: using Self = Path< - ::facebook::fboss::state::RedirectToNextHopAction, + ::std::set<::facebook::fboss::cfg::IPv6Field>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::RedirectToNextHopAction>, + ::apache::thrift::type_class::set<::apache::thrift::type_class::enumeration>, + ::apache::thrift::type::set<::apache::thrift::type::enum_t<::facebook::fboss::cfg::IPv6Field>>, Parent>; - using strings = ::facebook::fboss::state::switch_state_tags::strings; - template - using Child = Path< - ChildType, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ChildTC, - ChildTag, - Self - >; - using Children = fatal::tuple>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; - using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::facebook::fboss::cfg::RedirectToNextHopAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::vector<::facebook::fboss::NextHopThrift>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; - template - using NameToId = fatal::tuple>, -std::pair>>::template type_of; - - template - using TypeFor = typename Children::template type_of; + using Child = Path<::facebook::fboss::cfg::IPv6Field, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::IPv6Field>, Self>; using Self::Self; - - STRUCT_CHILD_GETTERS(action, 1); - STRUCT_CHILD_GETTERS(resolvedNexthops, 2); - - template - auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return action(); } - else if constexpr (__id == 2) { return resolvedNexthops(); } - } - template - auto operator()(const fatal::sequence&) { - return operator()(NameToId>()); - } + CONTAINER_CHILD_GETTERS(::facebook::fboss::cfg::IPv6Field); }; template -class ChildThriftPath<::facebook::fboss::state::SflowCollectorFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::UdfConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::state::SflowCollectorFields, + ::facebook::fboss::cfg::UdfConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::SflowCollectorFields>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::UdfConfig>, Parent> { public: using Self = Path< - ::facebook::fboss::state::SflowCollectorFields, + ::facebook::fboss::cfg::UdfConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::SflowCollectorFields>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::UdfConfig>, Parent>; - using strings = ::facebook::fboss::state::switch_state_tags::strings; + using strings = ::facebook::fboss::cfg::switch_config_tags::strings; template using Child = Path< ChildType, @@ -6285,25 +6070,25 @@ class ChildThriftPath<::facebook::fboss::state::SflowCollectorFields, ::facebook ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, ChildThriftPath<::facebook::fboss::state::SocketAddress, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using Children = fatal::tuple, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::std::map<::std::string, ::facebook::fboss::cfg::UdfGroup>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::map<::std::string, ::facebook::fboss::cfg::UdfPacketMatcher>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; template - using NameToId = fatal::tuple>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(id, 1); - STRUCT_CHILD_GETTERS(address, 2); + STRUCT_CHILD_GETTERS(udfGroups, 1); + STRUCT_CHILD_GETTERS(udfPacketMatcher, 2); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return id(); } - else if constexpr (__id == 2) { return address(); } + if constexpr (__id == 1) { return udfGroups(); } + else if constexpr (__id == 2) { return udfPacketMatcher(); } } template @@ -6314,21 +6099,21 @@ std::pair -class ChildThriftPath<::facebook::fboss::cfg::SwitchConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::phy::TxSettings, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::SwitchConfig, + ::facebook::fboss::phy::TxSettings, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::SwitchConfig>, + ::apache::thrift::type::struct_t<::facebook::fboss::phy::TxSettings>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::SwitchConfig, + ::facebook::fboss::phy::TxSettings, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::SwitchConfig>, + ::apache::thrift::type::struct_t<::facebook::fboss::phy::TxSettings>, Parent>; - using strings = ::facebook::fboss::cfg::switch_config_tags::strings; + using strings = ::facebook::fboss::phy::phy_tags::strings; template using Child = Path< ChildType, @@ -6337,58 +6122,255 @@ class ChildThriftPath<::facebook::fboss::cfg::SwitchConfig, ::facebook::fboss::f ChildTag, Self >; - using Children = fatal::tuple>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>, -std::pair>, -std::pair>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + using Children = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>>; + template + using NameToId = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>>::template type_of; + + template + using TypeFor = typename Children::template type_of; + using Self::Self; + + STRUCT_CHILD_GETTERS(pre, 1); + STRUCT_CHILD_GETTERS(pre2, 2); + STRUCT_CHILD_GETTERS(main, 3); + STRUCT_CHILD_GETTERS(post, 4); + STRUCT_CHILD_GETTERS(post2, 5); + STRUCT_CHILD_GETTERS(post3, 6); + STRUCT_CHILD_GETTERS(lutMode, 7); + STRUCT_CHILD_GETTERS(driveCurrent, 8); + STRUCT_CHILD_GETTERS(diffEncoderEn, 9); + STRUCT_CHILD_GETTERS(digGain, 10); + STRUCT_CHILD_GETTERS(ffeCoeff0, 11); + STRUCT_CHILD_GETTERS(ffeCoeff1, 12); + STRUCT_CHILD_GETTERS(ffeCoeff2, 13); + STRUCT_CHILD_GETTERS(ffeCoeff3, 14); + STRUCT_CHILD_GETTERS(ffeCoeff4, 15); + STRUCT_CHILD_GETTERS(parityEncoderEn, 16); + STRUCT_CHILD_GETTERS(thpEn, 17); + STRUCT_CHILD_GETTERS(setPrecode, 18); + STRUCT_CHILD_GETTERS(pre3, 19); + STRUCT_CHILD_GETTERS(driverSwing, 20); + STRUCT_CHILD_GETTERS(innerEyeNeg, 21); + STRUCT_CHILD_GETTERS(innerEyePos, 22); + STRUCT_CHILD_GETTERS(ffeCoeff5, 23); + STRUCT_CHILD_GETTERS(ldoBypass, 24); + STRUCT_CHILD_GETTERS(firPre1, 25); + STRUCT_CHILD_GETTERS(firPre2, 26); + STRUCT_CHILD_GETTERS(firPre3, 27); + STRUCT_CHILD_GETTERS(firMain, 28); + STRUCT_CHILD_GETTERS(firPost1, 29); + STRUCT_CHILD_GETTERS(firPost2, 30); + STRUCT_CHILD_GETTERS(firPost3, 31); + + template + auto operator()(const std::integral_constant&) { + if constexpr (__id == 1) { return pre(); } + else if constexpr (__id == 2) { return pre2(); } + else if constexpr (__id == 3) { return main(); } + else if constexpr (__id == 4) { return post(); } + else if constexpr (__id == 5) { return post2(); } + else if constexpr (__id == 6) { return post3(); } + else if constexpr (__id == 7) { return lutMode(); } + else if constexpr (__id == 8) { return driveCurrent(); } + else if constexpr (__id == 9) { return diffEncoderEn(); } + else if constexpr (__id == 10) { return digGain(); } + else if constexpr (__id == 11) { return ffeCoeff0(); } + else if constexpr (__id == 12) { return ffeCoeff1(); } + else if constexpr (__id == 13) { return ffeCoeff2(); } + else if constexpr (__id == 14) { return ffeCoeff3(); } + else if constexpr (__id == 15) { return ffeCoeff4(); } + else if constexpr (__id == 16) { return parityEncoderEn(); } + else if constexpr (__id == 17) { return thpEn(); } + else if constexpr (__id == 18) { return setPrecode(); } + else if constexpr (__id == 19) { return pre3(); } + else if constexpr (__id == 20) { return driverSwing(); } + else if constexpr (__id == 21) { return innerEyeNeg(); } + else if constexpr (__id == 22) { return innerEyePos(); } + else if constexpr (__id == 23) { return ffeCoeff5(); } + else if constexpr (__id == 24) { return ldoBypass(); } + else if constexpr (__id == 25) { return firPre1(); } + else if constexpr (__id == 26) { return firPre2(); } + else if constexpr (__id == 27) { return firPre3(); } + else if constexpr (__id == 28) { return firMain(); } + else if constexpr (__id == 29) { return firPost1(); } + else if constexpr (__id == 30) { return firPost2(); } + else if constexpr (__id == 31) { return firPost3(); } + } + + template + auto operator()(const fatal::sequence&) { + return operator()(NameToId>()); + } +}; + + +template +class ChildThriftPath<::facebook::fboss::cfg::SwitchConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::facebook::fboss::cfg::SwitchConfig, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::SwitchConfig>, + Parent> { + public: + using Self = Path< + ::facebook::fboss::cfg::SwitchConfig, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::SwitchConfig>, + Parent>; + using strings = ::facebook::fboss::cfg::switch_config_tags::strings; + template + using Child = Path< + ChildType, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ChildTC, + ChildTag, + Self + >; + using Children = fatal::tuple>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>, +std::pair>, +std::pair>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, std::pair>, std::pair>, std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, @@ -6641,73 +6623,21 @@ std::pair -class ChildThriftPath<::facebook::fboss::cfg::MinimumCapacity, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::state::SflowCollectorFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::MinimumCapacity, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::variant, - ::apache::thrift::type::union_t<::facebook::fboss::cfg::MinimumCapacity>, - Parent> { - public: - using Self = Path< - ::facebook::fboss::cfg::MinimumCapacity, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::variant, - ::apache::thrift::type::union_t<::facebook::fboss::cfg::MinimumCapacity>, - Parent>; - using strings = ::facebook::fboss::cfg::switch_config_tags::strings; - template - using Child = Path< - ChildType, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ChildTC, - ChildTag, - Self - >; - using Children = fatal::tuple>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::int8_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::byte_t>>, - std::pair, Child>>; - template - using NameToId = fatal::tuple>, -std::pair>>::template type_of; - - template - using TypeFor = typename Children::template type_of; - using Self::Self; - - STRUCT_CHILD_GETTERS(linkCount, 1); - STRUCT_CHILD_GETTERS(linkPercentage, 2); - - template - auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return linkCount(); } - else if constexpr (__id == 2) { return linkPercentage(); } - } - - template - auto operator()(const fatal::sequence&) { - return operator()(NameToId>()); - } -}; - - -template -class ChildThriftPath<::facebook::fboss::cfg::TrafficCounter, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::facebook::fboss::cfg::TrafficCounter, + ::facebook::fboss::state::SflowCollectorFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::TrafficCounter>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::SflowCollectorFields>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::TrafficCounter, + ::facebook::fboss::state::SflowCollectorFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::TrafficCounter>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::SflowCollectorFields>, Parent>; - using strings = ::facebook::fboss::cfg::switch_config_tags::strings; + using strings = ::facebook::fboss::state::switch_state_tags::strings; template using Child = Path< ChildType, @@ -6716,25 +6646,25 @@ class ChildThriftPath<::facebook::fboss::cfg::TrafficCounter, ::facebook::fboss: ChildTag, Self >; - using Children = fatal::tuple>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using Children = fatal::tuple>, +std::pair>>; using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, ChildThriftPath<::std::vector<::facebook::fboss::cfg::CounterType>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + std::pair, ChildThriftPath<::facebook::fboss::state::SocketAddress, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; template - using NameToId = fatal::tuple>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(name, 1); - STRUCT_CHILD_GETTERS(types, 2); + STRUCT_CHILD_GETTERS(id, 1); + STRUCT_CHILD_GETTERS(address, 2); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return name(); } - else if constexpr (__id == 2) { return types(); } + if constexpr (__id == 1) { return id(); } + else if constexpr (__id == 2) { return address(); } } template @@ -6745,19 +6675,19 @@ std::pair> template -class ChildThriftPath<::facebook::fboss::state::SetTc, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::state::RedirectToNextHopAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::state::SetTc, + ::facebook::fboss::state::RedirectToNextHopAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::SetTc>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::RedirectToNextHopAction>, Parent> { public: using Self = Path< - ::facebook::fboss::state::SetTc, + ::facebook::fboss::state::RedirectToNextHopAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::SetTc>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::RedirectToNextHopAction>, Parent>; using strings = ::facebook::fboss::state::switch_state_tags::strings; template @@ -6768,25 +6698,25 @@ class ChildThriftPath<::facebook::fboss::state::SetTc, ::facebook::fboss::fsdb:: ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::facebook::fboss::cfg::SetTcAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, Child>>; + using Children = fatal::tuple>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::facebook::fboss::cfg::RedirectToNextHopAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::vector<::facebook::fboss::NextHopThrift>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; template using NameToId = fatal::tuple>, -std::pair>>::template type_of; +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; STRUCT_CHILD_GETTERS(action, 1); - STRUCT_CHILD_GETTERS(sendToCPU, 2); + STRUCT_CHILD_GETTERS(resolvedNexthops, 2); template auto operator()(const std::integral_constant&) { if constexpr (__id == 1) { return action(); } - else if constexpr (__id == 2) { return sendToCPU(); } + else if constexpr (__id == 2) { return resolvedNexthops(); } } template @@ -6797,21 +6727,21 @@ std::pair -class ChildThriftPath<::facebook::fboss::phy::PinConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::SetTcAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::phy::PinConfig, + ::facebook::fboss::cfg::SetTcAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::phy::PinConfig>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::SetTcAction>, Parent> { public: using Self = Path< - ::facebook::fboss::phy::PinConfig, + ::facebook::fboss::cfg::SetTcAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::phy::PinConfig>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::SetTcAction>, Parent>; - using strings = ::facebook::fboss::phy::phy_tags::strings; + using strings = ::facebook::fboss::cfg::switch_config_tags::strings; template using Child = Path< ChildType, @@ -6820,40 +6750,20 @@ class ChildThriftPath<::facebook::fboss::phy::PinConfig, ::facebook::fboss::fsdb ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::facebook::fboss::phy::PinID, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::facebook::fboss::phy::TxSettings, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::facebook::fboss::phy::RxSettings, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::facebook::fboss::phy::LaneMap, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::facebook::fboss::phy::PolaritySwap, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using Children = fatal::tuple>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::int8_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::byte_t>>>; template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(id, 1); - STRUCT_CHILD_GETTERS(tx, 2); - STRUCT_CHILD_GETTERS(rx, 3); - STRUCT_CHILD_GETTERS(laneMap, 4); - STRUCT_CHILD_GETTERS(polaritySwap, 5); + STRUCT_CHILD_GETTERS(tcValue, 1); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return id(); } - else if constexpr (__id == 2) { return tx(); } - else if constexpr (__id == 3) { return rx(); } - else if constexpr (__id == 4) { return laneMap(); } - else if constexpr (__id == 5) { return polaritySwap(); } + if constexpr (__id == 1) { return tcValue(); } } template @@ -6864,19 +6774,19 @@ std::pair -class ChildThriftPath<::facebook::fboss::cfg::QosRule, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::MinimumCapacity, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::QosRule, + ::facebook::fboss::cfg::MinimumCapacity, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::QosRule>, + ::apache::thrift::type_class::variant, + ::apache::thrift::type::union_t<::facebook::fboss::cfg::MinimumCapacity>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::QosRule, + ::facebook::fboss::cfg::MinimumCapacity, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::QosRule>, + ::apache::thrift::type_class::variant, + ::apache::thrift::type::union_t<::facebook::fboss::cfg::MinimumCapacity>, Parent>; using strings = ::facebook::fboss::cfg::switch_config_tags::strings; template @@ -6887,25 +6797,25 @@ class ChildThriftPath<::facebook::fboss::cfg::QosRule, ::facebook::fboss::fsdb:: ChildTag, Self >; - using Children = fatal::tuple>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, ChildThriftPath<::std::vector<::std::int16_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using Children = fatal::tuple>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::int8_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::byte_t>>, + std::pair, Child>>; template - using NameToId = fatal::tuple>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(queueId, 1); - STRUCT_CHILD_GETTERS(dscp, 2); + STRUCT_CHILD_GETTERS(linkCount, 1); + STRUCT_CHILD_GETTERS(linkPercentage, 2); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return queueId(); } - else if constexpr (__id == 2) { return dscp(); } + if constexpr (__id == 1) { return linkCount(); } + else if constexpr (__id == 2) { return linkPercentage(); } } template @@ -7013,71 +6923,25 @@ std::pair -class ChildThriftPath<::facebook::fboss::state::RouteNextHopEntry, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::map<::facebook::fboss::cfg::PortPgConfigName, ::std::vector<::facebook::fboss::cfg::PortPgConfig>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::state::RouteNextHopEntry, + ::std::map<::facebook::fboss::cfg::PortPgConfigName, ::std::vector<::facebook::fboss::cfg::PortPgConfig>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::RouteNextHopEntry>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortPgConfig>>>, Parent> { public: using Self = Path< - ::facebook::fboss::state::RouteNextHopEntry, + ::std::map<::facebook::fboss::cfg::PortPgConfigName, ::std::vector<::facebook::fboss::cfg::PortPgConfig>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::RouteNextHopEntry>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortPgConfig>>>, Parent>; - using strings = ::facebook::fboss::state::switch_state_tags::strings; - template - using Child = Path< - ChildType, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ChildTC, - ChildTag, - Self - >; - using Children = fatal::tuple>>, -std::pair>>, -std::pair>, -std::pair>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; - using ChildrenById = fatal::tuple< std::pair, Child<::facebook::fboss::AdminDistance, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::AdminDistance>>>, - std::pair, Child<::facebook::fboss::RouteForwardAction, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::RouteForwardAction>>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, Child<::facebook::fboss::cfg::AclLookupClass, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::AclLookupClass>>>, - std::pair, ChildThriftPath<::std::vector<::facebook::fboss::NextHopThrift>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; - template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>>::template type_of; - - template - using TypeFor = typename Children::template type_of; + using Child = ChildThriftPath<::std::vector<::facebook::fboss::cfg::PortPgConfig>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; - - STRUCT_CHILD_GETTERS(adminDistance, 1); - STRUCT_CHILD_GETTERS(action, 2); - STRUCT_CHILD_GETTERS(counterID, 3); - STRUCT_CHILD_GETTERS(classID, 4); - STRUCT_CHILD_GETTERS(nexthops, 5); - - template - auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return adminDistance(); } - else if constexpr (__id == 2) { return action(); } - else if constexpr (__id == 3) { return counterID(); } - else if constexpr (__id == 4) { return classID(); } - else if constexpr (__id == 5) { return nexthops(); } - } - template - auto operator()(const fatal::sequence&) { - return operator()(NameToId>()); - } + CONTAINER_CHILD_GETTERS(::facebook::fboss::cfg::PortPgConfigName); }; @@ -7149,19 +7013,19 @@ std::pair -class ChildThriftPath<::facebook::fboss::state::AggregatePortFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::state::RouteNextHopEntry, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::state::AggregatePortFields, + ::facebook::fboss::state::RouteNextHopEntry, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::AggregatePortFields>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::RouteNextHopEntry>, Parent> { public: using Self = Path< - ::facebook::fboss::state::AggregatePortFields, + ::facebook::fboss::state::RouteNextHopEntry, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::AggregatePortFields>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::RouteNextHopEntry>, Parent>; using strings = ::facebook::fboss::state::switch_state_tags::strings; template @@ -7172,13 +7036,80 @@ class ChildThriftPath<::facebook::fboss::state::AggregatePortFields, ::facebook: ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + using Children = fatal::tuple>>, +std::pair>>, +std::pair>, +std::pair>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using ChildrenById = fatal::tuple< std::pair, Child<::facebook::fboss::AdminDistance, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::AdminDistance>>>, + std::pair, Child<::facebook::fboss::RouteForwardAction, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::RouteForwardAction>>>, + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, Child<::facebook::fboss::cfg::AclLookupClass, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::AclLookupClass>>>, + std::pair, ChildThriftPath<::std::vector<::facebook::fboss::NextHopThrift>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + template + using NameToId = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>, +std::pair>>::template type_of; + + template + using TypeFor = typename Children::template type_of; + using Self::Self; + + STRUCT_CHILD_GETTERS(adminDistance, 1); + STRUCT_CHILD_GETTERS(action, 2); + STRUCT_CHILD_GETTERS(counterID, 3); + STRUCT_CHILD_GETTERS(classID, 4); + STRUCT_CHILD_GETTERS(nexthops, 5); + + template + auto operator()(const std::integral_constant&) { + if constexpr (__id == 1) { return adminDistance(); } + else if constexpr (__id == 2) { return action(); } + else if constexpr (__id == 3) { return counterID(); } + else if constexpr (__id == 4) { return classID(); } + else if constexpr (__id == 5) { return nexthops(); } + } + + template + auto operator()(const fatal::sequence&) { + return operator()(NameToId>()); + } +}; + + +template +class ChildThriftPath<::facebook::fboss::state::AggregatePortFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::facebook::fboss::state::AggregatePortFields, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::state::AggregatePortFields>, + Parent> { + public: + using Self = Path< + ::facebook::fboss::state::AggregatePortFields, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::state::AggregatePortFields>, + Parent>; + using strings = ::facebook::fboss::state::switch_state_tags::strings; + template + using Child = Path< + ChildType, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ChildTC, + ChildTag, + Self + >; + using Children = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; @@ -7385,44 +7316,23 @@ class ChildThriftPath<::facebook::fboss::cfg::PacketCounterMatchAction, ::facebo } }; -template -class ChildThriftPath<::std::map<::facebook::fboss::cfg::FirmwareName, ::facebook::fboss::cfg::FirmwareInfo>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::map<::facebook::fboss::cfg::FirmwareName, ::facebook::fboss::cfg::FirmwareInfo>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::cfg::FirmwareInfo>>, - Parent> { - public: - using Self = Path< - ::std::map<::facebook::fboss::cfg::FirmwareName, ::facebook::fboss::cfg::FirmwareInfo>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::cfg::FirmwareInfo>>, - Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::FirmwareInfo, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::facebook::fboss::cfg::FirmwareName); -}; - template -class ChildThriftPath<::facebook::fboss::cfg::Neighbor, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::bcm::BcmConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::Neighbor, + ::facebook::fboss::bcm::BcmConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::Neighbor>, + ::apache::thrift::type::struct_t<::facebook::fboss::bcm::BcmConfig>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::Neighbor, + ::facebook::fboss::bcm::BcmConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::Neighbor>, + ::apache::thrift::type::struct_t<::facebook::fboss::bcm::BcmConfig>, Parent>; - using strings = ::facebook::fboss::cfg::switch_config_tags::strings; + using strings = ::facebook::fboss::bcm::bcm_config_tags::strings; template using Child = Path< ChildType, @@ -7431,25 +7341,25 @@ class ChildThriftPath<::facebook::fboss::cfg::Neighbor, ::facebook::fboss::fsdb: ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + using Children = fatal::tuple, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::std::map<::std::string, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>>; template - using NameToId = fatal::tuple>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(vlanID, 1); - STRUCT_CHILD_GETTERS(ipAddress, 2); + STRUCT_CHILD_GETTERS(config, 1); + STRUCT_CHILD_GETTERS(yamlConfig, 2); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return vlanID(); } - else if constexpr (__id == 2) { return ipAddress(); } + if constexpr (__id == 1) { return config(); } + else if constexpr (__id == 2) { return yamlConfig(); } } template @@ -7459,62 +7369,41 @@ std::pair -class ChildThriftPath<::std::vector<::facebook::fboss::cfg::RedirectNextHop>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::vector<::facebook::fboss::cfg::ExactMatchTableConfig>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::vector<::facebook::fboss::cfg::RedirectNextHop>, + ::std::vector<::facebook::fboss::cfg::ExactMatchTableConfig>, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::RedirectNextHop>>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::ExactMatchTableConfig>>, Parent> { public: using Self = Path< - ::std::vector<::facebook::fboss::cfg::RedirectNextHop>, + ::std::vector<::facebook::fboss::cfg::ExactMatchTableConfig>, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::RedirectNextHop>>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::ExactMatchTableConfig>>, Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::RedirectNextHop, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Child = ChildThriftPath<::facebook::fboss::cfg::ExactMatchTableConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; CONTAINER_CHILD_GETTERS(::std::int32_t); }; -template -class ChildThriftPath<::std::map<::facebook::fboss::cfg::PortPgConfigName, ::std::vector<::facebook::fboss::cfg::PortPgConfig>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::map<::facebook::fboss::cfg::PortPgConfigName, ::std::vector<::facebook::fboss::cfg::PortPgConfig>>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortPgConfig>>>, - Parent> { - public: - using Self = Path< - ::std::map<::facebook::fboss::cfg::PortPgConfigName, ::std::vector<::facebook::fboss::cfg::PortPgConfig>>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortPgConfig>>>, - Parent>; - using Child = ChildThriftPath<::std::vector<::facebook::fboss::cfg::PortPgConfig>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::facebook::fboss::cfg::PortPgConfigName); -}; - template -class ChildThriftPath<::facebook::fboss::cfg::Fields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::PortPgConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::Fields, + ::facebook::fboss::cfg::PortPgConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::Fields>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortPgConfig>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::Fields, + ::facebook::fboss::cfg::PortPgConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::Fields>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortPgConfig>, Parent>; using strings = ::facebook::fboss::cfg::switch_config_tags::strings; template @@ -7525,40 +7414,75 @@ class ChildThriftPath<::facebook::fboss::cfg::Fields, ::facebook::fboss::fsdb::F ChildTag, Self >; - using Children = fatal::tuple, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; - using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::std::set<::facebook::fboss::cfg::IPv4Field>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::set<::facebook::fboss::cfg::IPv6Field>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::set<::facebook::fboss::cfg::TransportField>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::set<::facebook::fboss::cfg::MPLSField>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::vector<::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using Children = fatal::tuple>, +std::pair>, +std::pair>>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, Child<::facebook::fboss::cfg::MMUScalingFactor, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::MMUScalingFactor>>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, Child<::std::int64_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i64_t>>, + std::pair, Child<::std::int64_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i64_t>>, + std::pair, Child<::std::int64_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i64_t>>, + std::pair, Child<::std::int64_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i64_t>>, + std::pair, Child<::std::int64_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i64_t>>>; template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(ipv4Fields, 1); - STRUCT_CHILD_GETTERS(ipv6Fields, 2); - STRUCT_CHILD_GETTERS(transportFields, 3); - STRUCT_CHILD_GETTERS(mplsFields, 4); - STRUCT_CHILD_GETTERS(udfGroups, 5); + STRUCT_CHILD_GETTERS(id, 1); + STRUCT_CHILD_GETTERS(name, 2); + STRUCT_CHILD_GETTERS(scalingFactor, 3); + STRUCT_CHILD_GETTERS(minLimitBytes, 4); + STRUCT_CHILD_GETTERS(headroomLimitBytes, 5); + STRUCT_CHILD_GETTERS(resumeOffsetBytes, 6); + STRUCT_CHILD_GETTERS(bufferPoolName, 7); + STRUCT_CHILD_GETTERS(maxSharedXoffThresholdBytes, 8); + STRUCT_CHILD_GETTERS(minSharedXoffThresholdBytes, 9); + STRUCT_CHILD_GETTERS(maxSramXoffThresholdBytes, 10); + STRUCT_CHILD_GETTERS(minSramXoffThresholdBytes, 11); + STRUCT_CHILD_GETTERS(sramResumeOffsetBytes, 12); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return ipv4Fields(); } - else if constexpr (__id == 2) { return ipv6Fields(); } - else if constexpr (__id == 3) { return transportFields(); } - else if constexpr (__id == 4) { return mplsFields(); } - else if constexpr (__id == 5) { return udfGroups(); } + if constexpr (__id == 1) { return id(); } + else if constexpr (__id == 2) { return name(); } + else if constexpr (__id == 3) { return scalingFactor(); } + else if constexpr (__id == 4) { return minLimitBytes(); } + else if constexpr (__id == 5) { return headroomLimitBytes(); } + else if constexpr (__id == 6) { return resumeOffsetBytes(); } + else if constexpr (__id == 7) { return bufferPoolName(); } + else if constexpr (__id == 8) { return maxSharedXoffThresholdBytes(); } + else if constexpr (__id == 9) { return minSharedXoffThresholdBytes(); } + else if constexpr (__id == 10) { return maxSramXoffThresholdBytes(); } + else if constexpr (__id == 11) { return minSramXoffThresholdBytes(); } + else if constexpr (__id == 12) { return sramResumeOffsetBytes(); } } template @@ -7568,101 +7492,7 @@ std::pair -class ChildThriftPath<::std::vector<::facebook::fboss::cfg::StaticRouteNoNextHops>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::vector<::facebook::fboss::cfg::StaticRouteNoNextHops>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::StaticRouteNoNextHops>>, - Parent> { - public: - using Self = Path< - ::std::vector<::facebook::fboss::cfg::StaticRouteNoNextHops>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::StaticRouteNoNextHops>>, - Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::StaticRouteNoNextHops, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int32_t); -}; - - -template -class ChildThriftPath<::facebook::fboss::bcm::BcmConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::facebook::fboss::bcm::BcmConfig, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::bcm::BcmConfig>, - Parent> { - public: - using Self = Path< - ::facebook::fboss::bcm::BcmConfig, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::bcm::BcmConfig>, - Parent>; - using strings = ::facebook::fboss::bcm::bcm_config_tags::strings; - template - using Child = Path< - ChildType, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ChildTC, - ChildTag, - Self - >; - using Children = fatal::tuple, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::std::map<::std::string, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>>; - template - using NameToId = fatal::tuple>, -std::pair>>::template type_of; - - template - using TypeFor = typename Children::template type_of; - using Self::Self; - - STRUCT_CHILD_GETTERS(config, 1); - STRUCT_CHILD_GETTERS(yamlConfig, 2); - - template - auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return config(); } - else if constexpr (__id == 2) { return yamlConfig(); } - } - - template - auto operator()(const fatal::sequence&) { - return operator()(NameToId>()); - } -}; - -template -class ChildThriftPath<::std::vector<::facebook::fboss::cfg::ExactMatchTableConfig>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::vector<::facebook::fboss::cfg::ExactMatchTableConfig>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::ExactMatchTableConfig>>, - Parent> { - public: - using Self = Path< - ::std::vector<::facebook::fboss::cfg::ExactMatchTableConfig>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::ExactMatchTableConfig>>, - Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::ExactMatchTableConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int32_t); -}; - -template -class ChildThriftPath<::std::vector<::facebook::fboss::cfg::AclTableActionType>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::vector<::facebook::fboss::cfg::AclTableActionType>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< ::std::vector<::facebook::fboss::cfg::AclTableActionType>, ::facebook::fboss::fsdb::FsdbOperStateRoot, @@ -8157,47 +7987,26 @@ std::pair }; template -class ChildThriftPath<::std::vector<::facebook::fboss::cfg::MirrorOnDropReport>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::vector<::facebook::fboss::cfg::MirrorOnDropReasonAggregation>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::vector<::facebook::fboss::cfg::MirrorOnDropReport>, + ::std::vector<::facebook::fboss::cfg::MirrorOnDropReasonAggregation>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::MirrorOnDropReport>>, + ::apache::thrift::type_class::list<::apache::thrift::type_class::enumeration>, + ::apache::thrift::type::list<::apache::thrift::type::enum_t<::facebook::fboss::cfg::MirrorOnDropReasonAggregation>>, Parent> { public: using Self = Path< - ::std::vector<::facebook::fboss::cfg::MirrorOnDropReport>, + ::std::vector<::facebook::fboss::cfg::MirrorOnDropReasonAggregation>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::MirrorOnDropReport>>, + ::apache::thrift::type_class::list<::apache::thrift::type_class::enumeration>, + ::apache::thrift::type::list<::apache::thrift::type::enum_t<::facebook::fboss::cfg::MirrorOnDropReasonAggregation>>, Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::MirrorOnDropReport, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Child = Path<::facebook::fboss::cfg::MirrorOnDropReasonAggregation, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::MirrorOnDropReasonAggregation>, Self>; using Self::Self; CONTAINER_CHILD_GETTERS(::std::int32_t); }; -template -class ChildThriftPath<::std::map<::std::int16_t, ::std::map<::facebook::fboss::cfg::PlatformAttributes, ::std::string>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::map<::std::int16_t, ::std::map<::facebook::fboss::cfg::PlatformAttributes, ::std::string>>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::string>>, - ::apache::thrift::type::map<::apache::thrift::type::i16_t, ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::cfg::PlatformAttributes>, ::apache::thrift::type::string_t>>, - Parent> { - public: - using Self = Path< - ::std::map<::std::int16_t, ::std::map<::facebook::fboss::cfg::PlatformAttributes, ::std::string>>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::string>>, - ::apache::thrift::type::map<::apache::thrift::type::i16_t, ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::cfg::PlatformAttributes>, ::apache::thrift::type::string_t>>, - Parent>; - using Child = ChildThriftPath<::std::map<::facebook::fboss::cfg::PlatformAttributes, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int16_t); -}; - template class ChildThriftPath<::facebook::fboss::cfg::SetDscpMatchAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : @@ -8266,6 +8075,48 @@ class ChildThriftPath<::std::vector<::facebook::fboss::cfg::MacAndVlan>, ::faceb CONTAINER_CHILD_GETTERS(::std::int32_t); }; +template +class ChildThriftPath<::std::vector<::facebook::fboss::cfg::MirrorOnDropReport>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::vector<::facebook::fboss::cfg::MirrorOnDropReport>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::MirrorOnDropReport>>, + Parent> { + public: + using Self = Path< + ::std::vector<::facebook::fboss::cfg::MirrorOnDropReport>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::MirrorOnDropReport>>, + Parent>; + using Child = ChildThriftPath<::facebook::fboss::cfg::MirrorOnDropReport, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int32_t); +}; + +template +class ChildThriftPath<::std::map<::std::int16_t, ::std::map<::facebook::fboss::cfg::PlatformAttributes, ::std::string>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::map<::std::int16_t, ::std::map<::facebook::fboss::cfg::PlatformAttributes, ::std::string>>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::string>>, + ::apache::thrift::type::map<::apache::thrift::type::i16_t, ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::cfg::PlatformAttributes>, ::apache::thrift::type::string_t>>, + Parent> { + public: + using Self = Path< + ::std::map<::std::int16_t, ::std::map<::facebook::fboss::cfg::PlatformAttributes, ::std::string>>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::string>>, + ::apache::thrift::type::map<::apache::thrift::type::i16_t, ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::cfg::PlatformAttributes>, ::apache::thrift::type::string_t>>, + Parent>; + using Child = ChildThriftPath<::std::map<::facebook::fboss::cfg::PlatformAttributes, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int16_t); +}; + template class ChildThriftPath<::std::vector<::facebook::fboss::cfg::LoadBalancer>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< @@ -8391,6 +8242,27 @@ std::pair +class ChildThriftPath<::std::vector<::facebook::fboss::cfg::AclTableQualifier>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::vector<::facebook::fboss::cfg::AclTableQualifier>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::enumeration>, + ::apache::thrift::type::list<::apache::thrift::type::enum_t<::facebook::fboss::cfg::AclTableQualifier>>, + Parent> { + public: + using Self = Path< + ::std::vector<::facebook::fboss::cfg::AclTableQualifier>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::enumeration>, + ::apache::thrift::type::list<::apache::thrift::type::enum_t<::facebook::fboss::cfg::AclTableQualifier>>, + Parent>; + using Child = Path<::facebook::fboss::cfg::AclTableQualifier, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::AclTableQualifier>, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int32_t); +}; + template class ChildThriftPath<::facebook::fboss::phy::PolaritySwap, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : @@ -8523,21 +8395,21 @@ class ChildThriftPath<::std::set<::facebook::fboss::cfg::TransportField>, ::face template -class ChildThriftPath<::facebook::fboss::TeFlow, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::phy::LaneState, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::TeFlow, + ::facebook::fboss::phy::LaneState, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::TeFlow>, + ::apache::thrift::type::struct_t<::facebook::fboss::phy::LaneState>, Parent> { public: using Self = Path< - ::facebook::fboss::TeFlow, + ::facebook::fboss::phy::LaneState, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::TeFlow>, + ::apache::thrift::type::struct_t<::facebook::fboss::phy::LaneState>, Parent>; - using strings = ::facebook::fboss::ctrl_tags::strings; + using strings = ::facebook::fboss::phy::phy_tags::strings; template using Child = Path< ChildType, @@ -8546,25 +8418,50 @@ class ChildThriftPath<::facebook::fboss::TeFlow, ::facebook::fboss::fsdb::FsdbOp ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, ChildThriftPath<::facebook::fboss::IpPrefix, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using Children = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child>, + std::pair, Child>, + std::pair, Child>, + std::pair, Child>, + std::pair, ChildThriftPath<::facebook::fboss::phy::TxSettings, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>>; template - using NameToId = fatal::tuple>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(srcPort, 1); - STRUCT_CHILD_GETTERS(dstPrefix, 2); + STRUCT_CHILD_GETTERS(lane, 1); + STRUCT_CHILD_GETTERS(signalDetectLive, 2); + STRUCT_CHILD_GETTERS(signalDetectChanged, 3); + STRUCT_CHILD_GETTERS(cdrLockLive, 4); + STRUCT_CHILD_GETTERS(cdrLockChanged, 5); + STRUCT_CHILD_GETTERS(txSettings, 6); + STRUCT_CHILD_GETTERS(rxFrequencyPPM, 7); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return srcPort(); } - else if constexpr (__id == 2) { return dstPrefix(); } + if constexpr (__id == 1) { return lane(); } + else if constexpr (__id == 2) { return signalDetectLive(); } + else if constexpr (__id == 3) { return signalDetectChanged(); } + else if constexpr (__id == 4) { return cdrLockLive(); } + else if constexpr (__id == 5) { return cdrLockChanged(); } + else if constexpr (__id == 6) { return txSettings(); } + else if constexpr (__id == 7) { return rxFrequencyPPM(); } } template @@ -8575,21 +8472,141 @@ std::pair -class ChildThriftPath<::facebook::fboss::cfg::BufferPoolConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::asic::AsicConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::BufferPoolConfig, + ::facebook::fboss::asic::AsicConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::BufferPoolConfig>, + ::apache::thrift::type::struct_t<::facebook::fboss::asic::AsicConfig>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::BufferPoolConfig, + ::facebook::fboss::asic::AsicConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::BufferPoolConfig>, + ::apache::thrift::type::struct_t<::facebook::fboss::asic::AsicConfig>, Parent>; - using strings = ::facebook::fboss::cfg::switch_config_tags::strings; + using strings = ::facebook::fboss::asic::asic_config_tags::strings; + template + using Child = Path< + ChildType, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ChildTC, + ChildTag, + Self + >; + using Children = fatal::tuple>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>>; + template + using NameToId = fatal::tuple>>::template type_of; + + template + using TypeFor = typename Children::template type_of; + using Self::Self; + + STRUCT_CHILD_GETTERS(config, 1); + + template + auto operator()(const std::integral_constant&) { + if constexpr (__id == 1) { return config(); } + } + + template + auto operator()(const fatal::sequence&) { + return operator()(NameToId>()); + } +}; + +template +class ChildThriftPath<::std::map<::std::int8_t, ::std::vector<::facebook::fboss::cfg::MirrorOnDropReasonAggregation>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::map<::std::int8_t, ::std::vector<::facebook::fboss::cfg::MirrorOnDropReasonAggregation>>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::list<::apache::thrift::type_class::enumeration>>, + ::apache::thrift::type::map<::apache::thrift::type::byte_t, ::apache::thrift::type::list<::apache::thrift::type::enum_t<::facebook::fboss::cfg::MirrorOnDropReasonAggregation>>>, + Parent> { + public: + using Self = Path< + ::std::map<::std::int8_t, ::std::vector<::facebook::fboss::cfg::MirrorOnDropReasonAggregation>>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::list<::apache::thrift::type_class::enumeration>>, + ::apache::thrift::type::map<::apache::thrift::type::byte_t, ::apache::thrift::type::list<::apache::thrift::type::enum_t<::facebook::fboss::cfg::MirrorOnDropReasonAggregation>>>, + Parent>; + using Child = ChildThriftPath<::std::vector<::facebook::fboss::cfg::MirrorOnDropReasonAggregation>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int8_t); +}; + + +template +class ChildThriftPath<::facebook::fboss::TeFlow, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::facebook::fboss::TeFlow, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::TeFlow>, + Parent> { + public: + using Self = Path< + ::facebook::fboss::TeFlow, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::TeFlow>, + Parent>; + using strings = ::facebook::fboss::ctrl_tags::strings; + template + using Child = Path< + ChildType, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ChildTC, + ChildTag, + Self + >; + using Children = fatal::tuple>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, ChildThriftPath<::facebook::fboss::IpPrefix, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + template + using NameToId = fatal::tuple>, +std::pair>>::template type_of; + + template + using TypeFor = typename Children::template type_of; + using Self::Self; + + STRUCT_CHILD_GETTERS(srcPort, 1); + STRUCT_CHILD_GETTERS(dstPrefix, 2); + + template + auto operator()(const std::integral_constant&) { + if constexpr (__id == 1) { return srcPort(); } + else if constexpr (__id == 2) { return dstPrefix(); } + } + + template + auto operator()(const fatal::sequence&) { + return operator()(NameToId>()); + } +}; + + +template +class ChildThriftPath<::facebook::fboss::cfg::BufferPoolConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::facebook::fboss::cfg::BufferPoolConfig, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::BufferPoolConfig>, + Parent> { + public: + using Self = Path< + ::facebook::fboss::cfg::BufferPoolConfig, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::BufferPoolConfig>, + Parent>; + using strings = ::facebook::fboss::cfg::switch_config_tags::strings; template using Child = Path< ChildType, @@ -8756,43 +8773,43 @@ std::pair -class ChildThriftPath<::std::vector<::facebook::fboss::HostLaneSettings>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::map<::std::string, ::facebook::fboss::phy::PhyState>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::vector<::facebook::fboss::HostLaneSettings>, + ::std::map<::std::string, ::facebook::fboss::phy::PhyState>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::HostLaneSettings>>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::phy::PhyState>>, Parent> { public: using Self = Path< - ::std::vector<::facebook::fboss::HostLaneSettings>, + ::std::map<::std::string, ::facebook::fboss::phy::PhyState>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::HostLaneSettings>>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::phy::PhyState>>, Parent>; - using Child = ChildThriftPath<::facebook::fboss::HostLaneSettings, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Child = ChildThriftPath<::facebook::fboss::phy::PhyState, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; - CONTAINER_CHILD_GETTERS(::std::int32_t); + CONTAINER_CHILD_GETTERS(::std::string); }; template -class ChildThriftPath<::facebook::fboss::phy::PmdState, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::AgentConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::phy::PmdState, + ::facebook::fboss::cfg::AgentConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::phy::PmdState>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::AgentConfig>, Parent> { public: using Self = Path< - ::facebook::fboss::phy::PmdState, + ::facebook::fboss::cfg::AgentConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::phy::PmdState>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::AgentConfig>, Parent>; - using strings = ::facebook::fboss::phy::phy_tags::strings; + using strings = ::facebook::fboss::cfg::agent_config_tags::strings; template using Child = Path< ChildType, @@ -8801,20 +8818,30 @@ class ChildThriftPath<::facebook::fboss::phy::PmdState, ::facebook::fboss::fsdb: ChildTag, Self >; - using Children = fatal::tuple, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; - using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::std::map<::std::int16_t, ::facebook::fboss::phy::LaneState>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using Children = fatal::tuple, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::std::map<::std::string, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::facebook::fboss::cfg::SwitchConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::facebook::fboss::cfg::PlatformConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; template - using NameToId = fatal::tuple>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(lanes, 1); + STRUCT_CHILD_GETTERS(defaultCommandLineArgs, 1); + STRUCT_CHILD_GETTERS(sw, 2); + STRUCT_CHILD_GETTERS(platform, 3); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return lanes(); } + if constexpr (__id == 1) { return defaultCommandLineArgs(); } + else if constexpr (__id == 2) { return sw(); } + else if constexpr (__id == 3) { return platform(); } } template @@ -8823,123 +8850,118 @@ class ChildThriftPath<::facebook::fboss::phy::PmdState, ::facebook::fboss::fsdb: } }; - template -class ChildThriftPath<::facebook::network::thrift::BinaryAddress, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::vector<::facebook::fboss::cfg::AggregatePortMember>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::network::thrift::BinaryAddress, + ::std::vector<::facebook::fboss::cfg::AggregatePortMember>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::network::thrift::BinaryAddress>, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::AggregatePortMember>>, Parent> { public: using Self = Path< - ::facebook::network::thrift::BinaryAddress, + ::std::vector<::facebook::fboss::cfg::AggregatePortMember>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::network::thrift::BinaryAddress>, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::AggregatePortMember>>, Parent>; - using strings = ::facebook::network::thrift::Address_tags::strings; - template - using Child = Path< - ChildType, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ChildTC, - ChildTag, - Self - >; - using Children = fatal::tuple>>, -std::pair>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, Child<::folly::fbstring, ::apache::thrift::type_class::binary, ::apache::thrift::type::cpp_type<::folly::fbstring, ::apache::thrift::type::binary_t>>>, - std::pair, Child<::std::int64_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i64_t>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>>; - template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>>::template type_of; - - template - using TypeFor = typename Children::template type_of; + using Child = ChildThriftPath<::facebook::fboss::cfg::AggregatePortMember, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; - - STRUCT_CHILD_GETTERS(addr, 1); - STRUCT_CHILD_GETTERS(port, 2); - STRUCT_CHILD_GETTERS(ifName, 3); - - template - auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return addr(); } - else if constexpr (__id == 2) { return port(); } - else if constexpr (__id == 3) { return ifName(); } - } - template - auto operator()(const fatal::sequence&) { - return operator()(NameToId>()); - } + CONTAINER_CHILD_GETTERS(::std::int32_t); }; template -class ChildThriftPath<::std::vector<::facebook::fboss::cfg::VlanPort>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::map<::std::int32_t, ::std::vector<::std::int32_t>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::vector<::facebook::fboss::cfg::VlanPort>, + ::std::map<::std::int32_t, ::std::vector<::std::int32_t>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::VlanPort>>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::list<::apache::thrift::type_class::integral>>, + ::apache::thrift::type::map<::apache::thrift::type::i32_t, ::apache::thrift::type::list<::apache::thrift::type::i32_t>>, Parent> { public: using Self = Path< - ::std::vector<::facebook::fboss::cfg::VlanPort>, + ::std::map<::std::int32_t, ::std::vector<::std::int32_t>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::VlanPort>>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::list<::apache::thrift::type_class::integral>>, + ::apache::thrift::type::map<::apache::thrift::type::i32_t, ::apache::thrift::type::list<::apache::thrift::type::i32_t>>, Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::VlanPort, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Child = ChildThriftPath<::std::vector<::std::int32_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; CONTAINER_CHILD_GETTERS(::std::int32_t); }; - template -class ChildThriftPath<::facebook::fboss::cfg::UserDefinedTrapAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::map<::facebook::fboss::ClientID, ::facebook::fboss::state::RouteNextHopEntry>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::UserDefinedTrapAction, + ::std::map<::facebook::fboss::ClientID, ::facebook::fboss::state::RouteNextHopEntry>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::UserDefinedTrapAction>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::ClientID>, ::apache::thrift::type::struct_t<::facebook::fboss::state::RouteNextHopEntry>>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::UserDefinedTrapAction, + ::std::map<::facebook::fboss::ClientID, ::facebook::fboss::state::RouteNextHopEntry>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::UserDefinedTrapAction>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::ClientID>, ::apache::thrift::type::struct_t<::facebook::fboss::state::RouteNextHopEntry>>, Parent>; - using strings = ::facebook::fboss::cfg::switch_config_tags::strings; - template - using Child = Path< - ChildType, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ChildTC, - ChildTag, - Self - >; - using Children = fatal::tuple>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>>; + using Child = ChildThriftPath<::facebook::fboss::state::RouteNextHopEntry, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::facebook::fboss::ClientID); +}; + + +template +class ChildThriftPath<::facebook::fboss::cfg::AclUdfEntry, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::facebook::fboss::cfg::AclUdfEntry, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::AclUdfEntry>, + Parent> { + public: + using Self = Path< + ::facebook::fboss::cfg::AclUdfEntry, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::AclUdfEntry>, + Parent>; + using strings = ::facebook::fboss::cfg::switch_config_tags::strings; + template + using Child = Path< + ChildType, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ChildTC, + ChildTag, + Self + >; + using Children = fatal::tuple>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, ChildThriftPath<::std::vector<::std::int8_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::vector<::std::int8_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; template - using NameToId = fatal::tuple>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(queueId, 1); + STRUCT_CHILD_GETTERS(udfGroup, 1); + STRUCT_CHILD_GETTERS(roceBytes, 2); + STRUCT_CHILD_GETTERS(roceMask, 3); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return queueId(); } + if constexpr (__id == 1) { return udfGroup(); } + else if constexpr (__id == 2) { return roceBytes(); } + else if constexpr (__id == 3) { return roceMask(); } } template @@ -8990,6 +9012,110 @@ class ChildThriftPath<::std::map<::std::int16_t, ::facebook::fboss::state::Trans CONTAINER_CHILD_GETTERS(::std::int16_t); }; +template +class ChildThriftPath<::std::vector<::facebook::fboss::state::Subport>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::vector<::facebook::fboss::state::Subport>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::state::Subport>>, + Parent> { + public: + using Self = Path< + ::std::vector<::facebook::fboss::state::Subport>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::state::Subport>>, + Parent>; + using Child = ChildThriftPath<::facebook::fboss::state::Subport, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int32_t); +}; + + +template +class ChildThriftPath<::facebook::fboss::state::PortFlowletFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::facebook::fboss::state::PortFlowletFields, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::state::PortFlowletFields>, + Parent> { + public: + using Self = Path< + ::facebook::fboss::state::PortFlowletFields, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::state::PortFlowletFields>, + Parent>; + using strings = ::facebook::fboss::state::switch_state_tags::strings; + template + using Child = Path< + ChildType, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ChildTC, + ChildTag, + Self + >; + using Children = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>>; + template + using NameToId = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>>::template type_of; + + template + using TypeFor = typename Children::template type_of; + using Self::Self; + + STRUCT_CHILD_GETTERS(id, 1); + STRUCT_CHILD_GETTERS(scalingFactor, 2); + STRUCT_CHILD_GETTERS(loadWeight, 3); + STRUCT_CHILD_GETTERS(queueWeight, 4); + + template + auto operator()(const std::integral_constant&) { + if constexpr (__id == 1) { return id(); } + else if constexpr (__id == 2) { return scalingFactor(); } + else if constexpr (__id == 3) { return loadWeight(); } + else if constexpr (__id == 4) { return queueWeight(); } + } + + template + auto operator()(const fatal::sequence&) { + return operator()(NameToId>()); + } +}; + +template +class ChildThriftPath<::std::map<::facebook::fboss::cfg::PortQueueConfigName, ::std::vector<::facebook::fboss::cfg::PortQueue>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::map<::facebook::fboss::cfg::PortQueueConfigName, ::std::vector<::facebook::fboss::cfg::PortQueue>>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortQueue>>>, + Parent> { + public: + using Self = Path< + ::std::map<::facebook::fboss::cfg::PortQueueConfigName, ::std::vector<::facebook::fboss::cfg::PortQueue>>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortQueue>>>, + Parent>; + using Child = ChildThriftPath<::std::vector<::facebook::fboss::cfg::PortQueue>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::facebook::fboss::cfg::PortQueueConfigName); +}; + template class ChildThriftPath<::facebook::fboss::cfg::AclTableGroup, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : @@ -9111,21 +9237,21 @@ std::pair -class ChildThriftPath<::facebook::fboss::cfg::AclUdfEntry, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::state::TrafficClassToQosAttributeEntry, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::AclUdfEntry, + ::facebook::fboss::state::TrafficClassToQosAttributeEntry, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::AclUdfEntry>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::TrafficClassToQosAttributeEntry>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::AclUdfEntry, + ::facebook::fboss::state::TrafficClassToQosAttributeEntry, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::AclUdfEntry>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::TrafficClassToQosAttributeEntry>, Parent>; - using strings = ::facebook::fboss::cfg::switch_config_tags::strings; + using strings = ::facebook::fboss::state::switch_state_tags::strings; template using Child = Path< ChildType, @@ -9134,30 +9260,25 @@ class ChildThriftPath<::facebook::fboss::cfg::AclUdfEntry, ::facebook::fboss::fs ChildTag, Self >; - using Children = fatal::tuple>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, ChildThriftPath<::std::vector<::std::int8_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::vector<::std::int8_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using Children = fatal::tuple>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>>; template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(udfGroup, 1); - STRUCT_CHILD_GETTERS(roceBytes, 2); - STRUCT_CHILD_GETTERS(roceMask, 3); + STRUCT_CHILD_GETTERS(trafficClass, 1); + STRUCT_CHILD_GETTERS(attr, 2); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return udfGroup(); } - else if constexpr (__id == 2) { return roceBytes(); } - else if constexpr (__id == 3) { return roceMask(); } + if constexpr (__id == 1) { return trafficClass(); } + else if constexpr (__id == 2) { return attr(); } } template @@ -9168,21 +9289,21 @@ std::pair -class ChildThriftPath<::facebook::fboss::state::TrafficClassToQosAttributeEntry, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::PortPause, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::state::TrafficClassToQosAttributeEntry, + ::facebook::fboss::cfg::PortPause, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::TrafficClassToQosAttributeEntry>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortPause>, Parent> { public: using Self = Path< - ::facebook::fboss::state::TrafficClassToQosAttributeEntry, + ::facebook::fboss::cfg::PortPause, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::TrafficClassToQosAttributeEntry>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortPause>, Parent>; - using strings = ::facebook::fboss::state::switch_state_tags::strings; + using strings = ::facebook::fboss::cfg::switch_config_tags::strings; template using Child = Path< ChildType, @@ -9191,25 +9312,25 @@ class ChildThriftPath<::facebook::fboss::state::TrafficClassToQosAttributeEntry, ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>>; + using Children = fatal::tuple>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, Child>, + std::pair, Child>>; template - using NameToId = fatal::tuple>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(trafficClass, 1); - STRUCT_CHILD_GETTERS(attr, 2); + STRUCT_CHILD_GETTERS(tx, 1); + STRUCT_CHILD_GETTERS(rx, 2); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return trafficClass(); } - else if constexpr (__id == 2) { return attr(); } + if constexpr (__id == 1) { return tx(); } + else if constexpr (__id == 2) { return rx(); } } template @@ -9441,44 +9562,23 @@ class ChildThriftPath<::std::map<::std::int64_t, ::facebook::fboss::cfg::AsicCon CONTAINER_CHILD_GETTERS(::std::int64_t); }; -template -class ChildThriftPath<::std::vector<::facebook::fboss::cfg::AclTableQualifier>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::vector<::facebook::fboss::cfg::AclTableQualifier>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::enumeration>, - ::apache::thrift::type::list<::apache::thrift::type::enum_t<::facebook::fboss::cfg::AclTableQualifier>>, - Parent> { - public: - using Self = Path< - ::std::vector<::facebook::fboss::cfg::AclTableQualifier>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::enumeration>, - ::apache::thrift::type::list<::apache::thrift::type::enum_t<::facebook::fboss::cfg::AclTableQualifier>>, - Parent>; - using Child = Path<::facebook::fboss::cfg::AclTableQualifier, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::AclTableQualifier>, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int32_t); -}; - template -class ChildThriftPath<::facebook::fboss::phy::LaneState, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::AggregatePortMember, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::phy::LaneState, + ::facebook::fboss::cfg::AggregatePortMember, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::phy::LaneState>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::AggregatePortMember>, Parent> { public: using Self = Path< - ::facebook::fboss::phy::LaneState, + ::facebook::fboss::cfg::AggregatePortMember, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::phy::LaneState>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::AggregatePortMember>, Parent>; - using strings = ::facebook::fboss::phy::phy_tags::strings; + using strings = ::facebook::fboss::cfg::switch_config_tags::strings; template using Child = Path< ChildType, @@ -9487,97 +9587,40 @@ class ChildThriftPath<::facebook::fboss::phy::LaneState, ::facebook::fboss::fsdb ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child>, - std::pair, Child>, - std::pair, Child>, - std::pair, Child>, - std::pair, ChildThriftPath<::facebook::fboss::phy::TxSettings, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>>; - template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>>::template type_of; - - template - using TypeFor = typename Children::template type_of; - using Self::Self; - - STRUCT_CHILD_GETTERS(lane, 1); - STRUCT_CHILD_GETTERS(signalDetectLive, 2); - STRUCT_CHILD_GETTERS(signalDetectChanged, 3); - STRUCT_CHILD_GETTERS(cdrLockLive, 4); - STRUCT_CHILD_GETTERS(cdrLockChanged, 5); - STRUCT_CHILD_GETTERS(txSettings, 6); - STRUCT_CHILD_GETTERS(rxFrequencyPPM, 7); - - template - auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return lane(); } - else if constexpr (__id == 2) { return signalDetectLive(); } - else if constexpr (__id == 3) { return signalDetectChanged(); } - else if constexpr (__id == 4) { return cdrLockLive(); } - else if constexpr (__id == 5) { return cdrLockChanged(); } - else if constexpr (__id == 6) { return txSettings(); } - else if constexpr (__id == 7) { return rxFrequencyPPM(); } - } - - template - auto operator()(const fatal::sequence&) { - return operator()(NameToId>()); - } -}; - - -template -class ChildThriftPath<::facebook::fboss::asic::AsicConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::facebook::fboss::asic::AsicConfig, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::asic::AsicConfig>, - Parent> { - public: - using Self = Path< - ::facebook::fboss::asic::AsicConfig, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::asic::AsicConfig>, - Parent>; - using strings = ::facebook::fboss::asic::asic_config_tags::strings; - template - using Child = Path< - ChildType, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ChildTC, - ChildTag, - Self - >; - using Children = fatal::tuple>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>>; + using Children = fatal::tuple>, +std::pair>, +std::pair>>, +std::pair>>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::facebook::fboss::cfg::LacpPortRate, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::LacpPortRate>>>, + std::pair, Child<::facebook::fboss::cfg::LacpPortActivity, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::LacpPortActivity>>>, + std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>>; template - using NameToId = fatal::tuple>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(config, 1); + STRUCT_CHILD_GETTERS(memberPortID, 1); + STRUCT_CHILD_GETTERS(priority, 2); + STRUCT_CHILD_GETTERS(rate, 3); + STRUCT_CHILD_GETTERS(activity, 4); + STRUCT_CHILD_GETTERS(holdTimerMultiplier, 5); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return config(); } + if constexpr (__id == 1) { return memberPortID(); } + else if constexpr (__id == 2) { return priority(); } + else if constexpr (__id == 3) { return rate(); } + else if constexpr (__id == 4) { return activity(); } + else if constexpr (__id == 5) { return holdTimerMultiplier(); } } template @@ -9587,107 +9630,24 @@ class ChildThriftPath<::facebook::fboss::asic::AsicConfig, ::facebook::fboss::fs }; template -class ChildThriftPath<::std::vector<::facebook::fboss::state::Subport>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::vector<::facebook::fboss::state::Subport>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::state::Subport>>, - Parent> { - public: - using Self = Path< - ::std::vector<::facebook::fboss::state::Subport>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::state::Subport>>, - Parent>; - using Child = ChildThriftPath<::facebook::fboss::state::Subport, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int32_t); -}; - -template -class ChildThriftPath<::std::map<::facebook::fboss::cfg::PortQueueConfigName, ::std::vector<::facebook::fboss::cfg::PortQueue>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::map<::facebook::fboss::cfg::PortQueueConfigName, ::std::vector<::facebook::fboss::cfg::PortQueue>>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortQueue>>>, - Parent> { - public: - using Self = Path< - ::std::map<::facebook::fboss::cfg::PortQueueConfigName, ::std::vector<::facebook::fboss::cfg::PortQueue>>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortQueue>>>, - Parent>; - using Child = ChildThriftPath<::std::vector<::facebook::fboss::cfg::PortQueue>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::facebook::fboss::cfg::PortQueueConfigName); -}; - - -template -class ChildThriftPath<::facebook::fboss::state::PortFlowletFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::map<::facebook::fboss::state::SwitchIdList, ::facebook::fboss::state::ControlPlaneFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::state::PortFlowletFields, + ::std::map<::facebook::fboss::state::SwitchIdList, ::facebook::fboss::state::ControlPlaneFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::PortFlowletFields>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::ControlPlaneFields>>, Parent> { public: using Self = Path< - ::facebook::fboss::state::PortFlowletFields, + ::std::map<::facebook::fboss::state::SwitchIdList, ::facebook::fboss::state::ControlPlaneFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::PortFlowletFields>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::ControlPlaneFields>>, Parent>; - using strings = ::facebook::fboss::state::switch_state_tags::strings; - template - using Child = Path< - ChildType, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ChildTC, - ChildTag, - Self - >; - using Children = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>>; - template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>>::template type_of; - - template - using TypeFor = typename Children::template type_of; + using Child = ChildThriftPath<::facebook::fboss::state::ControlPlaneFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; - - STRUCT_CHILD_GETTERS(id, 1); - STRUCT_CHILD_GETTERS(scalingFactor, 2); - STRUCT_CHILD_GETTERS(loadWeight, 3); - STRUCT_CHILD_GETTERS(queueWeight, 4); - - template - auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return id(); } - else if constexpr (__id == 2) { return scalingFactor(); } - else if constexpr (__id == 3) { return loadWeight(); } - else if constexpr (__id == 4) { return queueWeight(); } - } - template - auto operator()(const fatal::sequence&) { - return operator()(NameToId>()); - } + CONTAINER_CHILD_GETTERS(::facebook::fboss::state::SwitchIdList); }; @@ -9723,7 +9683,8 @@ std::pair>, std::pair>, std::pair>, -std::pair>>; +std::pair>, +std::pair>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, @@ -9732,7 +9693,8 @@ std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, std::pair, Child<::std::int8_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::byte_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>>; + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, ChildThriftPath<::std::map<::std::int8_t, ::std::vector<::facebook::fboss::cfg::MirrorOnDropReasonAggregation>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; template using NameToId = fatal::tuple>, std::pair>, @@ -9742,7 +9704,8 @@ std::pair>, std::pair>, std::pair>, -std::pair>>::template type_of; +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; @@ -9757,6 +9720,7 @@ std::pair auto operator()(const std::integral_constant&) { @@ -9769,6 +9733,7 @@ std::pair @@ -10301,252 +10266,23 @@ class ChildThriftPath<::std::map<::std::string, ::facebook::fboss::state::AclEnt CONTAINER_CHILD_GETTERS(::std::string); }; -template -class ChildThriftPath<::std::map<::facebook::fboss::state::SwitchIdList, ::facebook::fboss::state::ControlPlaneFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::map<::facebook::fboss::state::SwitchIdList, ::facebook::fboss::state::ControlPlaneFields>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::ControlPlaneFields>>, - Parent> { - public: - using Self = Path< - ::std::map<::facebook::fboss::state::SwitchIdList, ::facebook::fboss::state::ControlPlaneFields>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::ControlPlaneFields>>, - Parent>; - using Child = ChildThriftPath<::facebook::fboss::state::ControlPlaneFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::facebook::fboss::state::SwitchIdList); -}; - template -class ChildThriftPath<::facebook::fboss::cfg::AggregatePortMember, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::state::SwitchState, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::AggregatePortMember, + ::facebook::fboss::state::SwitchState, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::AggregatePortMember>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::SwitchState>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::AggregatePortMember, + ::facebook::fboss::state::SwitchState, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::AggregatePortMember>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::SwitchState>, Parent>; - using strings = ::facebook::fboss::cfg::switch_config_tags::strings; - template - using Child = Path< - ChildType, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ChildTC, - ChildTag, - Self - >; - using Children = fatal::tuple>, -std::pair>, -std::pair>>, -std::pair>>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::facebook::fboss::cfg::LacpPortRate, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::LacpPortRate>>>, - std::pair, Child<::facebook::fboss::cfg::LacpPortActivity, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::LacpPortActivity>>>, - std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>>; - template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>>::template type_of; - - template - using TypeFor = typename Children::template type_of; - using Self::Self; - - STRUCT_CHILD_GETTERS(memberPortID, 1); - STRUCT_CHILD_GETTERS(priority, 2); - STRUCT_CHILD_GETTERS(rate, 3); - STRUCT_CHILD_GETTERS(activity, 4); - STRUCT_CHILD_GETTERS(holdTimerMultiplier, 5); - - template - auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return memberPortID(); } - else if constexpr (__id == 2) { return priority(); } - else if constexpr (__id == 3) { return rate(); } - else if constexpr (__id == 4) { return activity(); } - else if constexpr (__id == 5) { return holdTimerMultiplier(); } - } - - template - auto operator()(const fatal::sequence&) { - return operator()(NameToId>()); - } -}; - -template -class ChildThriftPath<::std::map<::std::string, ::facebook::fboss::phy::PhyState>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::map<::std::string, ::facebook::fboss::phy::PhyState>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::phy::PhyState>>, - Parent> { - public: - using Self = Path< - ::std::map<::std::string, ::facebook::fboss::phy::PhyState>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::phy::PhyState>>, - Parent>; - using Child = ChildThriftPath<::facebook::fboss::phy::PhyState, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::string); -}; - - -template -class ChildThriftPath<::facebook::fboss::cfg::AgentConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::facebook::fboss::cfg::AgentConfig, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::AgentConfig>, - Parent> { - public: - using Self = Path< - ::facebook::fboss::cfg::AgentConfig, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::AgentConfig>, - Parent>; - using strings = ::facebook::fboss::cfg::agent_config_tags::strings; - template - using Child = Path< - ChildType, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ChildTC, - ChildTag, - Self - >; - using Children = fatal::tuple, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::std::map<::std::string, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::facebook::fboss::cfg::SwitchConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::facebook::fboss::cfg::PlatformConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; - template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>>::template type_of; - - template - using TypeFor = typename Children::template type_of; - using Self::Self; - - STRUCT_CHILD_GETTERS(defaultCommandLineArgs, 1); - STRUCT_CHILD_GETTERS(sw, 2); - STRUCT_CHILD_GETTERS(platform, 3); - - template - auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return defaultCommandLineArgs(); } - else if constexpr (__id == 2) { return sw(); } - else if constexpr (__id == 3) { return platform(); } - } - - template - auto operator()(const fatal::sequence&) { - return operator()(NameToId>()); - } -}; - -template -class ChildThriftPath<::std::map<::facebook::fboss::ClientID, ::facebook::fboss::state::RouteNextHopEntry>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::map<::facebook::fboss::ClientID, ::facebook::fboss::state::RouteNextHopEntry>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::ClientID>, ::apache::thrift::type::struct_t<::facebook::fboss::state::RouteNextHopEntry>>, - Parent> { - public: - using Self = Path< - ::std::map<::facebook::fboss::ClientID, ::facebook::fboss::state::RouteNextHopEntry>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::ClientID>, ::apache::thrift::type::struct_t<::facebook::fboss::state::RouteNextHopEntry>>, - Parent>; - using Child = ChildThriftPath<::facebook::fboss::state::RouteNextHopEntry, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::facebook::fboss::ClientID); -}; - -template -class ChildThriftPath<::std::vector<::facebook::fboss::cfg::AggregatePortMember>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::vector<::facebook::fboss::cfg::AggregatePortMember>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::AggregatePortMember>>, - Parent> { - public: - using Self = Path< - ::std::vector<::facebook::fboss::cfg::AggregatePortMember>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::AggregatePortMember>>, - Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::AggregatePortMember, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int32_t); -}; - -template -class ChildThriftPath<::std::map<::std::int32_t, ::std::vector<::std::int32_t>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::map<::std::int32_t, ::std::vector<::std::int32_t>>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::list<::apache::thrift::type_class::integral>>, - ::apache::thrift::type::map<::apache::thrift::type::i32_t, ::apache::thrift::type::list<::apache::thrift::type::i32_t>>, - Parent> { - public: - using Self = Path< - ::std::map<::std::int32_t, ::std::vector<::std::int32_t>>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::list<::apache::thrift::type_class::integral>>, - ::apache::thrift::type::map<::apache::thrift::type::i32_t, ::apache::thrift::type::list<::apache::thrift::type::i32_t>>, - Parent>; - using Child = ChildThriftPath<::std::vector<::std::int32_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int32_t); -}; - - -template -class ChildThriftPath<::facebook::fboss::state::SwitchState, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::facebook::fboss::state::SwitchState, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::SwitchState>, - Parent> { - public: - using Self = Path< - ::facebook::fboss::state::SwitchState, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::SwitchState>, - Parent>; - using strings = ::facebook::fboss::state::switch_state_tags::strings; + using strings = ::facebook::fboss::state::switch_state_tags::strings; template using Child = Path< ChildType, @@ -10693,64 +10429,582 @@ std::pair -class ChildThriftPath<::std::map<::facebook::fboss::cfg::PlatformAttributes, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::map<::facebook::fboss::cfg::PlatformAttributes, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::map<::facebook::fboss::cfg::PlatformAttributes, ::std::string>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::string>, + ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::cfg::PlatformAttributes>, ::apache::thrift::type::string_t>, + Parent> { + public: + using Self = Path< + ::std::map<::facebook::fboss::cfg::PlatformAttributes, ::std::string>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::string>, + ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::cfg::PlatformAttributes>, ::apache::thrift::type::string_t>, + Parent>; + using Child = Path<::std::string, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::facebook::fboss::cfg::PlatformAttributes); +}; + +template +class ChildThriftPath<::std::set<::std::int32_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::set<::std::int32_t>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::set<::apache::thrift::type_class::integral>, + ::apache::thrift::type::set<::apache::thrift::type::i32_t>, + Parent> { + public: + using Self = Path< + ::std::set<::std::int32_t>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::set<::apache::thrift::type_class::integral>, + ::apache::thrift::type::set<::apache::thrift::type::i32_t>, + Parent>; + using Child = Path<::std::int32_t, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int32_t); +}; + + +template +class ChildThriftPath<::facebook::fboss::cfg::VlanPort, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::facebook::fboss::cfg::VlanPort, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::VlanPort>, + Parent> { + public: + using Self = Path< + ::facebook::fboss::cfg::VlanPort, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::VlanPort>, + Parent>; + using strings = ::facebook::fboss::cfg::switch_config_tags::strings; + template + using Child = Path< + ChildType, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ChildTC, + ChildTag, + Self + >; + using Children = fatal::tuple>, +std::pair>, +std::pair>>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::facebook::fboss::cfg::SpanningTreeState, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::SpanningTreeState>>>, + std::pair, Child>>; + template + using NameToId = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>>::template type_of; + + template + using TypeFor = typename Children::template type_of; + using Self::Self; + + STRUCT_CHILD_GETTERS(vlanID, 1); + STRUCT_CHILD_GETTERS(logicalPort, 2); + STRUCT_CHILD_GETTERS(spanningTreeState, 3); + STRUCT_CHILD_GETTERS(emitTags, 4); + + template + auto operator()(const std::integral_constant&) { + if constexpr (__id == 1) { return vlanID(); } + else if constexpr (__id == 2) { return logicalPort(); } + else if constexpr (__id == 3) { return spanningTreeState(); } + else if constexpr (__id == 4) { return emitTags(); } + } + + template + auto operator()(const fatal::sequence&) { + return operator()(NameToId>()); + } +}; + + +template +class ChildThriftPath<::facebook::fboss::fsdb::AgentData, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::facebook::fboss::fsdb::AgentData, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::fsdb::AgentData>, + Parent> { + public: + using Self = Path< + ::facebook::fboss::fsdb::AgentData, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::fsdb::AgentData>, + Parent>; + using strings = ::facebook::fboss::fsdb::fsdb_model_tags::strings; + template + using Child = Path< + ChildType, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ChildTC, + ChildTag, + Self + >; + using Children = fatal::tuple>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::facebook::fboss::cfg::AgentConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::facebook::fboss::state::SwitchState, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::map<::std::string, ::facebook::fboss::fsdb::FsdbSubscriptionState>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::map<::std::int64_t, ::facebook::fboss::switch_reachability::SwitchReachability>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + template + using NameToId = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>>::template type_of; + + template + using TypeFor = typename Children::template type_of; + using Self::Self; + + STRUCT_CHILD_GETTERS(config, 1); + STRUCT_CHILD_GETTERS(switchState, 2); + STRUCT_CHILD_GETTERS(fsdbSubscriptions, 4); + STRUCT_CHILD_GETTERS(dsfSwitchReachability, 5); + + template + auto operator()(const std::integral_constant&) { + if constexpr (__id == 1) { return config(); } + else if constexpr (__id == 2) { return switchState(); } + else if constexpr (__id == 4) { return fsdbSubscriptions(); } + else if constexpr (__id == 5) { return dsfSwitchReachability(); } + } + + template + auto operator()(const fatal::sequence&) { + return operator()(NameToId>()); + } +}; + +template +class ChildThriftPath<::std::map<::std::int64_t, ::std::int32_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::map<::std::int64_t, ::std::int32_t>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::integral>, + ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::i32_t>, + Parent> { + public: + using Self = Path< + ::std::map<::std::int64_t, ::std::int32_t>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::integral>, + ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::i32_t>, + Parent>; + using Child = Path<::std::int32_t, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int64_t); +}; + +template +class ChildThriftPath<::std::map<::std::string, ::facebook::fboss::BufferPoolFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::map<::std::string, ::facebook::fboss::BufferPoolFields>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::BufferPoolFields>>, + Parent> { + public: + using Self = Path< + ::std::map<::std::string, ::facebook::fboss::BufferPoolFields>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::BufferPoolFields>>, + Parent>; + using Child = ChildThriftPath<::facebook::fboss::BufferPoolFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::string); +}; + +template +class ChildThriftPath<::std::map<::std::int64_t, ::facebook::fboss::state::SystemPortFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::map<::std::int64_t, ::facebook::fboss::state::SystemPortFields>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::struct_t<::facebook::fboss::SystemPortThrift>>, + Parent> { + public: + using Self = Path< + ::std::map<::std::int64_t, ::facebook::fboss::state::SystemPortFields>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::struct_t<::facebook::fboss::SystemPortThrift>>, + Parent>; + using Child = ChildThriftPath<::facebook::fboss::state::SystemPortFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int64_t); +}; + + +template +class ChildThriftPath<::facebook::fboss::state::QcmCfgFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::facebook::fboss::state::QcmCfgFields, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::state::QcmCfgFields>, + Parent> { + public: + using Self = Path< + ::facebook::fboss::state::QcmCfgFields, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::state::QcmCfgFields>, + Parent>; + using strings = ::facebook::fboss::state::switch_state_tags::strings; + template + using Child = Path< + ChildType, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ChildTC, + ChildTag, + Self + >; + using Children = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child>, + std::pair, ChildThriftPath<::std::map<::std::int32_t, ::std::int32_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::facebook::fboss::IpPrefix, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::facebook::fboss::IpPrefix, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child<::std::int8_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::byte_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, ChildThriftPath<::std::vector<::std::int32_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::map<::std::int32_t, ::std::set<::std::int32_t>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + template + using NameToId = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>>::template type_of; + + template + using TypeFor = typename Children::template type_of; + using Self::Self; + + STRUCT_CHILD_GETTERS(agingIntervalInMsecs, 1); + STRUCT_CHILD_GETTERS(numFlowSamplesPerView, 2); + STRUCT_CHILD_GETTERS(flowLimit, 3); + STRUCT_CHILD_GETTERS(numFlowsClear, 4); + STRUCT_CHILD_GETTERS(scanIntervalInUsecs, 5); + STRUCT_CHILD_GETTERS(exportThreshold, 6); + STRUCT_CHILD_GETTERS(monitorQcmCfgPortsOnly, 7); + STRUCT_CHILD_GETTERS(flowWeights, 8); + STRUCT_CHILD_GETTERS(collectorSrcIp, 9); + STRUCT_CHILD_GETTERS(collectorDstIp, 10); + STRUCT_CHILD_GETTERS(collectorSrcPort, 11); + STRUCT_CHILD_GETTERS(collectorDstPort, 12); + STRUCT_CHILD_GETTERS(collectorDscp, 13); + STRUCT_CHILD_GETTERS(ppsToQcm, 14); + STRUCT_CHILD_GETTERS(monitorQcmPortList, 15); + STRUCT_CHILD_GETTERS(port2QosQueueIds, 16); + + template + auto operator()(const std::integral_constant&) { + if constexpr (__id == 1) { return agingIntervalInMsecs(); } + else if constexpr (__id == 2) { return numFlowSamplesPerView(); } + else if constexpr (__id == 3) { return flowLimit(); } + else if constexpr (__id == 4) { return numFlowsClear(); } + else if constexpr (__id == 5) { return scanIntervalInUsecs(); } + else if constexpr (__id == 6) { return exportThreshold(); } + else if constexpr (__id == 7) { return monitorQcmCfgPortsOnly(); } + else if constexpr (__id == 8) { return flowWeights(); } + else if constexpr (__id == 9) { return collectorSrcIp(); } + else if constexpr (__id == 10) { return collectorDstIp(); } + else if constexpr (__id == 11) { return collectorSrcPort(); } + else if constexpr (__id == 12) { return collectorDstPort(); } + else if constexpr (__id == 13) { return collectorDscp(); } + else if constexpr (__id == 14) { return ppsToQcm(); } + else if constexpr (__id == 15) { return monitorQcmPortList(); } + else if constexpr (__id == 16) { return port2QosQueueIds(); } + } + + template + auto operator()(const fatal::sequence&) { + return operator()(NameToId>()); + } +}; + +template +class ChildThriftPath<::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::string, ::facebook::fboss::state::MirrorOnDropReportFields>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::string, ::facebook::fboss::state::MirrorOnDropReportFields>>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::MirrorOnDropReportFields>>>, + Parent> { + public: + using Self = Path< + ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::string, ::facebook::fboss::state::MirrorOnDropReportFields>>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::MirrorOnDropReportFields>>>, + Parent>; + using Child = ChildThriftPath<::std::map<::std::string, ::facebook::fboss::state::MirrorOnDropReportFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::facebook::fboss::state::SwitchIdList); +}; + +template +class ChildThriftPath<::std::map<::std::int32_t, ::std::vector<::std::string>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::map<::std::int32_t, ::std::vector<::std::string>>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, + ::apache::thrift::type::map<::apache::thrift::type::i32_t, ::apache::thrift::type::list<::apache::thrift::type::string_t>>, + Parent> { + public: + using Self = Path< + ::std::map<::std::int32_t, ::std::vector<::std::string>>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, + ::apache::thrift::type::map<::apache::thrift::type::i32_t, ::apache::thrift::type::list<::apache::thrift::type::string_t>>, + Parent>; + using Child = ChildThriftPath<::std::vector<::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int32_t); +}; + +template +class ChildThriftPath<::std::map<::std::int16_t, ::std::int16_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::map<::std::int16_t, ::std::int16_t>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::integral>, + ::apache::thrift::type::map<::apache::thrift::type::i16_t, ::apache::thrift::type::i16_t>, + Parent> { + public: + using Self = Path< + ::std::map<::std::int16_t, ::std::int16_t>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::integral>, + ::apache::thrift::type::map<::apache::thrift::type::i16_t, ::apache::thrift::type::i16_t>, + Parent>; + using Child = Path<::std::int16_t, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int16_t); +}; + +template +class ChildThriftPath<::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::string, ::facebook::fboss::state::MirrorFields>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::string, ::facebook::fboss::state::MirrorFields>>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::MirrorFields>>>, + Parent> { + public: + using Self = Path< + ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::string, ::facebook::fboss::state::MirrorFields>>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::MirrorFields>>>, + Parent>; + using Child = ChildThriftPath<::std::map<::std::string, ::facebook::fboss::state::MirrorFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::facebook::fboss::state::SwitchIdList); +}; + +template +class ChildThriftPath<::std::map<::std::string, ::facebook::fboss::fsdb::FsdbSubscriptionState>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::map<::std::string, ::facebook::fboss::fsdb::FsdbSubscriptionState>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::enumeration>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::enum_t<::facebook::fboss::fsdb::FsdbSubscriptionState>>, + Parent> { + public: + using Self = Path< + ::std::map<::std::string, ::facebook::fboss::fsdb::FsdbSubscriptionState>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::enumeration>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::enum_t<::facebook::fboss::fsdb::FsdbSubscriptionState>>, + Parent>; + using Child = Path<::facebook::fboss::fsdb::FsdbSubscriptionState, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::fsdb::FsdbSubscriptionState>, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::string); +}; + +template +class ChildThriftPath<::std::map<::std::string, ::facebook::fboss::state::MirrorFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::map<::std::string, ::facebook::fboss::state::MirrorFields>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::MirrorFields>>, + Parent> { + public: + using Self = Path< + ::std::map<::std::string, ::facebook::fboss::state::MirrorFields>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::MirrorFields>>, + Parent>; + using Child = ChildThriftPath<::facebook::fboss::state::MirrorFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::string); +}; + +template +class ChildThriftPath<::std::map<::facebook::fboss::state::SwitchIdList, ::facebook::fboss::state::SwitchSettingsFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::map<::facebook::fboss::cfg::PlatformAttributes, ::std::string>, + ::std::map<::facebook::fboss::state::SwitchIdList, ::facebook::fboss::state::SwitchSettingsFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::string>, - ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::cfg::PlatformAttributes>, ::apache::thrift::type::string_t>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::SwitchSettingsFields>>, Parent> { public: using Self = Path< - ::std::map<::facebook::fboss::cfg::PlatformAttributes, ::std::string>, + ::std::map<::facebook::fboss::state::SwitchIdList, ::facebook::fboss::state::SwitchSettingsFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::string>, - ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::cfg::PlatformAttributes>, ::apache::thrift::type::string_t>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::SwitchSettingsFields>>, Parent>; - using Child = Path<::std::string, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t, Self>; + using Child = ChildThriftPath<::facebook::fboss::state::SwitchSettingsFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; - CONTAINER_CHILD_GETTERS(::facebook::fboss::cfg::PlatformAttributes); + CONTAINER_CHILD_GETTERS(::facebook::fboss::state::SwitchIdList); }; + template -class ChildThriftPath<::std::set<::std::int32_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::SflowTunnel, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::set<::std::int32_t>, + ::facebook::fboss::cfg::SflowTunnel, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::set<::apache::thrift::type_class::integral>, - ::apache::thrift::type::set<::apache::thrift::type::i32_t>, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::SflowTunnel>, Parent> { public: using Self = Path< - ::std::set<::std::int32_t>, + ::facebook::fboss::cfg::SflowTunnel, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::set<::apache::thrift::type_class::integral>, - ::apache::thrift::type::set<::apache::thrift::type::i32_t>, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::SflowTunnel>, Parent>; - using Child = Path<::std::int32_t, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t, Self>; + using strings = ::facebook::fboss::cfg::switch_config_tags::strings; + template + using Child = Path< + ChildType, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ChildTC, + ChildTag, + Self + >; + using Children = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, ChildThriftPath<::facebook::fboss::cfg::Ttl, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + template + using NameToId = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>>::template type_of; + + template + using TypeFor = typename Children::template type_of; using Self::Self; + + STRUCT_CHILD_GETTERS(ip, 1); + STRUCT_CHILD_GETTERS(udpSrcPort, 2); + STRUCT_CHILD_GETTERS(udpDstPort, 3); + STRUCT_CHILD_GETTERS(ttl, 4); - CONTAINER_CHILD_GETTERS(::std::int32_t); + template + auto operator()(const std::integral_constant&) { + if constexpr (__id == 1) { return ip(); } + else if constexpr (__id == 2) { return udpSrcPort(); } + else if constexpr (__id == 3) { return udpDstPort(); } + else if constexpr (__id == 4) { return ttl(); } + } + + template + auto operator()(const fatal::sequence&) { + return operator()(NameToId>()); + } }; template -class ChildThriftPath<::facebook::fboss::cfg::VlanPort, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::phy::PinID, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::VlanPort, + ::facebook::fboss::phy::PinID, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::VlanPort>, + ::apache::thrift::type::struct_t<::facebook::fboss::phy::PinID>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::VlanPort, + ::facebook::fboss::phy::PinID, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::VlanPort>, + ::apache::thrift::type::struct_t<::facebook::fboss::phy::PinID>, Parent>; - using strings = ::facebook::fboss::cfg::switch_config_tags::strings; + using strings = ::facebook::fboss::phy::phy_tags::strings; template using Child = Path< ChildType, @@ -10759,35 +11013,25 @@ class ChildThriftPath<::facebook::fboss::cfg::VlanPort, ::facebook::fboss::fsdb: ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>, -std::pair>>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::facebook::fboss::cfg::SpanningTreeState, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::SpanningTreeState>>>, - std::pair, Child>>; + using Children = fatal::tuple>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>>; template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(vlanID, 1); - STRUCT_CHILD_GETTERS(logicalPort, 2); - STRUCT_CHILD_GETTERS(spanningTreeState, 3); - STRUCT_CHILD_GETTERS(emitTags, 4); + STRUCT_CHILD_GETTERS(chip, 1); + STRUCT_CHILD_GETTERS(lane, 2); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return vlanID(); } - else if constexpr (__id == 2) { return logicalPort(); } - else if constexpr (__id == 3) { return spanningTreeState(); } - else if constexpr (__id == 4) { return emitTags(); } + if constexpr (__id == 1) { return chip(); } + else if constexpr (__id == 2) { return lane(); } } template @@ -10797,21 +11041,21 @@ std::pair -class ChildThriftPath<::std::vector<::facebook::fboss::state::BlockedNeighbor>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::vector<::facebook::fboss::cfg::Vlan>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::vector<::facebook::fboss::state::BlockedNeighbor>, + ::std::vector<::facebook::fboss::cfg::Vlan>, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::state::BlockedNeighbor>>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::Vlan>>, Parent> { public: using Self = Path< - ::std::vector<::facebook::fboss::state::BlockedNeighbor>, + ::std::vector<::facebook::fboss::cfg::Vlan>, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::state::BlockedNeighbor>>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::Vlan>>, Parent>; - using Child = ChildThriftPath<::facebook::fboss::state::BlockedNeighbor, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Child = ChildThriftPath<::facebook::fboss::cfg::Vlan, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; CONTAINER_CHILD_GETTERS(::std::int32_t); @@ -10819,21 +11063,21 @@ class ChildThriftPath<::std::vector<::facebook::fboss::state::BlockedNeighbor>, template -class ChildThriftPath<::facebook::fboss::fsdb::AgentData, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::PktLenRange, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::fsdb::AgentData, + ::facebook::fboss::cfg::PktLenRange, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::fsdb::AgentData>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::PktLenRange>, Parent> { public: using Self = Path< - ::facebook::fboss::fsdb::AgentData, + ::facebook::fboss::cfg::PktLenRange, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::fsdb::AgentData>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::PktLenRange>, Parent>; - using strings = ::facebook::fboss::fsdb::fsdb_model_tags::strings; + using strings = ::facebook::fboss::cfg::switch_config_tags::strings; template using Child = Path< ChildType, @@ -10842,35 +11086,30 @@ class ChildThriftPath<::facebook::fboss::fsdb::AgentData, ::facebook::fboss::fsd ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; - using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::facebook::fboss::cfg::AgentConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::facebook::fboss::state::SwitchState, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::map<::std::string, ::facebook::fboss::fsdb::FsdbSubscriptionState>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::map<::std::int64_t, ::facebook::fboss::switch_reachability::SwitchReachability>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using Children = fatal::tuple>, +std::pair>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child>>; template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(config, 1); - STRUCT_CHILD_GETTERS(switchState, 2); - STRUCT_CHILD_GETTERS(fsdbSubscriptions, 4); - STRUCT_CHILD_GETTERS(dsfSwitchReachability, 5); + STRUCT_CHILD_GETTERS(min, 1); + STRUCT_CHILD_GETTERS(max, 2); + STRUCT_CHILD_GETTERS(invert, 3); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return config(); } - else if constexpr (__id == 2) { return switchState(); } - else if constexpr (__id == 4) { return fsdbSubscriptions(); } - else if constexpr (__id == 5) { return dsfSwitchReachability(); } + if constexpr (__id == 1) { return min(); } + else if constexpr (__id == 2) { return max(); } + else if constexpr (__id == 3) { return invert(); } } template @@ -10879,84 +11118,94 @@ std::pair -class ChildThriftPath<::std::map<::std::int64_t, ::std::int32_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::map<::std::int64_t, ::std::int32_t>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::integral>, - ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::i32_t>, - Parent> { - public: - using Self = Path< - ::std::map<::std::int64_t, ::std::int32_t>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::integral>, - ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::i32_t>, - Parent>; - using Child = Path<::std::int32_t, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int64_t); -}; template -class ChildThriftPath<::std::map<::std::string, ::facebook::fboss::BufferPoolFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::PortDescriptor, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::map<::std::string, ::facebook::fboss::BufferPoolFields>, + ::facebook::fboss::cfg::PortDescriptor, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::BufferPoolFields>>, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortDescriptor>, Parent> { public: using Self = Path< - ::std::map<::std::string, ::facebook::fboss::BufferPoolFields>, + ::facebook::fboss::cfg::PortDescriptor, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::BufferPoolFields>>, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortDescriptor>, Parent>; - using Child = ChildThriftPath<::facebook::fboss::BufferPoolFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using strings = ::facebook::fboss::cfg::switch_config_tags::strings; + template + using Child = Path< + ChildType, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ChildTC, + ChildTag, + Self + >; + using Children = fatal::tuple>, +std::pair>>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child<::facebook::fboss::cfg::PortDescriptorType, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::PortDescriptorType>>>>; + template + using NameToId = fatal::tuple>, +std::pair>>::template type_of; + + template + using TypeFor = typename Children::template type_of; using Self::Self; + + STRUCT_CHILD_GETTERS(portId, 1); + STRUCT_CHILD_GETTERS(portType, 2); - CONTAINER_CHILD_GETTERS(::std::string); + template + auto operator()(const std::integral_constant&) { + if constexpr (__id == 1) { return portId(); } + else if constexpr (__id == 2) { return portType(); } + } + + template + auto operator()(const fatal::sequence&) { + return operator()(NameToId>()); + } }; template -class ChildThriftPath<::std::map<::std::int64_t, ::facebook::fboss::state::SystemPortFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::vector<::facebook::fboss::cfg::QosRule>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::map<::std::int64_t, ::facebook::fboss::state::SystemPortFields>, + ::std::vector<::facebook::fboss::cfg::QosRule>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::struct_t<::facebook::fboss::SystemPortThrift>>, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::QosRule>>, Parent> { public: using Self = Path< - ::std::map<::std::int64_t, ::facebook::fboss::state::SystemPortFields>, + ::std::vector<::facebook::fboss::cfg::QosRule>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::struct_t<::facebook::fboss::SystemPortThrift>>, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::QosRule>>, Parent>; - using Child = ChildThriftPath<::facebook::fboss::state::SystemPortFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Child = ChildThriftPath<::facebook::fboss::cfg::QosRule, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; - CONTAINER_CHILD_GETTERS(::std::int64_t); + CONTAINER_CHILD_GETTERS(::std::int32_t); }; template -class ChildThriftPath<::facebook::fboss::state::QcmCfgFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::state::TrafficClassToQosAttributeMap, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::state::QcmCfgFields, + ::facebook::fboss::state::TrafficClassToQosAttributeMap, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::QcmCfgFields>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::TrafficClassToQosAttributeMap>, Parent> { public: using Self = Path< - ::facebook::fboss::state::QcmCfgFields, + ::facebook::fboss::state::TrafficClassToQosAttributeMap, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::QcmCfgFields>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::TrafficClassToQosAttributeMap>, Parent>; using strings = ::facebook::fboss::state::switch_state_tags::strings; template @@ -10967,95 +11216,25 @@ class ChildThriftPath<::facebook::fboss::state::QcmCfgFields, ::facebook::fboss: ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child>, - std::pair, ChildThriftPath<::std::map<::std::int32_t, ::std::int32_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::facebook::fboss::IpPrefix, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::facebook::fboss::IpPrefix, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child<::std::int8_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::byte_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, ChildThriftPath<::std::vector<::std::int32_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::map<::std::int32_t, ::std::set<::std::int32_t>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using Children = fatal::tuple, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::std::vector<::facebook::fboss::state::TrafficClassToQosAttributeEntry>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::vector<::facebook::fboss::state::TrafficClassToQosAttributeEntry>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(agingIntervalInMsecs, 1); - STRUCT_CHILD_GETTERS(numFlowSamplesPerView, 2); - STRUCT_CHILD_GETTERS(flowLimit, 3); - STRUCT_CHILD_GETTERS(numFlowsClear, 4); - STRUCT_CHILD_GETTERS(scanIntervalInUsecs, 5); - STRUCT_CHILD_GETTERS(exportThreshold, 6); - STRUCT_CHILD_GETTERS(monitorQcmCfgPortsOnly, 7); - STRUCT_CHILD_GETTERS(flowWeights, 8); - STRUCT_CHILD_GETTERS(collectorSrcIp, 9); - STRUCT_CHILD_GETTERS(collectorDstIp, 10); - STRUCT_CHILD_GETTERS(collectorSrcPort, 11); - STRUCT_CHILD_GETTERS(collectorDstPort, 12); - STRUCT_CHILD_GETTERS(collectorDscp, 13); - STRUCT_CHILD_GETTERS(ppsToQcm, 14); - STRUCT_CHILD_GETTERS(monitorQcmPortList, 15); - STRUCT_CHILD_GETTERS(port2QosQueueIds, 16); + STRUCT_CHILD_GETTERS(from, 1); + STRUCT_CHILD_GETTERS(to, 2); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return agingIntervalInMsecs(); } - else if constexpr (__id == 2) { return numFlowSamplesPerView(); } - else if constexpr (__id == 3) { return flowLimit(); } - else if constexpr (__id == 4) { return numFlowsClear(); } - else if constexpr (__id == 5) { return scanIntervalInUsecs(); } - else if constexpr (__id == 6) { return exportThreshold(); } - else if constexpr (__id == 7) { return monitorQcmCfgPortsOnly(); } - else if constexpr (__id == 8) { return flowWeights(); } - else if constexpr (__id == 9) { return collectorSrcIp(); } - else if constexpr (__id == 10) { return collectorDstIp(); } - else if constexpr (__id == 11) { return collectorSrcPort(); } - else if constexpr (__id == 12) { return collectorDstPort(); } - else if constexpr (__id == 13) { return collectorDscp(); } - else if constexpr (__id == 14) { return ppsToQcm(); } - else if constexpr (__id == 15) { return monitorQcmPortList(); } - else if constexpr (__id == 16) { return port2QosQueueIds(); } + if constexpr (__id == 1) { return from(); } + else if constexpr (__id == 2) { return to(); } } template @@ -11064,148 +11243,220 @@ std::pair -class ChildThriftPath<::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::string, ::facebook::fboss::state::MirrorOnDropReportFields>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::state::BlockedNeighbor, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::string, ::facebook::fboss::state::MirrorOnDropReportFields>>, + ::facebook::fboss::state::BlockedNeighbor, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::MirrorOnDropReportFields>>>, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::state::BlockedNeighbor>, Parent> { public: using Self = Path< - ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::string, ::facebook::fboss::state::MirrorOnDropReportFields>>, + ::facebook::fboss::state::BlockedNeighbor, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::MirrorOnDropReportFields>>>, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::state::BlockedNeighbor>, Parent>; - using Child = ChildThriftPath<::std::map<::std::string, ::facebook::fboss::state::MirrorOnDropReportFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using strings = ::facebook::fboss::state::switch_state_tags::strings; + template + using Child = Path< + ChildType, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ChildTC, + ChildTag, + Self + >; + using Children = fatal::tuple>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, ChildThriftPath<::facebook::network::thrift::BinaryAddress, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + template + using NameToId = fatal::tuple>, +std::pair>>::template type_of; + + template + using TypeFor = typename Children::template type_of; using Self::Self; + + STRUCT_CHILD_GETTERS(blockNeighborVlanID, 1); + STRUCT_CHILD_GETTERS(blockNeighborIP, 2); - CONTAINER_CHILD_GETTERS(::facebook::fboss::state::SwitchIdList); + template + auto operator()(const std::integral_constant&) { + if constexpr (__id == 1) { return blockNeighborVlanID(); } + else if constexpr (__id == 2) { return blockNeighborIP(); } + } + + template + auto operator()(const fatal::sequence&) { + return operator()(NameToId>()); + } }; template -class ChildThriftPath<::std::map<::std::int32_t, ::std::vector<::std::string>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::vector<::facebook::fboss::cfg::AclTableGroup>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::map<::std::int32_t, ::std::vector<::std::string>>, + ::std::vector<::facebook::fboss::cfg::AclTableGroup>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, - ::apache::thrift::type::map<::apache::thrift::type::i32_t, ::apache::thrift::type::list<::apache::thrift::type::string_t>>, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::AclTableGroup>>, Parent> { public: using Self = Path< - ::std::map<::std::int32_t, ::std::vector<::std::string>>, + ::std::vector<::facebook::fboss::cfg::AclTableGroup>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::list<::apache::thrift::type_class::string>>, - ::apache::thrift::type::map<::apache::thrift::type::i32_t, ::apache::thrift::type::list<::apache::thrift::type::string_t>>, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::AclTableGroup>>, Parent>; - using Child = ChildThriftPath<::std::vector<::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Child = ChildThriftPath<::facebook::fboss::cfg::AclTableGroup, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; CONTAINER_CHILD_GETTERS(::std::int32_t); }; -template -class ChildThriftPath<::std::map<::std::int16_t, ::std::int16_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::map<::std::int16_t, ::std::int16_t>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::integral>, - ::apache::thrift::type::map<::apache::thrift::type::i16_t, ::apache::thrift::type::i16_t>, - Parent> { - public: - using Self = Path< - ::std::map<::std::int16_t, ::std::int16_t>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::integral>, - ::apache::thrift::type::map<::apache::thrift::type::i16_t, ::apache::thrift::type::i16_t>, - Parent>; - using Child = Path<::std::int16_t, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int16_t); -}; template -class ChildThriftPath<::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::string, ::facebook::fboss::state::MirrorFields>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::RedirectToNextHopAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::string, ::facebook::fboss::state::MirrorFields>>, + ::facebook::fboss::cfg::RedirectToNextHopAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::MirrorFields>>>, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::RedirectToNextHopAction>, Parent> { public: using Self = Path< - ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::string, ::facebook::fboss::state::MirrorFields>>, + ::facebook::fboss::cfg::RedirectToNextHopAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::MirrorFields>>>, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::RedirectToNextHopAction>, Parent>; - using Child = ChildThriftPath<::std::map<::std::string, ::facebook::fboss::state::MirrorFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using strings = ::facebook::fboss::cfg::switch_config_tags::strings; + template + using Child = Path< + ChildType, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ChildTC, + ChildTag, + Self + >; + using Children = fatal::tuple, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::std::vector<::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::vector<::facebook::fboss::cfg::RedirectNextHop>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + template + using NameToId = fatal::tuple>, +std::pair>>::template type_of; + + template + using TypeFor = typename Children::template type_of; using Self::Self; + + STRUCT_CHILD_GETTERS(nexthops, 1); + STRUCT_CHILD_GETTERS(redirectNextHops, 2); - CONTAINER_CHILD_GETTERS(::facebook::fboss::state::SwitchIdList); + template + auto operator()(const std::integral_constant&) { + if constexpr (__id == 1) { return nexthops(); } + else if constexpr (__id == 2) { return redirectNextHops(); } + } + + template + auto operator()(const fatal::sequence&) { + return operator()(NameToId>()); + } }; template -class ChildThriftPath<::std::map<::std::string, ::facebook::fboss::fsdb::FsdbSubscriptionState>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::map<::std::string, ::facebook::fboss::cfg::UdfGroup>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::map<::std::string, ::facebook::fboss::fsdb::FsdbSubscriptionState>, + ::std::map<::std::string, ::facebook::fboss::cfg::UdfGroup>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::enumeration>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::enum_t<::facebook::fboss::fsdb::FsdbSubscriptionState>>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::cfg::UdfGroup>>, Parent> { public: using Self = Path< - ::std::map<::std::string, ::facebook::fboss::fsdb::FsdbSubscriptionState>, + ::std::map<::std::string, ::facebook::fboss::cfg::UdfGroup>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::enumeration>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::enum_t<::facebook::fboss::fsdb::FsdbSubscriptionState>>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::cfg::UdfGroup>>, Parent>; - using Child = Path<::facebook::fboss::fsdb::FsdbSubscriptionState, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::fsdb::FsdbSubscriptionState>, Self>; + using Child = ChildThriftPath<::facebook::fboss::cfg::UdfGroup, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; CONTAINER_CHILD_GETTERS(::std::string); }; + template -class ChildThriftPath<::std::map<::std::string, ::facebook::fboss::state::MirrorFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::state::SendToQueue, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::map<::std::string, ::facebook::fboss::state::MirrorFields>, + ::facebook::fboss::state::SendToQueue, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::MirrorFields>>, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::state::SendToQueue>, Parent> { public: using Self = Path< - ::std::map<::std::string, ::facebook::fboss::state::MirrorFields>, + ::facebook::fboss::state::SendToQueue, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::MirrorFields>>, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::state::SendToQueue>, Parent>; - using Child = ChildThriftPath<::facebook::fboss::state::MirrorFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using strings = ::facebook::fboss::state::switch_state_tags::strings; + template + using Child = Path< + ChildType, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ChildTC, + ChildTag, + Self + >; + using Children = fatal::tuple>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::facebook::fboss::cfg::QueueMatchAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, Child>>; + template + using NameToId = fatal::tuple>, +std::pair>>::template type_of; + + template + using TypeFor = typename Children::template type_of; using Self::Self; + + STRUCT_CHILD_GETTERS(action, 1); + STRUCT_CHILD_GETTERS(sendToCPU, 2); - CONTAINER_CHILD_GETTERS(::std::string); + template + auto operator()(const std::integral_constant&) { + if constexpr (__id == 1) { return action(); } + else if constexpr (__id == 2) { return sendToCPU(); } + } + + template + auto operator()(const fatal::sequence&) { + return operator()(NameToId>()); + } }; template -class ChildThriftPath<::std::map<::facebook::fboss::state::SwitchIdList, ::facebook::fboss::state::SwitchSettingsFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::int64_t, ::facebook::fboss::state::SystemPortFields>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::map<::facebook::fboss::state::SwitchIdList, ::facebook::fboss::state::SwitchSettingsFields>, + ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::int64_t, ::facebook::fboss::state::SystemPortFields>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::SwitchSettingsFields>>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::struct_t<::facebook::fboss::SystemPortThrift>>>, Parent> { public: using Self = Path< - ::std::map<::facebook::fboss::state::SwitchIdList, ::facebook::fboss::state::SwitchSettingsFields>, + ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::int64_t, ::facebook::fboss::state::SystemPortFields>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::state::SwitchSettingsFields>>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::struct_t<::facebook::fboss::SystemPortThrift>>>, Parent>; - using Child = ChildThriftPath<::facebook::fboss::state::SwitchSettingsFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Child = ChildThriftPath<::std::map<::std::int64_t, ::facebook::fboss::state::SystemPortFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; CONTAINER_CHILD_GETTERS(::facebook::fboss::state::SwitchIdList); @@ -11213,21 +11464,21 @@ class ChildThriftPath<::std::map<::facebook::fboss::state::SwitchIdList, ::faceb template -class ChildThriftPath<::facebook::fboss::cfg::SflowTunnel, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::TransceiverAttributes, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::SflowTunnel, + ::facebook::fboss::TransceiverAttributes, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::SflowTunnel>, + ::apache::thrift::type::struct_t<::facebook::fboss::TransceiverAttributes>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::SflowTunnel, + ::facebook::fboss::TransceiverAttributes, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::SflowTunnel>, + ::apache::thrift::type::struct_t<::facebook::fboss::TransceiverAttributes>, Parent>; - using strings = ::facebook::fboss::cfg::switch_config_tags::strings; + using strings = ::facebook::fboss::transceiver_validation_tags::strings; template using Child = Path< ChildType, @@ -11236,35 +11487,30 @@ class ChildThriftPath<::facebook::fboss::cfg::SflowTunnel, ::facebook::fboss::fs ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, ChildThriftPath<::facebook::fboss::cfg::Ttl, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using Children = fatal::tuple>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using ChildrenById = fatal::tuple< std::pair, Child<::facebook::fboss::MediaInterfaceCode, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::MediaInterfaceCode>>>, + std::pair, ChildThriftPath<::std::vector<::facebook::fboss::FirmwarePair>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::vector<::facebook::fboss::cfg::PortProfileID>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(ip, 1); - STRUCT_CHILD_GETTERS(udpSrcPort, 2); - STRUCT_CHILD_GETTERS(udpDstPort, 3); - STRUCT_CHILD_GETTERS(ttl, 4); + STRUCT_CHILD_GETTERS(mediaInterfaceCode, 1); + STRUCT_CHILD_GETTERS(supportedFirmwareVersions, 2); + STRUCT_CHILD_GETTERS(supportedPortProfiles, 3); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return ip(); } - else if constexpr (__id == 2) { return udpSrcPort(); } - else if constexpr (__id == 3) { return udpDstPort(); } - else if constexpr (__id == 4) { return ttl(); } + if constexpr (__id == 1) { return mediaInterfaceCode(); } + else if constexpr (__id == 2) { return supportedFirmwareVersions(); } + else if constexpr (__id == 3) { return supportedPortProfiles(); } } template @@ -11275,21 +11521,21 @@ std::pair>>: template -class ChildThriftPath<::facebook::fboss::phy::PinID, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::MatchToAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::phy::PinID, + ::facebook::fboss::cfg::MatchToAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::phy::PinID>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::MatchToAction>, Parent> { public: using Self = Path< - ::facebook::fboss::phy::PinID, + ::facebook::fboss::cfg::MatchToAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::phy::PinID>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::MatchToAction>, Parent>; - using strings = ::facebook::fboss::phy::phy_tags::strings; + using strings = ::facebook::fboss::cfg::switch_config_tags::strings; template using Child = Path< ChildType, @@ -11298,25 +11544,25 @@ class ChildThriftPath<::facebook::fboss::phy::PinID, ::facebook::fboss::fsdb::Fs ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>>; + using Children = fatal::tuple>, +std::pair>>; using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>>; + std::pair, ChildThriftPath<::facebook::fboss::cfg::MatchAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; template - using NameToId = fatal::tuple>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(chip, 1); - STRUCT_CHILD_GETTERS(lane, 2); + STRUCT_CHILD_GETTERS(matcher, 1); + STRUCT_CHILD_GETTERS(action, 2); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return chip(); } - else if constexpr (__id == 2) { return lane(); } + if constexpr (__id == 1) { return matcher(); } + else if constexpr (__id == 2) { return action(); } } template @@ -11326,43 +11572,43 @@ std::pair>> }; template -class ChildThriftPath<::std::vector<::facebook::fboss::cfg::Vlan>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::map<::facebook::fboss::cfg::BurstMonitorWeight, ::std::int16_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::vector<::facebook::fboss::cfg::Vlan>, + ::std::map<::facebook::fboss::cfg::BurstMonitorWeight, ::std::int16_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::Vlan>>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::integral>, + ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::cfg::BurstMonitorWeight>, ::apache::thrift::type::i16_t>, Parent> { public: using Self = Path< - ::std::vector<::facebook::fboss::cfg::Vlan>, + ::std::map<::facebook::fboss::cfg::BurstMonitorWeight, ::std::int16_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::Vlan>>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::integral>, + ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::cfg::BurstMonitorWeight>, ::apache::thrift::type::i16_t>, Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::Vlan, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Child = Path<::std::int16_t, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t, Self>; using Self::Self; - CONTAINER_CHILD_GETTERS(::std::int32_t); + CONTAINER_CHILD_GETTERS(::facebook::fboss::cfg::BurstMonitorWeight); }; template -class ChildThriftPath<::facebook::fboss::cfg::PktLenRange, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::MediaInterfaceId, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::PktLenRange, + ::facebook::fboss::MediaInterfaceId, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::PktLenRange>, + ::apache::thrift::type::struct_t<::facebook::fboss::MediaInterfaceId>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::PktLenRange, + ::facebook::fboss::MediaInterfaceId, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::PktLenRange>, + ::apache::thrift::type::struct_t<::facebook::fboss::MediaInterfaceId>, Parent>; - using strings = ::facebook::fboss::cfg::switch_config_tags::strings; + using strings = ::facebook::fboss::transceiver_tags::strings; template using Child = Path< ChildType, @@ -11371,30 +11617,30 @@ class ChildThriftPath<::facebook::fboss::cfg::PktLenRange, ::facebook::fboss::fs ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child>>; + using Children = fatal::tuple>, +std::pair>, +std::pair>>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, ChildThriftPath<::facebook::fboss::MediaInterfaceUnion, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, Child<::facebook::fboss::MediaInterfaceCode, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::MediaInterfaceCode>>>>; template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(min, 1); - STRUCT_CHILD_GETTERS(max, 2); - STRUCT_CHILD_GETTERS(invert, 3); + STRUCT_CHILD_GETTERS(lane, 1); + STRUCT_CHILD_GETTERS(media, 2); + STRUCT_CHILD_GETTERS(code, 3); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return min(); } - else if constexpr (__id == 2) { return max(); } - else if constexpr (__id == 3) { return invert(); } + if constexpr (__id == 1) { return lane(); } + else if constexpr (__id == 2) { return media(); } + else if constexpr (__id == 3) { return code(); } } template @@ -11404,95 +11650,64 @@ std::pair }; template -class ChildThriftPath<::std::vector<::facebook::fboss::cfg::QosRule>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::string, ::facebook::fboss::BufferPoolFields>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::vector<::facebook::fboss::cfg::QosRule>, + ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::string, ::facebook::fboss::BufferPoolFields>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::QosRule>>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::BufferPoolFields>>>, Parent> { public: using Self = Path< - ::std::vector<::facebook::fboss::cfg::QosRule>, + ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::string, ::facebook::fboss::BufferPoolFields>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::QosRule>>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>>, + ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::BufferPoolFields>>>, Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::QosRule, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Child = ChildThriftPath<::std::map<::std::string, ::facebook::fboss::BufferPoolFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; - CONTAINER_CHILD_GETTERS(::std::int32_t); + CONTAINER_CHILD_GETTERS(::facebook::fboss::state::SwitchIdList); }; - template -class ChildThriftPath<::facebook::fboss::cfg::PortDescriptor, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::map<::std::int16_t, ::facebook::fboss::phy::LaneState>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::PortDescriptor, + ::std::map<::std::int16_t, ::facebook::fboss::phy::LaneState>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortDescriptor>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::i16_t, ::apache::thrift::type::struct_t<::facebook::fboss::phy::LaneState>>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::PortDescriptor, + ::std::map<::std::int16_t, ::facebook::fboss::phy::LaneState>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortDescriptor>, - Parent>; - using strings = ::facebook::fboss::cfg::switch_config_tags::strings; - template - using Child = Path< - ChildType, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ChildTC, - ChildTag, - Self - >; - using Children = fatal::tuple>, -std::pair>>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child<::facebook::fboss::cfg::PortDescriptorType, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::PortDescriptorType>>>>; - template - using NameToId = fatal::tuple>, -std::pair>>::template type_of; - - template - using TypeFor = typename Children::template type_of; + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::i16_t, ::apache::thrift::type::struct_t<::facebook::fboss::phy::LaneState>>, + Parent>; + using Child = ChildThriftPath<::facebook::fboss::phy::LaneState, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; - - STRUCT_CHILD_GETTERS(portId, 1); - STRUCT_CHILD_GETTERS(portType, 2); - - template - auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return portId(); } - else if constexpr (__id == 2) { return portType(); } - } - template - auto operator()(const fatal::sequence&) { - return operator()(NameToId>()); - } + CONTAINER_CHILD_GETTERS(::std::int16_t); }; template -class ChildThriftPath<::facebook::fboss::state::TrafficClassToQosAttributeMap, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::phy::DataPlanePhyChip, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::state::TrafficClassToQosAttributeMap, + ::facebook::fboss::phy::DataPlanePhyChip, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::TrafficClassToQosAttributeMap>, + ::apache::thrift::type::struct_t<::facebook::fboss::phy::DataPlanePhyChip>, Parent> { public: using Self = Path< - ::facebook::fboss::state::TrafficClassToQosAttributeMap, + ::facebook::fboss::phy::DataPlanePhyChip, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::TrafficClassToQosAttributeMap>, + ::apache::thrift::type::struct_t<::facebook::fboss::phy::DataPlanePhyChip>, Parent>; - using strings = ::facebook::fboss::state::switch_state_tags::strings; + using strings = ::facebook::fboss::phy::phy_tags::strings; template using Child = Path< ChildType, @@ -11501,25 +11716,30 @@ class ChildThriftPath<::facebook::fboss::state::TrafficClassToQosAttributeMap, : ChildTag, Self >; - using Children = fatal::tuple, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; - using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::std::vector<::facebook::fboss::state::TrafficClassToQosAttributeEntry>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::vector<::facebook::fboss::state::TrafficClassToQosAttributeEntry>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using Children = fatal::tuple>, +std::pair>>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, Child<::facebook::fboss::phy::DataPlanePhyChipType, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::phy::DataPlanePhyChipType>>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>>; template - using NameToId = fatal::tuple>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(from, 1); - STRUCT_CHILD_GETTERS(to, 2); + STRUCT_CHILD_GETTERS(name, 1); + STRUCT_CHILD_GETTERS(type, 2); + STRUCT_CHILD_GETTERS(physicalID, 3); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return from(); } - else if constexpr (__id == 2) { return to(); } + if constexpr (__id == 1) { return name(); } + else if constexpr (__id == 2) { return type(); } + else if constexpr (__id == 3) { return physicalID(); } } template @@ -11530,19 +11750,19 @@ std::pair>>:: template -class ChildThriftPath<::facebook::fboss::state::BlockedNeighbor, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::state::IpTunnelFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::state::BlockedNeighbor, + ::facebook::fboss::state::IpTunnelFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::BlockedNeighbor>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::IpTunnelFields>, Parent> { public: using Self = Path< - ::facebook::fboss::state::BlockedNeighbor, + ::facebook::fboss::state::IpTunnelFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::BlockedNeighbor>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::IpTunnelFields>, Parent>; using strings = ::facebook::fboss::state::switch_state_tags::strings; template @@ -11553,25 +11773,75 @@ class ChildThriftPath<::facebook::fboss::state::BlockedNeighbor, ::facebook::fbo ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, ChildThriftPath<::facebook::network::thrift::BinaryAddress, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using Children = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>>; template - using NameToId = fatal::tuple>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(blockNeighborVlanID, 1); - STRUCT_CHILD_GETTERS(blockNeighborIP, 2); + STRUCT_CHILD_GETTERS(ipTunnelId, 1); + STRUCT_CHILD_GETTERS(underlayIntfId, 2); + STRUCT_CHILD_GETTERS(mode, 3); + STRUCT_CHILD_GETTERS(dstIp, 4); + STRUCT_CHILD_GETTERS(type, 5); + STRUCT_CHILD_GETTERS(tunnelTermType, 6); + STRUCT_CHILD_GETTERS(ttlMode, 7); + STRUCT_CHILD_GETTERS(dscpMode, 8); + STRUCT_CHILD_GETTERS(ecnMode, 9); + STRUCT_CHILD_GETTERS(srcIp, 10); + STRUCT_CHILD_GETTERS(dstIpMask, 11); + STRUCT_CHILD_GETTERS(srcIpMask, 12); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return blockNeighborVlanID(); } - else if constexpr (__id == 2) { return blockNeighborIP(); } + if constexpr (__id == 1) { return ipTunnelId(); } + else if constexpr (__id == 2) { return underlayIntfId(); } + else if constexpr (__id == 3) { return mode(); } + else if constexpr (__id == 4) { return dstIp(); } + else if constexpr (__id == 5) { return type(); } + else if constexpr (__id == 6) { return tunnelTermType(); } + else if constexpr (__id == 7) { return ttlMode(); } + else if constexpr (__id == 8) { return dscpMode(); } + else if constexpr (__id == 9) { return ecnMode(); } + else if constexpr (__id == 10) { return srcIp(); } + else if constexpr (__id == 11) { return dstIpMask(); } + else if constexpr (__id == 12) { return srcIpMask(); } } template @@ -11581,41 +11851,41 @@ std::pair -class ChildThriftPath<::std::vector<::facebook::fboss::cfg::AclTableGroup>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::map<::facebook::fboss::cfg::LLDPTag, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::vector<::facebook::fboss::cfg::AclTableGroup>, + ::std::map<::facebook::fboss::cfg::LLDPTag, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::AclTableGroup>>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::string>, + ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::cfg::LLDPTag>, ::apache::thrift::type::string_t>, Parent> { public: using Self = Path< - ::std::vector<::facebook::fboss::cfg::AclTableGroup>, + ::std::map<::facebook::fboss::cfg::LLDPTag, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::AclTableGroup>>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::string>, + ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::cfg::LLDPTag>, ::apache::thrift::type::string_t>, Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::AclTableGroup, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Child = Path<::std::string, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t, Self>; using Self::Self; - CONTAINER_CHILD_GETTERS(::std::int32_t); + CONTAINER_CHILD_GETTERS(::facebook::fboss::cfg::LLDPTag); }; template -class ChildThriftPath<::facebook::fboss::cfg::RedirectToNextHopAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::StaticRouteWithNextHops, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::RedirectToNextHopAction, + ::facebook::fboss::cfg::StaticRouteWithNextHops, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::RedirectToNextHopAction>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::StaticRouteWithNextHops>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::RedirectToNextHopAction, + ::facebook::fboss::cfg::StaticRouteWithNextHops, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::RedirectToNextHopAction>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::StaticRouteWithNextHops>, Parent>; using strings = ::facebook::fboss::cfg::switch_config_tags::strings; template @@ -11626,25 +11896,30 @@ class ChildThriftPath<::facebook::fboss::cfg::RedirectToNextHopAction, ::faceboo ChildTag, Self >; - using Children = fatal::tuple, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; - using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::std::vector<::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::vector<::facebook::fboss::cfg::RedirectNextHop>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using Children = fatal::tuple>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, ChildThriftPath<::std::vector<::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; template - using NameToId = fatal::tuple>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(nexthops, 1); - STRUCT_CHILD_GETTERS(redirectNextHops, 2); + STRUCT_CHILD_GETTERS(routerID, 1); + STRUCT_CHILD_GETTERS(prefix, 2); + STRUCT_CHILD_GETTERS(nexthops, 3); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return nexthops(); } - else if constexpr (__id == 2) { return redirectNextHops(); } + if constexpr (__id == 1) { return routerID(); } + else if constexpr (__id == 2) { return prefix(); } + else if constexpr (__id == 3) { return nexthops(); } } template @@ -11654,116 +11929,85 @@ std::pair -class ChildThriftPath<::std::map<::std::string, ::facebook::fboss::cfg::UdfGroup>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::vector<::facebook::fboss::state::BlockedNeighbor>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::map<::std::string, ::facebook::fboss::cfg::UdfGroup>, + ::std::vector<::facebook::fboss::state::BlockedNeighbor>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::cfg::UdfGroup>>, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::state::BlockedNeighbor>>, Parent> { public: using Self = Path< - ::std::map<::std::string, ::facebook::fboss::cfg::UdfGroup>, + ::std::vector<::facebook::fboss::state::BlockedNeighbor>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::cfg::UdfGroup>>, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::state::BlockedNeighbor>>, Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::UdfGroup, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Child = ChildThriftPath<::facebook::fboss::state::BlockedNeighbor, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; - CONTAINER_CHILD_GETTERS(::std::string); + CONTAINER_CHILD_GETTERS(::std::int32_t); }; - template -class ChildThriftPath<::facebook::fboss::state::SendToQueue, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::vector<::facebook::fboss::cfg::VlanPort>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::state::SendToQueue, + ::std::vector<::facebook::fboss::cfg::VlanPort>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::SendToQueue>, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::VlanPort>>, Parent> { public: using Self = Path< - ::facebook::fboss::state::SendToQueue, + ::std::vector<::facebook::fboss::cfg::VlanPort>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::SendToQueue>, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::VlanPort>>, Parent>; - using strings = ::facebook::fboss::state::switch_state_tags::strings; - template - using Child = Path< - ChildType, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ChildTC, - ChildTag, - Self - >; - using Children = fatal::tuple>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::facebook::fboss::cfg::QueueMatchAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, Child>>; - template - using NameToId = fatal::tuple>, -std::pair>>::template type_of; - - template - using TypeFor = typename Children::template type_of; + using Child = ChildThriftPath<::facebook::fboss::cfg::VlanPort, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; - - STRUCT_CHILD_GETTERS(action, 1); - STRUCT_CHILD_GETTERS(sendToCPU, 2); - - template - auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return action(); } - else if constexpr (__id == 2) { return sendToCPU(); } - } - template - auto operator()(const fatal::sequence&) { - return operator()(NameToId>()); - } + CONTAINER_CHILD_GETTERS(::std::int32_t); }; template -class ChildThriftPath<::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::int64_t, ::facebook::fboss::state::SystemPortFields>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::vector<::facebook::fboss::HostLaneSettings>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::int64_t, ::facebook::fboss::state::SystemPortFields>>, + ::std::vector<::facebook::fboss::HostLaneSettings>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::struct_t<::facebook::fboss::SystemPortThrift>>>, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::HostLaneSettings>>, Parent> { public: using Self = Path< - ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::int64_t, ::facebook::fboss::state::SystemPortFields>>, + ::std::vector<::facebook::fboss::HostLaneSettings>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::struct_t<::facebook::fboss::SystemPortThrift>>>, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::HostLaneSettings>>, Parent>; - using Child = ChildThriftPath<::std::map<::std::int64_t, ::facebook::fboss::state::SystemPortFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Child = ChildThriftPath<::facebook::fboss::HostLaneSettings, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; - CONTAINER_CHILD_GETTERS(::facebook::fboss::state::SwitchIdList); + CONTAINER_CHILD_GETTERS(::std::int32_t); }; template -class ChildThriftPath<::facebook::fboss::cfg::PortPause, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::phy::PmdState, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::PortPause, + ::facebook::fboss::phy::PmdState, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortPause>, + ::apache::thrift::type::struct_t<::facebook::fboss::phy::PmdState>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::PortPause, + ::facebook::fboss::phy::PmdState, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortPause>, + ::apache::thrift::type::struct_t<::facebook::fboss::phy::PmdState>, Parent>; - using strings = ::facebook::fboss::cfg::switch_config_tags::strings; + using strings = ::facebook::fboss::phy::phy_tags::strings; template using Child = Path< ChildType, @@ -11772,25 +12016,20 @@ class ChildThriftPath<::facebook::fboss::cfg::PortPause, ::facebook::fboss::fsdb ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, Child>, - std::pair, Child>>; + using Children = fatal::tuple, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::std::map<::std::int16_t, ::facebook::fboss::phy::LaneState>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; template - using NameToId = fatal::tuple>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(tx, 1); - STRUCT_CHILD_GETTERS(rx, 2); + STRUCT_CHILD_GETTERS(lanes, 1); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return tx(); } - else if constexpr (__id == 2) { return rx(); } + if constexpr (__id == 1) { return lanes(); } } template @@ -11801,21 +12040,21 @@ std::pair>>:: template -class ChildThriftPath<::facebook::fboss::TransceiverAttributes, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::network::thrift::BinaryAddress, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::TransceiverAttributes, + ::facebook::network::thrift::BinaryAddress, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::TransceiverAttributes>, + ::apache::thrift::type::struct_t<::facebook::network::thrift::BinaryAddress>, Parent> { public: using Self = Path< - ::facebook::fboss::TransceiverAttributes, + ::facebook::network::thrift::BinaryAddress, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::TransceiverAttributes>, + ::apache::thrift::type::struct_t<::facebook::network::thrift::BinaryAddress>, Parent>; - using strings = ::facebook::fboss::transceiver_validation_tags::strings; + using strings = ::facebook::network::thrift::Address_tags::strings; template using Child = Path< ChildType, @@ -11824,30 +12063,30 @@ class ChildThriftPath<::facebook::fboss::TransceiverAttributes, ::facebook::fbos ChildTag, Self >; - using Children = fatal::tuple>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; - using ChildrenById = fatal::tuple< std::pair, Child<::facebook::fboss::MediaInterfaceCode, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::MediaInterfaceCode>>>, - std::pair, ChildThriftPath<::std::vector<::facebook::fboss::FirmwarePair>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::vector<::facebook::fboss::cfg::PortProfileID>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using Children = fatal::tuple>>, +std::pair>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, Child<::folly::fbstring, ::apache::thrift::type_class::binary, ::apache::thrift::type::cpp_type<::folly::fbstring, ::apache::thrift::type::binary_t>>>, + std::pair, Child<::std::int64_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i64_t>>, + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>>; template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(mediaInterfaceCode, 1); - STRUCT_CHILD_GETTERS(supportedFirmwareVersions, 2); - STRUCT_CHILD_GETTERS(supportedPortProfiles, 3); + STRUCT_CHILD_GETTERS(addr, 1); + STRUCT_CHILD_GETTERS(port, 2); + STRUCT_CHILD_GETTERS(ifName, 3); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return mediaInterfaceCode(); } - else if constexpr (__id == 2) { return supportedFirmwareVersions(); } - else if constexpr (__id == 3) { return supportedPortProfiles(); } + if constexpr (__id == 1) { return addr(); } + else if constexpr (__id == 2) { return port(); } + else if constexpr (__id == 3) { return ifName(); } } template @@ -11858,19 +12097,19 @@ std::pair -class ChildThriftPath<::facebook::fboss::cfg::MatchToAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::UserDefinedTrapAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::MatchToAction, + ::facebook::fboss::cfg::UserDefinedTrapAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::MatchToAction>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::UserDefinedTrapAction>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::MatchToAction, + ::facebook::fboss::cfg::UserDefinedTrapAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::MatchToAction>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::UserDefinedTrapAction>, Parent>; using strings = ::facebook::fboss::cfg::switch_config_tags::strings; template @@ -11881,25 +12120,20 @@ class ChildThriftPath<::facebook::fboss::cfg::MatchToAction, ::facebook::fboss:: ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, ChildThriftPath<::facebook::fboss::cfg::MatchAction, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; + using Children = fatal::tuple>>; + using ChildrenById = fatal::tuple< std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>>; template - using NameToId = fatal::tuple>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(matcher, 1); - STRUCT_CHILD_GETTERS(action, 2); + STRUCT_CHILD_GETTERS(queueId, 1); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return matcher(); } - else if constexpr (__id == 2) { return action(); } + if constexpr (__id == 1) { return queueId(); } } template @@ -11908,44 +12142,23 @@ std::pair } }; -template -class ChildThriftPath<::std::map<::facebook::fboss::cfg::BurstMonitorWeight, ::std::int16_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::map<::facebook::fboss::cfg::BurstMonitorWeight, ::std::int16_t>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::integral>, - ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::cfg::BurstMonitorWeight>, ::apache::thrift::type::i16_t>, - Parent> { - public: - using Self = Path< - ::std::map<::facebook::fboss::cfg::BurstMonitorWeight, ::std::int16_t>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::integral>, - ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::cfg::BurstMonitorWeight>, ::apache::thrift::type::i16_t>, - Parent>; - using Child = Path<::std::int16_t, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::facebook::fboss::cfg::BurstMonitorWeight); -}; - template -class ChildThriftPath<::facebook::fboss::MediaInterfaceId, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::FirmwareInfo, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::MediaInterfaceId, + ::facebook::fboss::cfg::FirmwareInfo, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::MediaInterfaceId>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::FirmwareInfo>, Parent> { public: using Self = Path< - ::facebook::fboss::MediaInterfaceId, + ::facebook::fboss::cfg::FirmwareInfo, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::MediaInterfaceId>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::FirmwareInfo>, Parent>; - using strings = ::facebook::fboss::transceiver_tags::strings; + using strings = ::facebook::fboss::cfg::switch_config_tags::strings; template using Child = Path< ChildType, @@ -11954,30 +12167,35 @@ class ChildThriftPath<::facebook::fboss::MediaInterfaceId, ::facebook::fboss::fs ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>, -std::pair>>>; + using Children = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>>>; using ChildrenById = fatal::tuple< std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, ChildThriftPath<::facebook::fboss::MediaInterfaceUnion, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, Child<::facebook::fboss::MediaInterfaceCode, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::MediaInterfaceCode>>>>; + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, Child<::facebook::fboss::cfg::FirmwareLoadType, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::FirmwareLoadType>>>>; template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(lane, 1); - STRUCT_CHILD_GETTERS(media, 2); - STRUCT_CHILD_GETTERS(code, 3); + STRUCT_CHILD_GETTERS(coreToUse, 1); + STRUCT_CHILD_GETTERS(path, 2); + STRUCT_CHILD_GETTERS(logPath, 3); + STRUCT_CHILD_GETTERS(firmwareLoadType, 4); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return lane(); } - else if constexpr (__id == 2) { return media(); } - else if constexpr (__id == 3) { return code(); } + if constexpr (__id == 1) { return coreToUse(); } + else if constexpr (__id == 2) { return path(); } + else if constexpr (__id == 3) { return logPath(); } + else if constexpr (__id == 4) { return firmwareLoadType(); } } template @@ -11986,65 +12204,23 @@ std::pair>> } }; -template -class ChildThriftPath<::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::string, ::facebook::fboss::BufferPoolFields>>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::string, ::facebook::fboss::BufferPoolFields>>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::BufferPoolFields>>>, - Parent> { - public: - using Self = Path< - ::std::map<::facebook::fboss::state::SwitchIdList, ::std::map<::std::string, ::facebook::fboss::BufferPoolFields>>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::map<::apache::thrift::type_class::string, ::apache::thrift::type_class::structure>>, - ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::map<::apache::thrift::type::string_t, ::apache::thrift::type::struct_t<::facebook::fboss::BufferPoolFields>>>, - Parent>; - using Child = ChildThriftPath<::std::map<::std::string, ::facebook::fboss::BufferPoolFields>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::facebook::fboss::state::SwitchIdList); -}; - -template -class ChildThriftPath<::std::map<::std::int16_t, ::facebook::fboss::phy::LaneState>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::map<::std::int16_t, ::facebook::fboss::phy::LaneState>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::i16_t, ::apache::thrift::type::struct_t<::facebook::fboss::phy::LaneState>>, - Parent> { - public: - using Self = Path< - ::std::map<::std::int16_t, ::facebook::fboss::phy::LaneState>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::i16_t, ::apache::thrift::type::struct_t<::facebook::fboss::phy::LaneState>>, - Parent>; - using Child = ChildThriftPath<::facebook::fboss::phy::LaneState, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int16_t); -}; - template -class ChildThriftPath<::facebook::fboss::phy::DataPlanePhyChip, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::cfg::Vlan, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::phy::DataPlanePhyChip, + ::facebook::fboss::cfg::Vlan, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::phy::DataPlanePhyChip>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::Vlan>, Parent> { public: using Self = Path< - ::facebook::fboss::phy::DataPlanePhyChip, + ::facebook::fboss::cfg::Vlan, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::phy::DataPlanePhyChip>, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::Vlan>, Parent>; - using strings = ::facebook::fboss::phy::phy_tags::strings; + using strings = ::facebook::fboss::cfg::switch_config_tags::strings; template using Child = Path< ChildType, @@ -12054,29 +12230,64 @@ class ChildThriftPath<::facebook::fboss::phy::DataPlanePhyChip, ::facebook::fbos Self >; using Children = fatal::tuple>, -std::pair>>, -std::pair>>; +std::pair>, +std::pair>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>>; using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, Child<::facebook::fboss::phy::DataPlanePhyChipType, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::phy::DataPlanePhyChipType>>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>>; + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child>, + std::pair, Child>, + std::pair, ChildThriftPath<::std::vector<::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, ChildThriftPath<::std::map<::std::string, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::map<::std::string, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>>; template using NameToId = fatal::tuple>, -std::pair>, -std::pair>>::template type_of; +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; STRUCT_CHILD_GETTERS(name, 1); - STRUCT_CHILD_GETTERS(type, 2); - STRUCT_CHILD_GETTERS(physicalID, 3); + STRUCT_CHILD_GETTERS(id, 2); + STRUCT_CHILD_GETTERS(recordStats, 3); + STRUCT_CHILD_GETTERS(routable, 5); + STRUCT_CHILD_GETTERS(ipAddresses, 6); + STRUCT_CHILD_GETTERS(dhcpRelayAddressV4, 7); + STRUCT_CHILD_GETTERS(dhcpRelayAddressV6, 8); + STRUCT_CHILD_GETTERS(dhcpRelayOverridesV4, 9); + STRUCT_CHILD_GETTERS(dhcpRelayOverridesV6, 10); + STRUCT_CHILD_GETTERS(intfID, 11); template auto operator()(const std::integral_constant&) { if constexpr (__id == 1) { return name(); } - else if constexpr (__id == 2) { return type(); } - else if constexpr (__id == 3) { return physicalID(); } + else if constexpr (__id == 2) { return id(); } + else if constexpr (__id == 3) { return recordStats(); } + else if constexpr (__id == 5) { return routable(); } + else if constexpr (__id == 6) { return ipAddresses(); } + else if constexpr (__id == 7) { return dhcpRelayAddressV4(); } + else if constexpr (__id == 8) { return dhcpRelayAddressV6(); } + else if constexpr (__id == 9) { return dhcpRelayOverridesV4(); } + else if constexpr (__id == 10) { return dhcpRelayOverridesV6(); } + else if constexpr (__id == 11) { return intfID(); } } template @@ -12085,21 +12296,42 @@ std::pair +class ChildThriftPath<::std::vector<::std::int8_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::vector<::std::int8_t>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, + ::apache::thrift::type::list<::apache::thrift::type::byte_t>, + Parent> { + public: + using Self = Path< + ::std::vector<::std::int8_t>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::integral>, + ::apache::thrift::type::list<::apache::thrift::type::byte_t>, + Parent>; + using Child = Path<::std::int8_t, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::integral, ::apache::thrift::type::byte_t, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int32_t); +}; + template -class ChildThriftPath<::facebook::fboss::state::IpTunnelFields, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::facebook::fboss::state::MKASakKey, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::state::IpTunnelFields, + ::facebook::fboss::state::MKASakKey, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::IpTunnelFields>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::MKASakKey>, Parent> { public: using Self = Path< - ::facebook::fboss::state::IpTunnelFields, + ::facebook::fboss::state::MKASakKey, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::IpTunnelFields>, + ::apache::thrift::type::struct_t<::facebook::fboss::state::MKASakKey>, Parent>; using strings = ::facebook::fboss::state::switch_state_tags::strings; template @@ -12110,75 +12342,25 @@ class ChildThriftPath<::facebook::fboss::state::IpTunnelFields, ::facebook::fbos ChildTag, Self >; - using Children = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>>; + using Children = fatal::tuple>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::facebook::fboss::mka::MKASci, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>>; template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>>::template type_of; + using NameToId = fatal::tuple>, +std::pair>>::template type_of; template using TypeFor = typename Children::template type_of; using Self::Self; - STRUCT_CHILD_GETTERS(ipTunnelId, 1); - STRUCT_CHILD_GETTERS(underlayIntfId, 2); - STRUCT_CHILD_GETTERS(mode, 3); - STRUCT_CHILD_GETTERS(dstIp, 4); - STRUCT_CHILD_GETTERS(type, 5); - STRUCT_CHILD_GETTERS(tunnelTermType, 6); - STRUCT_CHILD_GETTERS(ttlMode, 7); - STRUCT_CHILD_GETTERS(dscpMode, 8); - STRUCT_CHILD_GETTERS(ecnMode, 9); - STRUCT_CHILD_GETTERS(srcIp, 10); - STRUCT_CHILD_GETTERS(dstIpMask, 11); - STRUCT_CHILD_GETTERS(srcIpMask, 12); + STRUCT_CHILD_GETTERS(sci, 1); + STRUCT_CHILD_GETTERS(associationNum, 2); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return ipTunnelId(); } - else if constexpr (__id == 2) { return underlayIntfId(); } - else if constexpr (__id == 3) { return mode(); } - else if constexpr (__id == 4) { return dstIp(); } - else if constexpr (__id == 5) { return type(); } - else if constexpr (__id == 6) { return tunnelTermType(); } - else if constexpr (__id == 7) { return ttlMode(); } - else if constexpr (__id == 8) { return dscpMode(); } - else if constexpr (__id == 9) { return ecnMode(); } - else if constexpr (__id == 10) { return srcIp(); } - else if constexpr (__id == 11) { return dstIpMask(); } - else if constexpr (__id == 12) { return srcIpMask(); } + if constexpr (__id == 1) { return sci(); } + else if constexpr (__id == 2) { return associationNum(); } } template @@ -12188,81 +12370,45 @@ std::pair -class ChildThriftPath<::std::map<::facebook::fboss::cfg::LLDPTag, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::vector<::facebook::fboss::cfg::Neighbor>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::map<::facebook::fboss::cfg::LLDPTag, ::std::string>, + ::std::vector<::facebook::fboss::cfg::Neighbor>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::string>, - ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::cfg::LLDPTag>, ::apache::thrift::type::string_t>, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::Neighbor>>, Parent> { public: using Self = Path< - ::std::map<::facebook::fboss::cfg::LLDPTag, ::std::string>, + ::std::vector<::facebook::fboss::cfg::Neighbor>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::enumeration, ::apache::thrift::type_class::string>, - ::apache::thrift::type::map<::apache::thrift::type::enum_t<::facebook::fboss::cfg::LLDPTag>, ::apache::thrift::type::string_t>, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::Neighbor>>, Parent>; - using Child = Path<::std::string, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t, Self>; + using Child = ChildThriftPath<::facebook::fboss::cfg::Neighbor, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; - CONTAINER_CHILD_GETTERS(::facebook::fboss::cfg::LLDPTag); + CONTAINER_CHILD_GETTERS(::std::int32_t); }; - template -class ChildThriftPath<::facebook::fboss::cfg::StaticRouteWithNextHops, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::map<::std::int64_t, ::facebook::fboss::switch_reachability::SwitchReachability>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::facebook::fboss::cfg::StaticRouteWithNextHops, + ::std::map<::std::int64_t, ::facebook::fboss::switch_reachability::SwitchReachability>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::StaticRouteWithNextHops>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::struct_t<::facebook::fboss::switch_reachability::SwitchReachability>>, Parent> { public: using Self = Path< - ::facebook::fboss::cfg::StaticRouteWithNextHops, + ::std::map<::std::int64_t, ::facebook::fboss::switch_reachability::SwitchReachability>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::StaticRouteWithNextHops>, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::struct_t<::facebook::fboss::switch_reachability::SwitchReachability>>, Parent>; - using strings = ::facebook::fboss::cfg::switch_config_tags::strings; - template - using Child = Path< - ChildType, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ChildTC, - ChildTag, - Self - >; - using Children = fatal::tuple>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; - using ChildrenById = fatal::tuple< std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, ChildThriftPath<::std::vector<::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>>; - template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>>::template type_of; - - template - using TypeFor = typename Children::template type_of; + using Child = ChildThriftPath<::facebook::fboss::switch_reachability::SwitchReachability, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; - - STRUCT_CHILD_GETTERS(routerID, 1); - STRUCT_CHILD_GETTERS(prefix, 2); - STRUCT_CHILD_GETTERS(nexthops, 3); - - template - auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return routerID(); } - else if constexpr (__id == 2) { return prefix(); } - else if constexpr (__id == 3) { return nexthops(); } - } - template - auto operator()(const fatal::sequence&) { - return operator()(NameToId>()); - } + CONTAINER_CHILD_GETTERS(::std::int64_t); }; @@ -13009,6 +13155,27 @@ std::pair } }; +template +class ChildThriftPath<::std::vector<::facebook::fboss::cfg::PortPgConfig>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::vector<::facebook::fboss::cfg::PortPgConfig>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortPgConfig>>, + Parent> { + public: + using Self = Path< + ::std::vector<::facebook::fboss::cfg::PortPgConfig>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortPgConfig>>, + Parent>; + using Child = ChildThriftPath<::facebook::fboss::cfg::PortPgConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int32_t); +}; + template class ChildThriftPath<::facebook::fboss::phy::RxSettings, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : @@ -13235,41 +13402,20 @@ std::pair - auto operator()(const fatal::sequence&) { - return operator()(NameToId>()); - } -}; - -template -class ChildThriftPath<::std::vector<::facebook::fboss::cfg::PortPgConfig>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::vector<::facebook::fboss::cfg::PortPgConfig>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortPgConfig>>, - Parent> { - public: - using Self = Path< - ::std::vector<::facebook::fboss::cfg::PortPgConfig>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortPgConfig>>, - Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::PortPgConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; + else if constexpr (__id == 33) { return cdrTdetFineStepOvVal(); } + else if constexpr (__id == 34) { return ldoBypass(); } + else if constexpr (__id == 35) { return ffeLengthBitmap(); } + else if constexpr (__id == 36) { return instgEnableScan(); } + else if constexpr (__id == 37) { return dcwEn(); } + else if constexpr (__id == 38) { return dcwStepCoarseOvVal(); } + else if constexpr (__id == 39) { return dcwStepFineOvVal(); } + else if constexpr (__id == 40) { return dcwOvEn(); } + } - CONTAINER_CHILD_GETTERS(::std::int32_t); + template + auto operator()(const fatal::sequence&) { + return operator()(NameToId>()); + } }; template @@ -13433,286 +13579,36 @@ class ChildThriftPath<::std::vector<::facebook::fboss::cfg::AclTable>, ::faceboo Parent> { public: using Self = Path< - ::std::vector<::facebook::fboss::cfg::AclTable>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::AclTable>>, - Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::AclTable, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int32_t); -}; - -template -class ChildThriftPath<::std::map<::std::int32_t, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::map<::std::int32_t, ::std::string>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::string>, - ::apache::thrift::type::map<::apache::thrift::type::i32_t, ::apache::thrift::type::string_t>, - Parent> { - public: - using Self = Path< - ::std::map<::std::int32_t, ::std::string>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::string>, - ::apache::thrift::type::map<::apache::thrift::type::i32_t, ::apache::thrift::type::string_t>, - Parent>; - using Child = Path<::std::string, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int32_t); -}; - -template -class ChildThriftPath<::std::vector<::facebook::fboss::cfg::Interface>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::vector<::facebook::fboss::cfg::Interface>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::Interface>>, - Parent> { - public: - using Self = Path< - ::std::vector<::facebook::fboss::cfg::Interface>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::Interface>>, - Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::Interface, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int32_t); -}; - -template -class ChildThriftPath<::std::vector<::facebook::fboss::state::RxSak>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::vector<::facebook::fboss::state::RxSak>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::state::RxSak>>, - Parent> { - public: - using Self = Path< - ::std::vector<::facebook::fboss::state::RxSak>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::state::RxSak>>, - Parent>; - using Child = ChildThriftPath<::facebook::fboss::state::RxSak, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int32_t); -}; - -template -class ChildThriftPath<::std::vector<::facebook::fboss::cfg::PortNeighbor>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::vector<::facebook::fboss::cfg::PortNeighbor>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortNeighbor>>, - Parent> { - public: - using Self = Path< - ::std::vector<::facebook::fboss::cfg::PortNeighbor>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortNeighbor>>, - Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::PortNeighbor, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int32_t); -}; - - -template -class ChildThriftPath<::facebook::fboss::cfg::SwitchSettings, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::facebook::fboss::cfg::SwitchSettings, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::SwitchSettings>, - Parent> { - public: - using Self = Path< - ::facebook::fboss::cfg::SwitchSettings, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::cfg::SwitchSettings>, - Parent>; - using strings = ::facebook::fboss::cfg::switch_config_tags::strings; - template - using Child = Path< - ChildType, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ChildTC, - ChildTag, - Self - >; - using Children = fatal::tuple>>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>, -std::pair>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, Child<::facebook::fboss::cfg::L2LearningMode, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::L2LearningMode>>>, - std::pair, Child>, - std::pair, Child>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, ChildThriftPath<::std::vector<::facebook::fboss::cfg::Neighbor>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::vector<::facebook::fboss::cfg::MacAndVlan>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, Child<::facebook::fboss::cfg::SwitchType, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::SwitchType>>>, - std::pair, Child<::std::int64_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i64_t>>, - std::pair, ChildThriftPath<::std::vector<::facebook::fboss::cfg::ExactMatchTableConfig>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::map<::std::int64_t, ::facebook::fboss::cfg::SwitchType>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, Child<::facebook::fboss::cfg::SwitchDrainState, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::SwitchDrainState>>>, - std::pair, ChildThriftPath<::std::map<::std::int64_t, ::facebook::fboss::cfg::SwitchInfo>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, ChildThriftPath<::std::vector<::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, ChildThriftPath<::std::vector<::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, Child>, - std::pair, Child<::std::int8_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::byte_t>>, - std::pair, Child<::std::int8_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::byte_t>>, - std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, - std::pair, ChildThriftPath<::facebook::fboss::cfg::SelfHealingEcmpLagConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>>; - template - using NameToId = fatal::tuple>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>, -std::pair>>::template type_of; - - template - using TypeFor = typename Children::template type_of; - using Self::Self; - - STRUCT_CHILD_GETTERS(l2LearningMode, 1); - STRUCT_CHILD_GETTERS(qcmEnable, 2); - STRUCT_CHILD_GETTERS(ptpTcEnable, 3); - STRUCT_CHILD_GETTERS(l2AgeTimerSeconds, 4); - STRUCT_CHILD_GETTERS(maxRouteCounterIDs, 5); - STRUCT_CHILD_GETTERS(blockNeighbors, 6); - STRUCT_CHILD_GETTERS(macAddrsToBlock, 7); - STRUCT_CHILD_GETTERS(switchType, 8); - STRUCT_CHILD_GETTERS(switchId, 9); - STRUCT_CHILD_GETTERS(exactMatchTableConfigs, 10); - STRUCT_CHILD_GETTERS(switchIdToSwitchType_DEPRECATED, 11); - STRUCT_CHILD_GETTERS(switchDrainState, 12); - STRUCT_CHILD_GETTERS(switchIdToSwitchInfo, 13); - STRUCT_CHILD_GETTERS(minLinksToRemainInVOQDomain, 14); - STRUCT_CHILD_GETTERS(minLinksToJoinVOQDomain, 15); - STRUCT_CHILD_GETTERS(vendorMacOuis, 16); - STRUCT_CHILD_GETTERS(metaMacOuis, 17); - STRUCT_CHILD_GETTERS(needL2EntryForNeighbor, 18); - STRUCT_CHILD_GETTERS(sramGlobalFreePercentXoffThreshold, 19); - STRUCT_CHILD_GETTERS(sramGlobalFreePercentXonThreshold, 20); - STRUCT_CHILD_GETTERS(linkFlowControlCreditThreshold, 21); - STRUCT_CHILD_GETTERS(voqDramBoundThreshold, 22); - STRUCT_CHILD_GETTERS(conditionalEntropyRehashPeriodUS, 23); - STRUCT_CHILD_GETTERS(firmwarePath, 24); - STRUCT_CHILD_GETTERS(selfHealingEcmpLagConfig, 25); - STRUCT_CHILD_GETTERS(localVoqMaxExpectedLatencyNsec, 26); - STRUCT_CHILD_GETTERS(remoteL1VoqMaxExpectedLatencyNsec, 27); - STRUCT_CHILD_GETTERS(remoteL2VoqMaxExpectedLatencyNsec, 28); - STRUCT_CHILD_GETTERS(voqOutOfBoundsLatencyNsec, 29); + ::std::vector<::facebook::fboss::cfg::AclTable>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::AclTable>>, + Parent>; + using Child = ChildThriftPath<::facebook::fboss::cfg::AclTable, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; - template - auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return l2LearningMode(); } - else if constexpr (__id == 2) { return qcmEnable(); } - else if constexpr (__id == 3) { return ptpTcEnable(); } - else if constexpr (__id == 4) { return l2AgeTimerSeconds(); } - else if constexpr (__id == 5) { return maxRouteCounterIDs(); } - else if constexpr (__id == 6) { return blockNeighbors(); } - else if constexpr (__id == 7) { return macAddrsToBlock(); } - else if constexpr (__id == 8) { return switchType(); } - else if constexpr (__id == 9) { return switchId(); } - else if constexpr (__id == 10) { return exactMatchTableConfigs(); } - else if constexpr (__id == 11) { return switchIdToSwitchType_DEPRECATED(); } - else if constexpr (__id == 12) { return switchDrainState(); } - else if constexpr (__id == 13) { return switchIdToSwitchInfo(); } - else if constexpr (__id == 14) { return minLinksToRemainInVOQDomain(); } - else if constexpr (__id == 15) { return minLinksToJoinVOQDomain(); } - else if constexpr (__id == 16) { return vendorMacOuis(); } - else if constexpr (__id == 17) { return metaMacOuis(); } - else if constexpr (__id == 18) { return needL2EntryForNeighbor(); } - else if constexpr (__id == 19) { return sramGlobalFreePercentXoffThreshold(); } - else if constexpr (__id == 20) { return sramGlobalFreePercentXonThreshold(); } - else if constexpr (__id == 21) { return linkFlowControlCreditThreshold(); } - else if constexpr (__id == 22) { return voqDramBoundThreshold(); } - else if constexpr (__id == 23) { return conditionalEntropyRehashPeriodUS(); } - else if constexpr (__id == 24) { return firmwarePath(); } - else if constexpr (__id == 25) { return selfHealingEcmpLagConfig(); } - else if constexpr (__id == 26) { return localVoqMaxExpectedLatencyNsec(); } - else if constexpr (__id == 27) { return remoteL1VoqMaxExpectedLatencyNsec(); } - else if constexpr (__id == 28) { return remoteL2VoqMaxExpectedLatencyNsec(); } - else if constexpr (__id == 29) { return voqOutOfBoundsLatencyNsec(); } - } + CONTAINER_CHILD_GETTERS(::std::int32_t); +}; - template - auto operator()(const fatal::sequence&) { - return operator()(NameToId>()); - } +template +class ChildThriftPath<::std::map<::std::int32_t, ::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::map<::std::int32_t, ::std::string>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::string>, + ::apache::thrift::type::map<::apache::thrift::type::i32_t, ::apache::thrift::type::string_t>, + Parent> { + public: + using Self = Path< + ::std::map<::std::int32_t, ::std::string>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::string>, + ::apache::thrift::type::map<::apache::thrift::type::i32_t, ::apache::thrift::type::string_t>, + Parent>; + using Child = Path<::std::string, ::facebook::fboss::fsdb::FsdbOperStateRoot, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int32_t); }; @@ -13938,31 +13834,260 @@ std::pair; using Self::Self; - STRUCT_CHILD_GETTERS(ipInIpTunnelId, 1); - STRUCT_CHILD_GETTERS(underlayIntfID, 2); - STRUCT_CHILD_GETTERS(dstIp, 3); - STRUCT_CHILD_GETTERS(srcIp, 4); - STRUCT_CHILD_GETTERS(dstIpMask, 5); - STRUCT_CHILD_GETTERS(srcIpMask, 6); - STRUCT_CHILD_GETTERS(ttlMode, 7); - STRUCT_CHILD_GETTERS(dscpMode, 8); - STRUCT_CHILD_GETTERS(ecnMode, 9); - STRUCT_CHILD_GETTERS(tunnelTermType, 10); - STRUCT_CHILD_GETTERS(tunnelType, 11); + STRUCT_CHILD_GETTERS(ipInIpTunnelId, 1); + STRUCT_CHILD_GETTERS(underlayIntfID, 2); + STRUCT_CHILD_GETTERS(dstIp, 3); + STRUCT_CHILD_GETTERS(srcIp, 4); + STRUCT_CHILD_GETTERS(dstIpMask, 5); + STRUCT_CHILD_GETTERS(srcIpMask, 6); + STRUCT_CHILD_GETTERS(ttlMode, 7); + STRUCT_CHILD_GETTERS(dscpMode, 8); + STRUCT_CHILD_GETTERS(ecnMode, 9); + STRUCT_CHILD_GETTERS(tunnelTermType, 10); + STRUCT_CHILD_GETTERS(tunnelType, 11); + + template + auto operator()(const std::integral_constant&) { + if constexpr (__id == 1) { return ipInIpTunnelId(); } + else if constexpr (__id == 2) { return underlayIntfID(); } + else if constexpr (__id == 3) { return dstIp(); } + else if constexpr (__id == 4) { return srcIp(); } + else if constexpr (__id == 5) { return dstIpMask(); } + else if constexpr (__id == 6) { return srcIpMask(); } + else if constexpr (__id == 7) { return ttlMode(); } + else if constexpr (__id == 8) { return dscpMode(); } + else if constexpr (__id == 9) { return ecnMode(); } + else if constexpr (__id == 10) { return tunnelTermType(); } + else if constexpr (__id == 11) { return tunnelType(); } + } + + template + auto operator()(const fatal::sequence&) { + return operator()(NameToId>()); + } +}; + +template +class ChildThriftPath<::std::map<::std::int64_t, ::facebook::fboss::cfg::DsfNode>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::map<::std::int64_t, ::facebook::fboss::cfg::DsfNode>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::struct_t<::facebook::fboss::cfg::DsfNode>>, + Parent> { + public: + using Self = Path< + ::std::map<::std::int64_t, ::facebook::fboss::cfg::DsfNode>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>, + ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::struct_t<::facebook::fboss::cfg::DsfNode>>, + Parent>; + using Child = ChildThriftPath<::facebook::fboss::cfg::DsfNode, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int64_t); +}; + +template +class ChildThriftPath<::std::vector<::facebook::fboss::cfg::PortNeighbor>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::vector<::facebook::fboss::cfg::PortNeighbor>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortNeighbor>>, + Parent> { + public: + using Self = Path< + ::std::vector<::facebook::fboss::cfg::PortNeighbor>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::PortNeighbor>>, + Parent>; + using Child = ChildThriftPath<::facebook::fboss::cfg::PortNeighbor, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int32_t); +}; + + +template +class ChildThriftPath<::facebook::fboss::cfg::SwitchSettings, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::facebook::fboss::cfg::SwitchSettings, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::SwitchSettings>, + Parent> { + public: + using Self = Path< + ::facebook::fboss::cfg::SwitchSettings, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::structure, + ::apache::thrift::type::struct_t<::facebook::fboss::cfg::SwitchSettings>, + Parent>; + using strings = ::facebook::fboss::cfg::switch_config_tags::strings; + template + using Child = Path< + ChildType, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ChildTC, + ChildTag, + Self + >; + using Children = fatal::tuple>>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>, +std::pair>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>>; + using ChildrenById = fatal::tuple< std::pair, Child<::facebook::fboss::cfg::L2LearningMode, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::L2LearningMode>>>, + std::pair, Child>, + std::pair, Child>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, ChildThriftPath<::std::vector<::facebook::fboss::cfg::Neighbor>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::vector<::facebook::fboss::cfg::MacAndVlan>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, Child<::facebook::fboss::cfg::SwitchType, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::SwitchType>>>, + std::pair, Child<::std::int64_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i64_t>>, + std::pair, ChildThriftPath<::std::vector<::facebook::fboss::cfg::ExactMatchTableConfig>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::map<::std::int64_t, ::facebook::fboss::cfg::SwitchType>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, Child<::facebook::fboss::cfg::SwitchDrainState, ::apache::thrift::type_class::enumeration, ::apache::thrift::type::enum_t<::facebook::fboss::cfg::SwitchDrainState>>>, + std::pair, ChildThriftPath<::std::map<::std::int64_t, ::facebook::fboss::cfg::SwitchInfo>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, ChildThriftPath<::std::vector<::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, ChildThriftPath<::std::vector<::std::string>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, Child>, + std::pair, Child<::std::int8_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::byte_t>>, + std::pair, Child<::std::int8_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::byte_t>>, + std::pair, Child<::std::int16_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i16_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::string, ::apache::thrift::type_class::string, ::apache::thrift::type::string_t>>, + std::pair, ChildThriftPath<::facebook::fboss::cfg::SelfHealingEcmpLagConfig, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>, + std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>>; + template + using NameToId = fatal::tuple>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>, +std::pair>>::template type_of; + + template + using TypeFor = typename Children::template type_of; + using Self::Self; + + STRUCT_CHILD_GETTERS(l2LearningMode, 1); + STRUCT_CHILD_GETTERS(qcmEnable, 2); + STRUCT_CHILD_GETTERS(ptpTcEnable, 3); + STRUCT_CHILD_GETTERS(l2AgeTimerSeconds, 4); + STRUCT_CHILD_GETTERS(maxRouteCounterIDs, 5); + STRUCT_CHILD_GETTERS(blockNeighbors, 6); + STRUCT_CHILD_GETTERS(macAddrsToBlock, 7); + STRUCT_CHILD_GETTERS(switchType, 8); + STRUCT_CHILD_GETTERS(switchId, 9); + STRUCT_CHILD_GETTERS(exactMatchTableConfigs, 10); + STRUCT_CHILD_GETTERS(switchIdToSwitchType_DEPRECATED, 11); + STRUCT_CHILD_GETTERS(switchDrainState, 12); + STRUCT_CHILD_GETTERS(switchIdToSwitchInfo, 13); + STRUCT_CHILD_GETTERS(minLinksToRemainInVOQDomain, 14); + STRUCT_CHILD_GETTERS(minLinksToJoinVOQDomain, 15); + STRUCT_CHILD_GETTERS(vendorMacOuis, 16); + STRUCT_CHILD_GETTERS(metaMacOuis, 17); + STRUCT_CHILD_GETTERS(needL2EntryForNeighbor, 18); + STRUCT_CHILD_GETTERS(sramGlobalFreePercentXoffThreshold, 19); + STRUCT_CHILD_GETTERS(sramGlobalFreePercentXonThreshold, 20); + STRUCT_CHILD_GETTERS(linkFlowControlCreditThreshold, 21); + STRUCT_CHILD_GETTERS(voqDramBoundThreshold, 22); + STRUCT_CHILD_GETTERS(conditionalEntropyRehashPeriodUS, 23); + STRUCT_CHILD_GETTERS(firmwarePath, 24); + STRUCT_CHILD_GETTERS(selfHealingEcmpLagConfig, 25); + STRUCT_CHILD_GETTERS(localVoqMaxExpectedLatencyNsec, 26); + STRUCT_CHILD_GETTERS(remoteL1VoqMaxExpectedLatencyNsec, 27); + STRUCT_CHILD_GETTERS(remoteL2VoqMaxExpectedLatencyNsec, 28); + STRUCT_CHILD_GETTERS(voqOutOfBoundsLatencyNsec, 29); template auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return ipInIpTunnelId(); } - else if constexpr (__id == 2) { return underlayIntfID(); } - else if constexpr (__id == 3) { return dstIp(); } - else if constexpr (__id == 4) { return srcIp(); } - else if constexpr (__id == 5) { return dstIpMask(); } - else if constexpr (__id == 6) { return srcIpMask(); } - else if constexpr (__id == 7) { return ttlMode(); } - else if constexpr (__id == 8) { return dscpMode(); } - else if constexpr (__id == 9) { return ecnMode(); } - else if constexpr (__id == 10) { return tunnelTermType(); } - else if constexpr (__id == 11) { return tunnelType(); } + if constexpr (__id == 1) { return l2LearningMode(); } + else if constexpr (__id == 2) { return qcmEnable(); } + else if constexpr (__id == 3) { return ptpTcEnable(); } + else if constexpr (__id == 4) { return l2AgeTimerSeconds(); } + else if constexpr (__id == 5) { return maxRouteCounterIDs(); } + else if constexpr (__id == 6) { return blockNeighbors(); } + else if constexpr (__id == 7) { return macAddrsToBlock(); } + else if constexpr (__id == 8) { return switchType(); } + else if constexpr (__id == 9) { return switchId(); } + else if constexpr (__id == 10) { return exactMatchTableConfigs(); } + else if constexpr (__id == 11) { return switchIdToSwitchType_DEPRECATED(); } + else if constexpr (__id == 12) { return switchDrainState(); } + else if constexpr (__id == 13) { return switchIdToSwitchInfo(); } + else if constexpr (__id == 14) { return minLinksToRemainInVOQDomain(); } + else if constexpr (__id == 15) { return minLinksToJoinVOQDomain(); } + else if constexpr (__id == 16) { return vendorMacOuis(); } + else if constexpr (__id == 17) { return metaMacOuis(); } + else if constexpr (__id == 18) { return needL2EntryForNeighbor(); } + else if constexpr (__id == 19) { return sramGlobalFreePercentXoffThreshold(); } + else if constexpr (__id == 20) { return sramGlobalFreePercentXonThreshold(); } + else if constexpr (__id == 21) { return linkFlowControlCreditThreshold(); } + else if constexpr (__id == 22) { return voqDramBoundThreshold(); } + else if constexpr (__id == 23) { return conditionalEntropyRehashPeriodUS(); } + else if constexpr (__id == 24) { return firmwarePath(); } + else if constexpr (__id == 25) { return selfHealingEcmpLagConfig(); } + else if constexpr (__id == 26) { return localVoqMaxExpectedLatencyNsec(); } + else if constexpr (__id == 27) { return remoteL1VoqMaxExpectedLatencyNsec(); } + else if constexpr (__id == 28) { return remoteL2VoqMaxExpectedLatencyNsec(); } + else if constexpr (__id == 29) { return voqOutOfBoundsLatencyNsec(); } } template @@ -13972,24 +14097,45 @@ std::pair -class ChildThriftPath<::std::map<::std::int64_t, ::facebook::fboss::cfg::DsfNode>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : +class ChildThriftPath<::std::vector<::facebook::fboss::state::RxSak>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< - ::std::map<::std::int64_t, ::facebook::fboss::cfg::DsfNode>, + ::std::vector<::facebook::fboss::state::RxSak>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::struct_t<::facebook::fboss::cfg::DsfNode>>, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::state::RxSak>>, Parent> { public: using Self = Path< - ::std::map<::std::int64_t, ::facebook::fboss::cfg::DsfNode>, + ::std::vector<::facebook::fboss::state::RxSak>, ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::struct_t<::facebook::fboss::cfg::DsfNode>>, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::state::RxSak>>, Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::DsfNode, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Child = ChildThriftPath<::facebook::fboss::state::RxSak, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; using Self::Self; - CONTAINER_CHILD_GETTERS(::std::int64_t); + CONTAINER_CHILD_GETTERS(::std::int32_t); +}; + +template +class ChildThriftPath<::std::vector<::facebook::fboss::cfg::Interface>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::vector<::facebook::fboss::cfg::Interface>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::Interface>>, + Parent> { + public: + using Self = Path< + ::std::vector<::facebook::fboss::cfg::Interface>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::Interface>>, + Parent>; + using Child = ChildThriftPath<::facebook::fboss::cfg::Interface, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int32_t); }; @@ -16249,27 +16395,6 @@ class ChildThriftPath<::std::vector<::facebook::fboss::PortQueueFields>, ::faceb CONTAINER_CHILD_GETTERS(::std::int32_t); }; -template -class ChildThriftPath<::std::vector<::facebook::fboss::cfg::AclEntry>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::vector<::facebook::fboss::cfg::AclEntry>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::AclEntry>>, - Parent> { - public: - using Self = Path< - ::std::vector<::facebook::fboss::cfg::AclEntry>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::AclEntry>>, - Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::AclEntry, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int32_t); -}; - template class ChildThriftPath<::facebook::fboss::cfg::Interface, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : @@ -16397,6 +16522,27 @@ std::pair +class ChildThriftPath<::std::vector<::facebook::fboss::cfg::AclEntry>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : + public Path< + ::std::vector<::facebook::fboss::cfg::AclEntry>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::AclEntry>>, + Parent> { + public: + using Self = Path< + ::std::vector<::facebook::fboss::cfg::AclEntry>, + ::facebook::fboss::fsdb::FsdbOperStateRoot, + ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, + ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::AclEntry>>, + Parent>; + using Child = ChildThriftPath<::facebook::fboss::cfg::AclEntry, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; + using Self::Self; + + CONTAINER_CHILD_GETTERS(::std::int32_t); +}; + template class ChildThriftPath<::std::map<::std::int16_t, ::std::int64_t>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : public Path< @@ -18257,100 +18403,6 @@ class ChildThriftPath<::facebook::fboss::state::VlanInfo, ::facebook::fboss::fsd } }; -template -class ChildThriftPath<::std::map<::std::int64_t, ::facebook::fboss::switch_reachability::SwitchReachability>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::map<::std::int64_t, ::facebook::fboss::switch_reachability::SwitchReachability>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::struct_t<::facebook::fboss::switch_reachability::SwitchReachability>>, - Parent> { - public: - using Self = Path< - ::std::map<::std::int64_t, ::facebook::fboss::switch_reachability::SwitchReachability>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::map<::apache::thrift::type_class::integral, ::apache::thrift::type_class::structure>, - ::apache::thrift::type::map<::apache::thrift::type::i64_t, ::apache::thrift::type::struct_t<::facebook::fboss::switch_reachability::SwitchReachability>>, - Parent>; - using Child = ChildThriftPath<::facebook::fboss::switch_reachability::SwitchReachability, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int64_t); -}; - -template -class ChildThriftPath<::std::vector<::facebook::fboss::cfg::Neighbor>, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::std::vector<::facebook::fboss::cfg::Neighbor>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::Neighbor>>, - Parent> { - public: - using Self = Path< - ::std::vector<::facebook::fboss::cfg::Neighbor>, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::list<::apache::thrift::type_class::structure>, - ::apache::thrift::type::list<::apache::thrift::type::struct_t<::facebook::fboss::cfg::Neighbor>>, - Parent>; - using Child = ChildThriftPath<::facebook::fboss::cfg::Neighbor, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>; - using Self::Self; - - CONTAINER_CHILD_GETTERS(::std::int32_t); -}; - - -template -class ChildThriftPath<::facebook::fboss::state::MKASakKey, ::facebook::fboss::fsdb::FsdbOperStateRoot, Parent> : - public Path< - ::facebook::fboss::state::MKASakKey, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::MKASakKey>, - Parent> { - public: - using Self = Path< - ::facebook::fboss::state::MKASakKey, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ::apache::thrift::type_class::structure, - ::apache::thrift::type::struct_t<::facebook::fboss::state::MKASakKey>, - Parent>; - using strings = ::facebook::fboss::state::switch_state_tags::strings; - template - using Child = Path< - ChildType, - ::facebook::fboss::fsdb::FsdbOperStateRoot, - ChildTC, - ChildTag, - Self - >; - using Children = fatal::tuple>, -std::pair>>; - using ChildrenById = fatal::tuple< std::pair, ChildThriftPath<::facebook::fboss::mka::MKASci, ::facebook::fboss::fsdb::FsdbOperStateRoot, Self>>, - std::pair, Child<::std::int32_t, ::apache::thrift::type_class::integral, ::apache::thrift::type::i32_t>>>; - template - using NameToId = fatal::tuple>, -std::pair>>::template type_of; - - template - using TypeFor = typename Children::template type_of; - using Self::Self; - - STRUCT_CHILD_GETTERS(sci, 1); - STRUCT_CHILD_GETTERS(associationNum, 2); - - template - auto operator()(const std::integral_constant&) { - if constexpr (__id == 1) { return sci(); } - else if constexpr (__id == 2) { return associationNum(); } - } - - template - auto operator()(const fatal::sequence&) { - return operator()(NameToId>()); - } -}; - template<>