diff --git a/tests/config-parser/property-database-base.c b/tests/config-parser/property-database-base.c index 1d19ab5..f21734b 100644 --- a/tests/config-parser/property-database-base.c +++ b/tests/config-parser/property-database-base.c @@ -12,7 +12,7 @@ */ static const struct property_metadata base_property_database[] = { - {"config-raw[]", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, + {"config-raw[][]", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"ethernet[].acl[].acl-inf-counters-egress", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"ethernet[].acl[].acl-inf-counters-ingress", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"ethernet[].acl[].acl-inf-policy-egress", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, @@ -26,13 +26,13 @@ static const struct property_metadata base_property_database[] = { {"ethernet[].duplex", PROP_CONFIGURED, "proto.c", "cfg_ethernet_parse", 1134, "Parsed in cfg_ethernet_parse()"}, {"ethernet[].edge-port", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"ethernet[].enabled", PROP_CONFIGURED, "proto.c", "cfg_ethernet_parse", 1133, "Parsed in cfg_ethernet_parse()"}, - {"ethernet[].ieee8021x.authentication-mode", PROP_CONFIGURED, "proto.c", "script_reply", 918, "Parsed in script_reply()"}, - {"ethernet[].ieee8021x.guest-vlan", PROP_CONFIGURED, "proto.c", "script_reply", 920, "Parsed in script_reply()"}, - {"ethernet[].ieee8021x.host-mode", PROP_CONFIGURED, "proto.c", "script_reply", 919, "Parsed in script_reply()"}, - {"ethernet[].ieee8021x.is-authenticator", PROP_CONFIGURED, "proto.c", "script_reply", 917, "Parsed in script_reply()"}, + {"ethernet[].ieee8021x.authentication-mode", PROP_CONFIGURED, "proto.c", "cfg_ethernet_ieee8021x_parse", 918, "Parsed in cfg_ethernet_ieee8021x_parse()"}, + {"ethernet[].ieee8021x.guest-vlan", PROP_CONFIGURED, "proto.c", "cfg_ethernet_ieee8021x_parse", 920, "Parsed in cfg_ethernet_ieee8021x_parse()"}, + {"ethernet[].ieee8021x.host-mode", PROP_CONFIGURED, "proto.c", "cfg_ethernet_ieee8021x_parse", 919, "Parsed in cfg_ethernet_ieee8021x_parse()"}, + {"ethernet[].ieee8021x.is-authenticator", PROP_CONFIGURED, "proto.c", "cfg_ethernet_ieee8021x_parse", 917, "Parsed in cfg_ethernet_ieee8021x_parse()"}, {"ethernet[].ieee8021x.mac-address-bypass", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"ethernet[].ieee8021x.mac-address-bypass-timeout-minutes", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"ethernet[].ieee8021x.unauthenticated-vlan", PROP_CONFIGURED, "proto.c", "script_reply", 921, "Parsed in script_reply()"}, + {"ethernet[].ieee8021x.unauthenticated-vlan", PROP_CONFIGURED, "proto.c", "cfg_ethernet_ieee8021x_parse", 921, "Parsed in cfg_ethernet_ieee8021x_parse()"}, {"ethernet[].ip-arp-inspect-port.rate-limit-pps", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"ethernet[].ip-arp-inspect-port.trusted", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"ethernet[].ip-source-guard-port.max-binding", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, @@ -74,15 +74,15 @@ static const struct property_metadata base_property_database[] = { {"ethernet[].lldp-interface-config.lldp-med-tlv-network-policy", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"ethernet[].lldp-interface-config.lldp-notification", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"ethernet[].name", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"ethernet[].poe.admin-mode", PROP_CONFIGURED, "proto.c", "script_reply", 863, "Parsed in script_reply()"}, - {"ethernet[].poe.detection", PROP_CONFIGURED, "proto.c", "script_reply", 865, "Parsed in script_reply()"}, - {"ethernet[].poe.do-reset", PROP_CONFIGURED, "proto.c", "script_reply", 864, "Parsed in script_reply()"}, - {"ethernet[].poe.power-limit", PROP_CONFIGURED, "proto.c", "script_reply", 866, "Parsed in script_reply()"}, - {"ethernet[].poe.priority", PROP_CONFIGURED, "proto.c", "script_reply", 867, "Parsed in script_reply()"}, + {"ethernet[].poe.admin-mode", PROP_CONFIGURED, "proto.c", "cfg_ethernet_poe_parse", 863, "Parsed in cfg_ethernet_poe_parse()"}, + {"ethernet[].poe.detection", PROP_CONFIGURED, "proto.c", "cfg_ethernet_poe_parse", 865, "Parsed in cfg_ethernet_poe_parse()"}, + {"ethernet[].poe.do-reset", PROP_CONFIGURED, "proto.c", "cfg_ethernet_poe_parse", 864, "Parsed in cfg_ethernet_poe_parse()"}, + {"ethernet[].poe.power-limit", PROP_CONFIGURED, "proto.c", "cfg_ethernet_poe_parse", 866, "Parsed in cfg_ethernet_poe_parse()"}, + {"ethernet[].poe.priority", PROP_CONFIGURED, "proto.c", "cfg_ethernet_poe_parse", 867, "Parsed in cfg_ethernet_poe_parse()"}, {"ethernet[].rate-limit-port.egress-kbps", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"ethernet[].rate-limit-port.ingress-kbps", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"ethernet[].select-ports", PROP_CONFIGURED, "proto.c", "cfg_ethernet_parse", 1132, "Parsed in cfg_ethernet_parse()"}, - {"ethernet[].services", PROP_CONFIGURED, "proto.c", "cfg_unit_parse", 2106, "Parsed in cfg_unit_parse()"}, + {"ethernet[].select-ports[]", PROP_CONFIGURED, "proto.c", "cfg_ethernet_parse", 1132, "Parsed in cfg_ethernet_parse()"}, + {"ethernet[].services[]", PROP_CONFIGURED, "proto.c", "cfg_unit_parse", 2106, "Parsed in cfg_unit_parse()"}, {"ethernet[].speed", PROP_CONFIGURED, "proto.c", "cfg_ethernet_parse", 1135, "Parsed in cfg_ethernet_parse()"}, {"ethernet[].storm-control.broadcast-pps", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"ethernet[].storm-control.multicast-pps", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, @@ -92,10 +92,10 @@ static const struct property_metadata base_property_database[] = { {"ethernet[].voice-vlan-intf-config.voice-vlan-intf-mode", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"ethernet[].voice-vlan-intf-config.voice-vlan-intf-priority", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"ethernet[].voice-vlan-intf-config.voice-vlan-intf-security", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"globals.ipv4-blackhole[].prefix", PROP_CONFIGURED, "proto.c", "__cfg_interface_parse_ipv4", 1222, "Parsed in __cfg_interface_parse_ipv4()"}, + {"globals.ipv4-blackhole[].prefix", PROP_CONFIGURED, "proto.c", "cfg_ethernet_parse", 1222, "Parsed in cfg_ethernet_parse()"}, {"globals.ipv4-blackhole[].vrf", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"globals.ipv4-network", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"globals.ipv4-unreachable[].prefix", PROP_CONFIGURED, "proto.c", "__cfg_interface_parse_ipv4", 1222, "Parsed in __cfg_interface_parse_ipv4()"}, + {"globals.ipv4-unreachable[].prefix", PROP_CONFIGURED, "proto.c", "cfg_ethernet_parse", 1222, "Parsed in cfg_ethernet_parse()"}, {"globals.ipv4-unreachable[].vrf", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"globals.ipv6-network", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].bridge.isolate-ports", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, @@ -104,39 +104,39 @@ static const struct property_metadata base_property_database[] = { {"interfaces[].ethernet[].isolate", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ethernet[].learning", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ethernet[].macaddr", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"interfaces[].ethernet[].multicast", PROP_CONFIGURED, "proto.c", "cfg_vlan_interface_parse", 1486, "Parsed in cfg_vlan_interface_parse()"}, + {"interfaces[].ethernet[].multicast", PROP_CONFIGURED, "proto.c", "__cfg_vlan_interface_parse_multicast", 1486, "Parsed in __cfg_vlan_interface_parse_multicast()"}, {"interfaces[].ethernet[].reverse-path-filter", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"interfaces[].ethernet[].select-ports", PROP_CONFIGURED, "proto.c", "cfg_ethernet_parse", 1132, "Parsed in cfg_ethernet_parse()"}, - {"interfaces[].ethernet[].vlan-tag", PROP_CONFIGURED, "proto.c", "cfg_vlan_interface_parse", 1442, "Parsed in cfg_vlan_interface_parse()"}, + {"interfaces[].ethernet[].select-ports[]", PROP_CONFIGURED, "proto.c", "cfg_ethernet_parse", 1132, "Parsed in cfg_ethernet_parse()"}, + {"interfaces[].ethernet[].vlan-tag", PROP_CONFIGURED, "proto.c", "__cfg_vlan_interface_parse_multicast", 1442, "Parsed in __cfg_vlan_interface_parse_multicast()"}, {"interfaces[].ipv4.addressing", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"interfaces[].ipv4.broadcast[].prefix", PROP_CONFIGURED, "proto.c", "__cfg_interface_parse_ipv4", 1222, "Parsed in __cfg_interface_parse_ipv4()"}, + {"interfaces[].ipv4.broadcast[].prefix", PROP_CONFIGURED, "proto.c", "cfg_ethernet_parse", 1222, "Parsed in cfg_ethernet_parse()"}, {"interfaces[].ipv4.broadcast[].vrf", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ipv4.dhcp-leases[].lease-time", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ipv4.dhcp-leases[].macaddr", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ipv4.dhcp-leases[].publish-hostname", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ipv4.dhcp-leases[].static-lease-offset", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ipv4.dhcp-snoop-vlan-enable", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"interfaces[].ipv4.dhcp.circuit-id-format", PROP_CONFIGURED, "proto.c", "cfg_vlan_interface_parse", 1500, "Parsed in cfg_vlan_interface_parse()"}, + {"interfaces[].ipv4.dhcp.circuit-id-format", PROP_CONFIGURED, "proto.c", "__cfg_vlan_interface_parse_multicast", 1500, "Parsed in __cfg_vlan_interface_parse_multicast()"}, {"interfaces[].ipv4.dhcp.lease-count", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ipv4.dhcp.lease-first", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ipv4.dhcp.lease-time", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"interfaces[].ipv4.dhcp.relay-server", PROP_CONFIGURED, "proto.c", "cfg_vlan_interface_parse", 1499, "Parsed in cfg_vlan_interface_parse()"}, + {"interfaces[].ipv4.dhcp.relay-server", PROP_CONFIGURED, "proto.c", "__cfg_vlan_interface_parse_multicast", 1499, "Parsed in __cfg_vlan_interface_parse_multicast()"}, {"interfaces[].ipv4.gateway[].metric", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"interfaces[].ipv4.gateway[].nexthop", PROP_CONFIGURED, "proto.c", "cfg_process_prefixes", 1927, "Parsed in cfg_process_prefixes()"}, - {"interfaces[].ipv4.gateway[].prefix", PROP_CONFIGURED, "proto.c", "__cfg_interface_parse_ipv4", 1222, "Parsed in __cfg_interface_parse_ipv4()"}, + {"interfaces[].ipv4.gateway[].nexthop", PROP_CONFIGURED, "proto.c", "route_prefix_obj2node_key", 1927, "Parsed in route_prefix_obj2node_key()"}, + {"interfaces[].ipv4.gateway[].prefix", PROP_CONFIGURED, "proto.c", "cfg_ethernet_parse", 1222, "Parsed in cfg_ethernet_parse()"}, {"interfaces[].ipv4.gateway[].vrf", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ipv4.ip-arp-inspect-vlan.vlan-acl-nodhcp-bindings", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ipv4.ip-arp-inspect-vlan.vlan-acl-rule", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ipv4.ip-arp-inspect-vlan.vlan-enable", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"interfaces[].ipv4.multicast.igmp.fast-leave-enable", PROP_CONFIGURED, "proto.c", "cfg_port_interface_parse", 1330, "Parsed in cfg_port_interface_parse()"}, - {"interfaces[].ipv4.multicast.igmp.last-member-query-interval", PROP_CONFIGURED, "proto.c", "cfg_port_interface_parse", 1334, "Parsed in cfg_port_interface_parse()"}, - {"interfaces[].ipv4.multicast.igmp.max-response-time", PROP_CONFIGURED, "proto.c", "cfg_port_interface_parse", 1336, "Parsed in cfg_port_interface_parse()"}, - {"interfaces[].ipv4.multicast.igmp.querier-enable", PROP_CONFIGURED, "proto.c", "cfg_port_interface_parse", 1328, "Parsed in cfg_port_interface_parse()"}, - {"interfaces[].ipv4.multicast.igmp.query-interval", PROP_CONFIGURED, "proto.c", "cfg_port_interface_parse", 1332, "Parsed in cfg_port_interface_parse()"}, - {"interfaces[].ipv4.multicast.igmp.snooping-enable", PROP_CONFIGURED, "proto.c", "cfg_port_interface_parse", 1326, "Parsed in cfg_port_interface_parse()"}, - {"interfaces[].ipv4.multicast.igmp.static-mcast-groups[].address", PROP_CONFIGURED, "proto.c", "cfg_port_interface_parse", 1351, "Parsed in cfg_port_interface_parse()"}, - {"interfaces[].ipv4.multicast.igmp.static-mcast-groups[].egress-ports", PROP_CONFIGURED, "proto.c", "cfg_port_interface_parse", 1352, "Parsed in cfg_port_interface_parse()"}, - {"interfaces[].ipv4.multicast.igmp.version", PROP_CONFIGURED, "proto.c", "cfg_port_interface_parse", 1310, "Parsed in cfg_port_interface_parse()"}, + {"interfaces[].ipv4.multicast.igmp.fast-leave-enable", PROP_CONFIGURED, "proto.c", "__cfg_vlan_interface_parse_multicast", 1330, "Parsed in __cfg_vlan_interface_parse_multicast()"}, + {"interfaces[].ipv4.multicast.igmp.last-member-query-interval", PROP_CONFIGURED, "proto.c", "__cfg_vlan_interface_parse_multicast", 1334, "Parsed in __cfg_vlan_interface_parse_multicast()"}, + {"interfaces[].ipv4.multicast.igmp.max-response-time", PROP_CONFIGURED, "proto.c", "__cfg_vlan_interface_parse_multicast", 1336, "Parsed in __cfg_vlan_interface_parse_multicast()"}, + {"interfaces[].ipv4.multicast.igmp.querier-enable", PROP_CONFIGURED, "proto.c", "__cfg_vlan_interface_parse_multicast", 1328, "Parsed in __cfg_vlan_interface_parse_multicast()"}, + {"interfaces[].ipv4.multicast.igmp.query-interval", PROP_CONFIGURED, "proto.c", "__cfg_vlan_interface_parse_multicast", 1332, "Parsed in __cfg_vlan_interface_parse_multicast()"}, + {"interfaces[].ipv4.multicast.igmp.snooping-enable", PROP_CONFIGURED, "proto.c", "__cfg_vlan_interface_parse_multicast", 1326, "Parsed in __cfg_vlan_interface_parse_multicast()"}, + {"interfaces[].ipv4.multicast.igmp.static-mcast-groups[].address", PROP_CONFIGURED, "proto.c", "__cfg_vlan_interface_parse_multicast", 1351, "Parsed in __cfg_vlan_interface_parse_multicast()"}, + {"interfaces[].ipv4.multicast.igmp.static-mcast-groups[].egress-ports[]", PROP_CONFIGURED, "proto.c", "__cfg_vlan_interface_parse_multicast", 1352, "Parsed in __cfg_vlan_interface_parse_multicast()"}, + {"interfaces[].ipv4.multicast.igmp.version", PROP_CONFIGURED, "proto.c", "__cfg_vlan_interface_parse_multicast", 1310, "Parsed in __cfg_vlan_interface_parse_multicast()"}, {"interfaces[].ipv4.multicast.mvr.mvr-intf-assoc-domain", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ipv4.multicast.mvr.mvr-intf-immed-leave", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ipv4.multicast.mvr.mvr-intf-mvr-role", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, @@ -144,52 +144,52 @@ static const struct property_metadata base_property_database[] = { {"interfaces[].ipv4.port-forward[].external-port", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ipv4.port-forward[].internal-address", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ipv4.port-forward[].internal-port", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"interfaces[].ipv4.port-forward[].protocol", PROP_CONFIGURED, "proto.c", "cfg_switch_parse", 1787, "Parsed in cfg_switch_parse()"}, + {"interfaces[].ipv4.port-forward[].protocol", PROP_CONFIGURED, "proto.c", "cfg_services_parse", 1787, "Parsed in cfg_services_parse()"}, {"interfaces[].ipv4.send-hostname", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"interfaces[].ipv4.subnet[].prefix", PROP_CONFIGURED, "proto.c", "__cfg_interface_parse_ipv4", 1222, "Parsed in __cfg_interface_parse_ipv4()"}, + {"interfaces[].ipv4.subnet[].prefix", PROP_CONFIGURED, "proto.c", "cfg_ethernet_parse", 1222, "Parsed in cfg_ethernet_parse()"}, {"interfaces[].ipv4.subnet[].vrf", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"interfaces[].ipv4.use-dns", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, + {"interfaces[].ipv4.use-dns[]", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ipv6.addressing", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"interfaces[].ipv6.dhcpv6.announce-dns", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, + {"interfaces[].ipv6.dhcpv6.announce-dns[]", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ipv6.dhcpv6.filter-prefix", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ipv6.dhcpv6.mode", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"interfaces[].ipv6.gateway", PROP_CONFIGURED, "proto.c", "cfg_process_prefixes", 1915, "Parsed in cfg_process_prefixes()"}, + {"interfaces[].ipv6.gateway", PROP_CONFIGURED, "proto.c", "route_prefix_obj2node_key", 1915, "Parsed in route_prefix_obj2node_key()"}, {"interfaces[].ipv6.port-forward[].external-port", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ipv6.port-forward[].internal-address", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].ipv6.port-forward[].internal-port", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"interfaces[].ipv6.port-forward[].protocol", PROP_CONFIGURED, "proto.c", "cfg_switch_parse", 1787, "Parsed in cfg_switch_parse()"}, + {"interfaces[].ipv6.port-forward[].protocol", PROP_CONFIGURED, "proto.c", "cfg_services_parse", 1787, "Parsed in cfg_services_parse()"}, {"interfaces[].ipv6.prefix-size", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"interfaces[].ipv6.subnet", PROP_CONFIGURED, "proto.c", "cfg_port_interface_parse", 1275, "Parsed in cfg_port_interface_parse()"}, + {"interfaces[].ipv6.subnet", PROP_CONFIGURED, "proto.c", "cfg_ethernet_parse", 1275, "Parsed in cfg_ethernet_parse()"}, {"interfaces[].ipv6.traffic-allow[].destination-address", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"interfaces[].ipv6.traffic-allow[].destination-ports", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"interfaces[].ipv6.traffic-allow[].protocol", PROP_CONFIGURED, "proto.c", "cfg_switch_parse", 1787, "Parsed in cfg_switch_parse()"}, + {"interfaces[].ipv6.traffic-allow[].destination-ports[]", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, + {"interfaces[].ipv6.traffic-allow[].protocol", PROP_CONFIGURED, "proto.c", "cfg_services_parse", 1787, "Parsed in cfg_services_parse()"}, {"interfaces[].ipv6.traffic-allow[].source-address", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"interfaces[].ipv6.traffic-allow[].source-ports", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, + {"interfaces[].ipv6.traffic-allow[].source-ports[]", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].isolate-hosts", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].metric", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].mtu", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].name", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].role", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"interfaces[].services", PROP_CONFIGURED, "proto.c", "cfg_unit_parse", 2106, "Parsed in cfg_unit_parse()"}, + {"interfaces[].services[]", PROP_CONFIGURED, "proto.c", "cfg_unit_parse", 2106, "Parsed in cfg_unit_parse()"}, {"interfaces[].vlan-awareness.first", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].vlan-awareness.last", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"interfaces[].vlan.id", PROP_CONFIGURED, "proto.c", "script_reply", 1056, "Parsed in script_reply()"}, - {"interfaces[].vlan.proto", PROP_CONFIGURED, "proto.c", "cfg_service_log_parse", 1546, "Parsed in cfg_service_log_parse()"}, + {"interfaces[].vlan.id", PROP_CONFIGURED, "proto.c", "cfg_ethernet_port_isolation_interface_parse", 1056, "Parsed in cfg_ethernet_port_isolation_interface_parse()"}, + {"interfaces[].vlan.proto", PROP_CONFIGURED, "proto.c", "cfg_interfaces_parse", 1546, "Parsed in cfg_interfaces_parse()"}, {"interfaces[].vlan.range-end", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].vlan.range-start", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"interfaces[].vlan.stp-instance", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"metrics.dhcp-snooping.filters", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, + {"metrics.dhcp-snooping.filters[]", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"metrics.health.dhcp-local", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"metrics.health.dhcp-remote", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"metrics.health.dns-local", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"metrics.health.dns-remote", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"metrics.health.interval", PROP_CONFIGURED, "proto.c", "cfg_metrics_parse", 1989, "Parsed in cfg_metrics_parse()"}, - {"metrics.realtime.types", PROP_CONFIGURED, "proto.c", "cfg_metrics_parse", 1990, "Parsed in cfg_metrics_parse()"}, - {"metrics.statistics.interval", PROP_CONFIGURED, "proto.c", "cfg_metrics_parse", 1989, "Parsed in cfg_metrics_parse()"}, - {"metrics.statistics.types", PROP_CONFIGURED, "proto.c", "cfg_metrics_parse", 1990, "Parsed in cfg_metrics_parse()"}, - {"metrics.statistics.wired-clients-max-num", PROP_CONFIGURED, "proto.c", "cfg_metrics_parse", 1991, "Parsed in cfg_metrics_parse()"}, - {"metrics.telemetry.interval", PROP_CONFIGURED, "proto.c", "cfg_metrics_parse", 1989, "Parsed in cfg_metrics_parse()"}, - {"metrics.telemetry.types", PROP_CONFIGURED, "proto.c", "cfg_metrics_parse", 1990, "Parsed in cfg_metrics_parse()"}, + {"metrics.health.interval", PROP_CONFIGURED, "proto.c", "route_prefix_obj2node_key", 1989, "Parsed in route_prefix_obj2node_key()"}, + {"metrics.realtime.types[]", PROP_CONFIGURED, "proto.c", "route_prefix_obj2node_key", 1990, "Parsed in route_prefix_obj2node_key()"}, + {"metrics.statistics.interval", PROP_CONFIGURED, "proto.c", "route_prefix_obj2node_key", 1989, "Parsed in route_prefix_obj2node_key()"}, + {"metrics.statistics.types[]", PROP_CONFIGURED, "proto.c", "route_prefix_obj2node_key", 1990, "Parsed in route_prefix_obj2node_key()"}, + {"metrics.statistics.wired-clients-max-num", PROP_CONFIGURED, "proto.c", "route_prefix_obj2node_key", 1991, "Parsed in route_prefix_obj2node_key()"}, + {"metrics.telemetry.interval", PROP_CONFIGURED, "proto.c", "route_prefix_obj2node_key", 1989, "Parsed in route_prefix_obj2node_key()"}, + {"metrics.telemetry.types[]", PROP_CONFIGURED, "proto.c", "route_prefix_obj2node_key", 1990, "Parsed in route_prefix_obj2node_key()"}, {"public_ip_lookup", PROP_CONFIGURED, "proto.c", "cfg_unit_parse", 2226, "Parsed in cfg_unit_parse()"}, {"services.data-plane.ingress-filters[].name", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"services.data-plane.ingress-filters[].program", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, @@ -202,19 +202,19 @@ static const struct property_metadata base_property_database[] = { {"services.igmp.enable", PROP_CONFIGURED, "proto.c", "cfg_services_parse", 1639, "Parsed in cfg_services_parse()"}, {"services.lldp.describe", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"services.lldp.location", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"services.log.host", PROP_CONFIGURED, "proto.c", "cfg_service_log_parse", 1545, "Parsed in cfg_service_log_parse()"}, - {"services.log.port", PROP_CONFIGURED, "proto.c", "cfg_service_log_parse", 1542, "Parsed in cfg_service_log_parse()"}, - {"services.log.priority", PROP_CONFIGURED, "proto.c", "script_reply", 867, "Parsed in script_reply()"}, - {"services.log.proto", PROP_CONFIGURED, "proto.c", "cfg_service_log_parse", 1546, "Parsed in cfg_service_log_parse()"}, - {"services.log.size", PROP_CONFIGURED, "proto.c", "cfg_service_log_parse", 1544, "Parsed in cfg_service_log_parse()"}, + {"services.log.host", PROP_CONFIGURED, "proto.c", "cfg_interfaces_parse", 1545, "Parsed in cfg_interfaces_parse()"}, + {"services.log.port", PROP_CONFIGURED, "proto.c", "cfg_interfaces_parse", 1542, "Parsed in cfg_interfaces_parse()"}, + {"services.log.priority", PROP_CONFIGURED, "proto.c", "cfg_ethernet_poe_parse", 867, "Parsed in cfg_ethernet_poe_parse()"}, + {"services.log.proto", PROP_CONFIGURED, "proto.c", "cfg_interfaces_parse", 1546, "Parsed in cfg_interfaces_parse()"}, + {"services.log.size", PROP_CONFIGURED, "proto.c", "cfg_interfaces_parse", 1544, "Parsed in cfg_interfaces_parse()"}, {"services.mdns.enable", PROP_CONFIGURED, "proto.c", "cfg_services_parse", 1639, "Parsed in cfg_services_parse()"}, {"services.ntp.local-server", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"services.ntp.servers", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"services.online-check.action", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, + {"services.ntp.servers[]", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, + {"services.online-check.action[]", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"services.online-check.check-interval", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"services.online-check.check-threshold", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"services.online-check.download-hosts", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"services.online-check.ping-hosts", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, + {"services.online-check.download-hosts[]", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, + {"services.online-check.ping-hosts[]", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"services.quality-of-service.bandwidth-down", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"services.quality-of-service.bandwidth-up", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"services.quality-of-service.bulk-detection.dscp", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, @@ -223,37 +223,37 @@ static const struct property_metadata base_property_database[] = { {"services.quality-of-service.classifier[].dns[].reclassify", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"services.quality-of-service.classifier[].dns[].suffix-matching", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"services.quality-of-service.classifier[].dscp", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"services.quality-of-service.classifier[].ports[].port", PROP_CONFIGURED, "proto.c", "cfg_service_log_parse", 1542, "Parsed in cfg_service_log_parse()"}, - {"services.quality-of-service.classifier[].ports[].protocol", PROP_CONFIGURED, "proto.c", "cfg_switch_parse", 1787, "Parsed in cfg_switch_parse()"}, + {"services.quality-of-service.classifier[].ports[].port", PROP_CONFIGURED, "proto.c", "cfg_interfaces_parse", 1542, "Parsed in cfg_interfaces_parse()"}, + {"services.quality-of-service.classifier[].ports[].protocol", PROP_CONFIGURED, "proto.c", "cfg_services_parse", 1787, "Parsed in cfg_services_parse()"}, {"services.quality-of-service.classifier[].ports[].range-end", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"services.quality-of-service.classifier[].ports[].reclassify", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"services.quality-of-service.select-ports", PROP_CONFIGURED, "proto.c", "cfg_ethernet_parse", 1132, "Parsed in cfg_ethernet_parse()"}, - {"services.quality-of-service.services", PROP_CONFIGURED, "proto.c", "cfg_unit_parse", 2106, "Parsed in cfg_unit_parse()"}, + {"services.quality-of-service.select-ports[]", PROP_CONFIGURED, "proto.c", "cfg_ethernet_parse", 1132, "Parsed in cfg_ethernet_parse()"}, + {"services.quality-of-service.services[]", PROP_CONFIGURED, "proto.c", "cfg_unit_parse", 2106, "Parsed in cfg_unit_parse()"}, {"services.radius-proxy.proxy-secret", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"services.rtty.host", PROP_CONFIGURED, "proto.c", "cfg_service_log_parse", 1545, "Parsed in cfg_service_log_parse()"}, + {"services.rtty.host", PROP_CONFIGURED, "proto.c", "cfg_interfaces_parse", 1545, "Parsed in cfg_interfaces_parse()"}, {"services.rtty.mutual-tls", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"services.rtty.port", PROP_CONFIGURED, "proto.c", "cfg_service_log_parse", 1542, "Parsed in cfg_service_log_parse()"}, - {"services.rtty.token", PROP_CONFIGURED, "proto.c", "cfg_unit_parse", 2460, "Parsed in cfg_unit_parse()"}, - {"services.ssh.authorized-keys", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, + {"services.rtty.port", PROP_CONFIGURED, "proto.c", "cfg_interfaces_parse", 1542, "Parsed in cfg_interfaces_parse()"}, + {"services.rtty.token", PROP_CONFIGURED, "proto.c", "ping_handle", 2460, "Parsed in ping_handle()"}, + {"services.ssh.authorized-keys[]", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"services.ssh.enable", PROP_CONFIGURED, "proto.c", "cfg_services_parse", 1639, "Parsed in cfg_services_parse()"}, {"services.ssh.password-authentication", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"services.ssh.port", PROP_CONFIGURED, "proto.c", "cfg_service_log_parse", 1542, "Parsed in cfg_service_log_parse()"}, + {"services.ssh.port", PROP_CONFIGURED, "proto.c", "cfg_interfaces_parse", 1542, "Parsed in cfg_interfaces_parse()"}, {"services.telnet.enable", PROP_CONFIGURED, "proto.c", "cfg_services_parse", 1639, "Parsed in cfg_services_parse()"}, {"services.wireguard-overlay.hosts[].endpoint", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"services.wireguard-overlay.hosts[].ipaddr", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, + {"services.wireguard-overlay.hosts[].ipaddr[]", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"services.wireguard-overlay.hosts[].key", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"services.wireguard-overlay.hosts[].name", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"services.wireguard-overlay.hosts[].subnet", PROP_CONFIGURED, "proto.c", "cfg_port_interface_parse", 1275, "Parsed in cfg_port_interface_parse()"}, + {"services.wireguard-overlay.hosts[].subnet[]", PROP_CONFIGURED, "proto.c", "cfg_ethernet_parse", 1275, "Parsed in cfg_ethernet_parse()"}, {"services.wireguard-overlay.peer-exchange-port", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"services.wireguard-overlay.peer-port", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"services.wireguard-overlay.private-key", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"services.wireguard-overlay.proto", PROP_CONFIGURED, "proto.c", "cfg_service_log_parse", 1546, "Parsed in cfg_service_log_parse()"}, + {"services.wireguard-overlay.proto", PROP_CONFIGURED, "proto.c", "cfg_interfaces_parse", 1546, "Parsed in cfg_interfaces_parse()"}, {"services.wireguard-overlay.root-node.endpoint", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"services.wireguard-overlay.root-node.ipaddr", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, + {"services.wireguard-overlay.root-node.ipaddr[]", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"services.wireguard-overlay.root-node.key", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"services.wireguard-overlay.vxlan.isolate", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"services.wireguard-overlay.vxlan.mtu", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"services.wireguard-overlay.vxlan.port", PROP_CONFIGURED, "proto.c", "cfg_service_log_parse", 1542, "Parsed in cfg_service_log_parse()"}, + {"services.wireguard-overlay.vxlan.port", PROP_CONFIGURED, "proto.c", "cfg_interfaces_parse", 1542, "Parsed in cfg_interfaces_parse()"}, {"strict", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.acl[].acl-name", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.acl[].acl-rules", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, @@ -270,20 +270,20 @@ static const struct property_metadata base_property_database[] = { {"switch.dhcp-snooping.dhcp-snoop-inf-opt-remoteid", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.dhcp-snooping.dhcp-snoop-mac-verify", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.dhcp-snooping.dhcp-snoop-rate-limit", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"switch.dns", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"switch.ieee8021x.auth-control-enable", PROP_CONFIGURED, "proto.c", "cfg_switch_ieee8021x_parse", 1696, "Parsed in cfg_switch_ieee8021x_parse()"}, + {"switch.dns[]", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, + {"switch.ieee8021x.auth-control-enable", PROP_CONFIGURED, "proto.c", "cfg_services_parse", 1696, "Parsed in cfg_services_parse()"}, {"switch.ieee8021x.dynamic-authorization.auth-type", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.ieee8021x.dynamic-authorization.bounce-port-ignore", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"switch.ieee8021x.dynamic-authorization.client[].address", PROP_CONFIGURED, "proto.c", "cfg_port_interface_parse", 1351, "Parsed in cfg_port_interface_parse()"}, - {"switch.ieee8021x.dynamic-authorization.client[].server-key", PROP_CONFIGURED, "proto.c", "cfg_switch_ieee8021x_parse", 1720, "Parsed in cfg_switch_ieee8021x_parse()"}, + {"switch.ieee8021x.dynamic-authorization.client[].address", PROP_CONFIGURED, "proto.c", "__cfg_vlan_interface_parse_multicast", 1351, "Parsed in __cfg_vlan_interface_parse_multicast()"}, + {"switch.ieee8021x.dynamic-authorization.client[].server-key", PROP_CONFIGURED, "proto.c", "cfg_services_parse", 1720, "Parsed in cfg_services_parse()"}, {"switch.ieee8021x.dynamic-authorization.disable-port-ignore", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.ieee8021x.dynamic-authorization.ignore-server-key", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.ieee8021x.dynamic-authorization.ignore-session-key", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"switch.ieee8021x.dynamic-authorization.server-key", PROP_CONFIGURED, "proto.c", "cfg_switch_ieee8021x_parse", 1720, "Parsed in cfg_switch_ieee8021x_parse()"}, - {"switch.ieee8021x.radius[].server-authentication-port", PROP_CONFIGURED, "proto.c", "cfg_switch_ieee8021x_parse", 1719, "Parsed in cfg_switch_ieee8021x_parse()"}, - {"switch.ieee8021x.radius[].server-host", PROP_CONFIGURED, "proto.c", "cfg_switch_ieee8021x_parse", 1718, "Parsed in cfg_switch_ieee8021x_parse()"}, - {"switch.ieee8021x.radius[].server-key", PROP_CONFIGURED, "proto.c", "cfg_switch_ieee8021x_parse", 1720, "Parsed in cfg_switch_ieee8021x_parse()"}, - {"switch.ieee8021x.radius[].server-priority", PROP_CONFIGURED, "proto.c", "cfg_switch_ieee8021x_parse", 1721, "Parsed in cfg_switch_ieee8021x_parse()"}, + {"switch.ieee8021x.dynamic-authorization.server-key", PROP_CONFIGURED, "proto.c", "cfg_services_parse", 1720, "Parsed in cfg_services_parse()"}, + {"switch.ieee8021x.radius[].server-authentication-port", PROP_CONFIGURED, "proto.c", "cfg_services_parse", 1719, "Parsed in cfg_services_parse()"}, + {"switch.ieee8021x.radius[].server-host", PROP_CONFIGURED, "proto.c", "cfg_services_parse", 1718, "Parsed in cfg_services_parse()"}, + {"switch.ieee8021x.radius[].server-key", PROP_CONFIGURED, "proto.c", "cfg_services_parse", 1720, "Parsed in cfg_services_parse()"}, + {"switch.ieee8021x.radius[].server-priority", PROP_CONFIGURED, "proto.c", "cfg_services_parse", 1721, "Parsed in cfg_services_parse()"}, {"switch.intrusion-detection-access-lockout.lockout-attempt-count", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.intrusion-detection-access-lockout.lockout-period-seconds", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.ip-source-guard.bindings[].binding-ip", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, @@ -307,18 +307,18 @@ static const struct property_metadata base_property_database[] = { {"switch.loop-detection.instances[].enabled", PROP_CONFIGURED, "proto.c", "cfg_ethernet_parse", 1133, "Parsed in cfg_ethernet_parse()"}, {"switch.loop-detection.instances[].forward-delay", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.loop-detection.instances[].hello-time", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"switch.loop-detection.instances[].id", PROP_CONFIGURED, "proto.c", "script_reply", 1056, "Parsed in script_reply()"}, + {"switch.loop-detection.instances[].id", PROP_CONFIGURED, "proto.c", "cfg_ethernet_port_isolation_interface_parse", 1056, "Parsed in cfg_ethernet_port_isolation_interface_parse()"}, {"switch.loop-detection.instances[].max-age", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.loop-detection.instances[].path-cost", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"switch.loop-detection.instances[].priority", PROP_CONFIGURED, "proto.c", "script_reply", 867, "Parsed in script_reply()"}, + {"switch.loop-detection.instances[].priority", PROP_CONFIGURED, "proto.c", "cfg_ethernet_poe_parse", 867, "Parsed in cfg_ethernet_poe_parse()"}, {"switch.loop-detection.instances[].vlan-end", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.loop-detection.instances[].vlan-start", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.loop-detection.max-age-secs", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.loop-detection.mst-region.name", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.loop-detection.mst-region.revision", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.loop-detection.pathcost-method", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"switch.loop-detection.protocol", PROP_CONFIGURED, "proto.c", "cfg_switch_parse", 1787, "Parsed in cfg_switch_parse()"}, - {"switch.loop-detection.roles", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, + {"switch.loop-detection.protocol", PROP_CONFIGURED, "proto.c", "cfg_services_parse", 1787, "Parsed in cfg_services_parse()"}, + {"switch.loop-detection.roles[]", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.loop-detection.root-guard", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.mc-lag", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.mclag-config.global-gateway-mac", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, @@ -330,7 +330,7 @@ static const struct property_metadata base_property_database[] = { {"switch.mclag-config.mclag-domains[].mclag-group[].lacp-config.lacp-enable", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.mclag-config.mclag-domains[].mclag-group[].lacp-config.lacp-role", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.mclag-config.mclag-domains[].mclag-group[].lacp-config.lacp-timeout", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"switch.mclag-config.mclag-domains[].mclag-group[].members", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, + {"switch.mclag-config.mclag-domains[].mclag-group[].members[]", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.mclag-config.mclag-domains[].peer-ip", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.mclag-config.mclag-domains[].peer-link.link-type", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.mclag-config.mclag-domains[].peer-link.port-id", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, @@ -348,15 +348,15 @@ static const struct property_metadata base_property_database[] = { {"switch.mvr-domain-config[].mvr-domain-id", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.mvr-domain-config[].mvr-domain-upstream-sip", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.mvr-domain-config[].mvr-domain-vlan-id", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"switch.mvr-group-config[].mvr-group-assoc-domain", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, + {"switch.mvr-group-config[].mvr-group-assoc-domain[]", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.mvr-group-config[].mvr-group-name", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.mvr-group-config[].mvr-group-range-end", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.mvr-group-config[].mvr-group-range-start", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"switch.port-isolation.sessions[].downlink.interface-list", PROP_CONFIGURED, "proto.c", "script_reply", 995, "Parsed in script_reply()"}, - {"switch.port-isolation.sessions[].id", PROP_CONFIGURED, "proto.c", "script_reply", 1056, "Parsed in script_reply()"}, - {"switch.port-isolation.sessions[].uplink.interface-list", PROP_CONFIGURED, "proto.c", "script_reply", 995, "Parsed in script_reply()"}, + {"switch.port-isolation.sessions[].downlink.interface-list[]", PROP_CONFIGURED, "proto.c", "cfg_ethernet_port_isolation_interface_parse", 995, "Parsed in cfg_ethernet_port_isolation_interface_parse()"}, + {"switch.port-isolation.sessions[].id", PROP_CONFIGURED, "proto.c", "cfg_ethernet_port_isolation_interface_parse", 1056, "Parsed in cfg_ethernet_port_isolation_interface_parse()"}, + {"switch.port-isolation.sessions[].uplink.interface-list[]", PROP_CONFIGURED, "proto.c", "cfg_ethernet_port_isolation_interface_parse", 995, "Parsed in cfg_ethernet_port_isolation_interface_parse()"}, {"switch.port-mirror[].analysis-port", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"switch.port-mirror[].monitor-ports", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, + {"switch.port-mirror[].monitor-ports[]", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.rt-events.dhcp-snooping.enabled", PROP_CONFIGURED, "proto.c", "cfg_ethernet_parse", 1133, "Parsed in cfg_ethernet_parse()"}, {"switch.rt-events.dhcp-snooping.sub-events.dhcp-snooping.violation-cleared", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"switch.rt-events.dhcp-snooping.sub-events.dhcp-snooping.violation-detected", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, @@ -401,7 +401,7 @@ static const struct property_metadata base_property_database[] = { {"unit.location", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"unit.multicast.igmp-snooping-enable", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"unit.multicast.mld-snooping-enable", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"unit.multicast.querier-enable", PROP_CONFIGURED, "proto.c", "cfg_port_interface_parse", 1328, "Parsed in cfg_port_interface_parse()"}, + {"unit.multicast.querier-enable", PROP_CONFIGURED, "proto.c", "__cfg_vlan_interface_parse_multicast", 1328, "Parsed in __cfg_vlan_interface_parse_multicast()"}, {"unit.multicast.unknown-multicast-flood-control", PROP_CONFIGURED, "proto.c", "cfg_unit_parse", 2070, "Parsed in cfg_unit_parse()"}, {"unit.name", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"unit.poe.power-management", PROP_CONFIGURED, "proto.c", "cfg_unit_parse", 2049, "Parsed in cfg_unit_parse()"}, @@ -409,7 +409,7 @@ static const struct property_metadata base_property_database[] = { {"unit.random-password", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, {"unit.system-password", PROP_CONFIGURED, "proto.c", "cfg_unit_parse", 2064, "Parsed in cfg_unit_parse()"}, {"unit.timezone", PROP_CONFIGURED, "proto.c", "NULL", 0, "Not yet implemented"}, - {"uuid", PROP_CONFIGURED, "proto.c", "cfg_unit_parse", 2255, "Parsed in cfg_unit_parse()"}, + {"uuid", PROP_CONFIGURED, "proto.c", "configure_handle", 2255, "Parsed in configure_handle()"}, /* Sentinel */ {NULL, PROP_CONFIGURED, NULL, NULL, 0, NULL} diff --git a/tests/config-parser/property-database-platform-brcm-sonic.c b/tests/config-parser/property-database-platform-brcm-sonic.c index 8ec1caa..801bc2c 100644 --- a/tests/config-parser/property-database-platform-brcm-sonic.c +++ b/tests/config-parser/property-database-platform-brcm-sonic.c @@ -15,7 +15,7 @@ */ static const struct property_metadata platform_property_database_brcm_sonic[] = { - {"config-raw[]", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, + {"config-raw[][]", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"ethernet[].acl[].acl-inf-counters-egress", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"ethernet[].acl[].acl-inf-counters-ingress", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"ethernet[].acl[].acl-inf-policy-egress", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, @@ -84,8 +84,8 @@ static const struct property_metadata platform_property_database_brcm_sonic[] = {"ethernet[].poe.priority", PROP_CONFIGURED, "plat-gnma.c", "config_poe_port_apply", 4186, "Applied in config_poe_port_apply()"}, {"ethernet[].rate-limit-port.egress-kbps", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, {"ethernet[].rate-limit-port.ingress-kbps", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, - {"ethernet[].select-ports", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, - {"ethernet[].services", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, + {"ethernet[].select-ports[]", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, + {"ethernet[].services[]", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"ethernet[].speed", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, {"ethernet[].storm-control.broadcast-pps", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"ethernet[].storm-control.multicast-pps", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, @@ -109,7 +109,7 @@ static const struct property_metadata platform_property_database_brcm_sonic[] = {"interfaces[].ethernet[].macaddr", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].ethernet[].multicast", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].ethernet[].reverse-path-filter", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, - {"interfaces[].ethernet[].select-ports", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, + {"interfaces[].ethernet[].select-ports[]", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, {"interfaces[].ethernet[].vlan-tag", PROP_CONFIGURED, "plat-gnma.c", "plat_vlan_rif_set", 76, "Applied in plat_vlan_rif_set()"}, {"interfaces[].ipv4.addressing", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].ipv4.broadcast[].prefix", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, @@ -138,7 +138,7 @@ static const struct property_metadata platform_property_database_brcm_sonic[] = {"interfaces[].ipv4.multicast.igmp.query-interval", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].ipv4.multicast.igmp.snooping-enable", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].ipv4.multicast.igmp.static-mcast-groups[].address", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, - {"interfaces[].ipv4.multicast.igmp.static-mcast-groups[].egress-ports", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, + {"interfaces[].ipv4.multicast.igmp.static-mcast-groups[].egress-ports[]", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, {"interfaces[].ipv4.multicast.igmp.version", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].ipv4.multicast.mvr.mvr-intf-assoc-domain", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].ipv4.multicast.mvr.mvr-intf-immed-leave", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, @@ -151,9 +151,9 @@ static const struct property_metadata platform_property_database_brcm_sonic[] = {"interfaces[].ipv4.send-hostname", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].ipv4.subnet[].prefix", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].ipv4.subnet[].vrf", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, - {"interfaces[].ipv4.use-dns", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, + {"interfaces[].ipv4.use-dns[]", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].ipv6.addressing", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, - {"interfaces[].ipv6.dhcpv6.announce-dns", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, + {"interfaces[].ipv6.dhcpv6.announce-dns[]", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].ipv6.dhcpv6.filter-prefix", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].ipv6.dhcpv6.mode", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].ipv6.gateway", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, @@ -164,16 +164,16 @@ static const struct property_metadata platform_property_database_brcm_sonic[] = {"interfaces[].ipv6.prefix-size", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].ipv6.subnet", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].ipv6.traffic-allow[].destination-address", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, - {"interfaces[].ipv6.traffic-allow[].destination-ports", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, + {"interfaces[].ipv6.traffic-allow[].destination-ports[]", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, {"interfaces[].ipv6.traffic-allow[].protocol", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].ipv6.traffic-allow[].source-address", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, - {"interfaces[].ipv6.traffic-allow[].source-ports", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, + {"interfaces[].ipv6.traffic-allow[].source-ports[]", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, {"interfaces[].isolate-hosts", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].metric", PROP_CONFIGURED, "plat-gnma.c", "config_metrics_apply", 4019, "Applied in config_metrics_apply()"}, {"interfaces[].mtu", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].name", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].role", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, - {"interfaces[].services", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, + {"interfaces[].services[]", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"interfaces[].vlan-awareness.first", PROP_CONFIGURED, "plat-gnma.c", "plat_vlan_rif_set", 76, "Applied in plat_vlan_rif_set()"}, {"interfaces[].vlan-awareness.last", PROP_CONFIGURED, "plat-gnma.c", "plat_vlan_rif_set", 76, "Applied in plat_vlan_rif_set()"}, {"interfaces[].vlan.id", PROP_CONFIGURED, "plat-gnma.c", "plat_vlan_rif_set", 76, "Applied in plat_vlan_rif_set()"}, @@ -181,18 +181,18 @@ static const struct property_metadata platform_property_database_brcm_sonic[] = {"interfaces[].vlan.range-end", PROP_CONFIGURED, "plat-gnma.c", "plat_vlan_rif_set", 76, "Applied in plat_vlan_rif_set()"}, {"interfaces[].vlan.range-start", PROP_CONFIGURED, "plat-gnma.c", "plat_vlan_rif_set", 76, "Applied in plat_vlan_rif_set()"}, {"interfaces[].vlan.stp-instance", PROP_CONFIGURED, "plat-gnma.c", "config_stp_apply", 3929, "Applied in config_stp_apply()"}, - {"metrics.dhcp-snooping.filters", PROP_CONFIGURED, "plat-gnma.c", "config_vlan_dhcp_relay_apply", 3717, "Applied in config_vlan_dhcp_relay_apply()"}, + {"metrics.dhcp-snooping.filters[]", PROP_CONFIGURED, "plat-gnma.c", "config_vlan_dhcp_relay_apply", 3717, "Applied in config_vlan_dhcp_relay_apply()"}, {"metrics.health.dhcp-local", PROP_CONFIGURED, "plat-gnma.c", "config_vlan_dhcp_relay_apply", 3717, "Applied in config_vlan_dhcp_relay_apply()"}, {"metrics.health.dhcp-remote", PROP_CONFIGURED, "plat-gnma.c", "config_vlan_dhcp_relay_apply", 3717, "Applied in config_vlan_dhcp_relay_apply()"}, {"metrics.health.dns-local", PROP_CONFIGURED, "plat-gnma.c", "config_metrics_apply", 4019, "Applied in config_metrics_apply()"}, {"metrics.health.dns-remote", PROP_CONFIGURED, "plat-gnma.c", "config_metrics_apply", 4019, "Applied in config_metrics_apply()"}, {"metrics.health.interval", PROP_CONFIGURED, "plat-gnma.c", "config_metrics_apply", 4019, "Applied in config_metrics_apply()"}, - {"metrics.realtime.types", PROP_CONFIGURED, "plat-gnma.c", "config_metrics_apply", 4019, "Applied in config_metrics_apply()"}, + {"metrics.realtime.types[]", PROP_CONFIGURED, "plat-gnma.c", "config_metrics_apply", 4019, "Applied in config_metrics_apply()"}, {"metrics.statistics.interval", PROP_CONFIGURED, "plat-gnma.c", "config_metrics_apply", 4019, "Applied in config_metrics_apply()"}, - {"metrics.statistics.types", PROP_CONFIGURED, "plat-gnma.c", "config_metrics_apply", 4019, "Applied in config_metrics_apply()"}, + {"metrics.statistics.types[]", PROP_CONFIGURED, "plat-gnma.c", "config_metrics_apply", 4019, "Applied in config_metrics_apply()"}, {"metrics.statistics.wired-clients-max-num", PROP_CONFIGURED, "plat-gnma.c", "config_metrics_apply", 4019, "Applied in config_metrics_apply()"}, {"metrics.telemetry.interval", PROP_CONFIGURED, "plat-gnma.c", "config_metrics_apply", 4019, "Applied in config_metrics_apply()"}, - {"metrics.telemetry.types", PROP_CONFIGURED, "plat-gnma.c", "config_metrics_apply", 4019, "Applied in config_metrics_apply()"}, + {"metrics.telemetry.types[]", PROP_CONFIGURED, "plat-gnma.c", "config_metrics_apply", 4019, "Applied in config_metrics_apply()"}, {"public_ip_lookup", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.data-plane.ingress-filters[].name", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.data-plane.ingress-filters[].program", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, @@ -212,12 +212,12 @@ static const struct property_metadata platform_property_database_brcm_sonic[] = {"services.log.size", PROP_CONFIGURED, "plat-gnma.c", "plat_syslog_set", 81, "Applied in plat_syslog_set()"}, {"services.mdns.enable", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.ntp.local-server", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, - {"services.ntp.servers", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, - {"services.online-check.action", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, + {"services.ntp.servers[]", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, + {"services.online-check.action[]", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.online-check.check-interval", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.online-check.check-threshold", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, - {"services.online-check.download-hosts", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, - {"services.online-check.ping-hosts", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, + {"services.online-check.download-hosts[]", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, + {"services.online-check.ping-hosts[]", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.quality-of-service.bandwidth-down", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.quality-of-service.bandwidth-up", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.quality-of-service.bulk-detection.dscp", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, @@ -230,29 +230,29 @@ static const struct property_metadata platform_property_database_brcm_sonic[] = {"services.quality-of-service.classifier[].ports[].protocol", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.quality-of-service.classifier[].ports[].range-end", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.quality-of-service.classifier[].ports[].reclassify", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, - {"services.quality-of-service.select-ports", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, - {"services.quality-of-service.services", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, + {"services.quality-of-service.select-ports[]", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, + {"services.quality-of-service.services[]", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.radius-proxy.proxy-secret", PROP_CONFIGURED, "plat-gnma.c", "plat_radius_hosts_list_set", 4349, "Applied in plat_radius_hosts_list_set()"}, {"services.rtty.host", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.rtty.mutual-tls", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.rtty.port", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, {"services.rtty.token", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, - {"services.ssh.authorized-keys", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, + {"services.ssh.authorized-keys[]", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.ssh.enable", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.ssh.password-authentication", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.ssh.port", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, {"services.telnet.enable", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.wireguard-overlay.hosts[].endpoint", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, - {"services.wireguard-overlay.hosts[].ipaddr", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, + {"services.wireguard-overlay.hosts[].ipaddr[]", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.wireguard-overlay.hosts[].key", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.wireguard-overlay.hosts[].name", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, - {"services.wireguard-overlay.hosts[].subnet", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, + {"services.wireguard-overlay.hosts[].subnet[]", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.wireguard-overlay.peer-exchange-port", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, {"services.wireguard-overlay.peer-port", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, {"services.wireguard-overlay.private-key", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.wireguard-overlay.proto", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.wireguard-overlay.root-node.endpoint", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, - {"services.wireguard-overlay.root-node.ipaddr", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, + {"services.wireguard-overlay.root-node.ipaddr[]", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.wireguard-overlay.root-node.key", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.wireguard-overlay.vxlan.isolate", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"services.wireguard-overlay.vxlan.mtu", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, @@ -273,7 +273,7 @@ static const struct property_metadata platform_property_database_brcm_sonic[] = {"switch.dhcp-snooping.dhcp-snoop-inf-opt-remoteid", PROP_CONFIGURED, "plat-gnma.c", "config_vlan_dhcp_relay_apply", 3717, "Applied in config_vlan_dhcp_relay_apply()"}, {"switch.dhcp-snooping.dhcp-snoop-mac-verify", PROP_CONFIGURED, "plat-gnma.c", "config_vlan_dhcp_relay_apply", 3717, "Applied in config_vlan_dhcp_relay_apply()"}, {"switch.dhcp-snooping.dhcp-snoop-rate-limit", PROP_CONFIGURED, "plat-gnma.c", "config_vlan_dhcp_relay_apply", 3717, "Applied in config_vlan_dhcp_relay_apply()"}, - {"switch.dns", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, + {"switch.dns[]", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"switch.ieee8021x.auth-control-enable", PROP_CONFIGURED, "plat-gnma.c", "config_ieee8021x_apply", 4557, "Applied in config_ieee8021x_apply()"}, {"switch.ieee8021x.dynamic-authorization.auth-type", PROP_CONFIGURED, "plat-gnma.c", "config_ieee8021x_apply", 4557, "Applied in config_ieee8021x_apply()"}, {"switch.ieee8021x.dynamic-authorization.bounce-port-ignore", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, @@ -321,7 +321,7 @@ static const struct property_metadata platform_property_database_brcm_sonic[] = {"switch.loop-detection.mst-region.revision", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"switch.loop-detection.pathcost-method", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"switch.loop-detection.protocol", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, - {"switch.loop-detection.roles", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, + {"switch.loop-detection.roles[]", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"switch.loop-detection.root-guard", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"switch.mc-lag", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"switch.mclag-config.global-gateway-mac", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, @@ -333,7 +333,7 @@ static const struct property_metadata platform_property_database_brcm_sonic[] = {"switch.mclag-config.mclag-domains[].mclag-group[].lacp-config.lacp-enable", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"switch.mclag-config.mclag-domains[].mclag-group[].lacp-config.lacp-role", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"switch.mclag-config.mclag-domains[].mclag-group[].lacp-config.lacp-timeout", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, - {"switch.mclag-config.mclag-domains[].mclag-group[].members", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, + {"switch.mclag-config.mclag-domains[].mclag-group[].members[]", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"switch.mclag-config.mclag-domains[].peer-ip", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"switch.mclag-config.mclag-domains[].peer-link.link-type", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"switch.mclag-config.mclag-domains[].peer-link.port-id", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, @@ -351,15 +351,15 @@ static const struct property_metadata platform_property_database_brcm_sonic[] = {"switch.mvr-domain-config[].mvr-domain-id", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"switch.mvr-domain-config[].mvr-domain-upstream-sip", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"switch.mvr-domain-config[].mvr-domain-vlan-id", PROP_CONFIGURED, "plat-gnma.c", "plat_vlan_rif_set", 76, "Applied in plat_vlan_rif_set()"}, - {"switch.mvr-group-config[].mvr-group-assoc-domain", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, + {"switch.mvr-group-config[].mvr-group-assoc-domain[]", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"switch.mvr-group-config[].mvr-group-name", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"switch.mvr-group-config[].mvr-group-range-end", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"switch.mvr-group-config[].mvr-group-range-start", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, - {"switch.port-isolation.sessions[].downlink.interface-list", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, + {"switch.port-isolation.sessions[].downlink.interface-list[]", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, {"switch.port-isolation.sessions[].id", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, - {"switch.port-isolation.sessions[].uplink.interface-list", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, + {"switch.port-isolation.sessions[].uplink.interface-list[]", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, {"switch.port-mirror[].analysis-port", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, - {"switch.port-mirror[].monitor-ports", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, + {"switch.port-mirror[].monitor-ports[]", PROP_CONFIGURED, "plat-gnma.c", "plat_port_speed_set", 73, "Applied in plat_port_speed_set()"}, {"switch.rt-events.dhcp-snooping.enabled", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"switch.rt-events.dhcp-snooping.sub-events.dhcp-snooping.violation-cleared", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, {"switch.rt-events.dhcp-snooping.sub-events.dhcp-snooping.violation-detected", PROP_CONFIGURED, "plat-gnma.c", "NULL", 0, "Not yet implemented in platform"}, diff --git a/tests/config-parser/test-config-parser.c b/tests/config-parser/test-config-parser.c index 697f463..18e2fd8 100644 --- a/tests/config-parser/test-config-parser.c +++ b/tests/config-parser/test-config-parser.c @@ -138,6 +138,9 @@ struct test_result { static struct test_result *test_results_head = NULL; static struct test_result *test_results_tail = NULL; +/* Global flag to control progress/debug output (disabled for HTML/JSON/JUnit formats) */ +static int show_progress = 1; + /* Logging callback to capture errors from cfg_parse() */ static void test_log_callback(const char *msg, int severity) { @@ -1800,10 +1803,12 @@ static int test_directory(const char *dirpath) return -1; } - printf("========================================\n"); - printf("Configuration Parser Test Suite\n"); - printf("========================================\n"); - printf("Scanning: %s\n", dirpath); + if (show_progress) { + printf("========================================\n"); + printf("Configuration Parser Test Suite\n"); + printf("========================================\n"); + printf("Scanning: %s\n", dirpath); + } while ((entry = readdir(dir)) != NULL) { size_t len = strlen(entry->d_name); @@ -2231,7 +2236,7 @@ static void output_html_report(void) } /* Add platform execution flow section (platform mode only) */ - if (result->platform_apply_called && result->platform_trace[0]) { + if (result->platform_apply_called) { printf(" \n"); printf("
\n"); printf(" 🔧 Platform Execution Flow\n"); @@ -2245,8 +2250,9 @@ static void output_html_report(void) } /* Parse and display platform function calls */ - printf("
Platform functions called:
\n"); - printf("
    \n"); + if (result->platform_trace[0]) { + printf("
    Platform functions called:
    \n"); + printf("
      \n"); char *trace_copy = strdup(result->platform_trace); char *line = strtok(trace_copy, "\n"); @@ -2276,6 +2282,10 @@ static void output_html_report(void) if (call_count > 0) { printf("
      ℹ️ Total platform functions called: %d
      \n", call_count); } + } else { + /* No trace available */ + printf("
      ℹ️ No platform trace captured (silent execution)
      \n"); + } printf(" \n"); printf("
\n"); @@ -3189,6 +3199,18 @@ int main(int argc, char *argv[]) return 1; } + /* For non-human formats, disable progress output and suppress stderr (mock/debug output) */ + int saved_stderr = -1; + if (output_format != OUTPUT_HUMAN) { + show_progress = 0; /* Disable progress messages */ + saved_stderr = dup(STDERR_FILENO); + int devnull = open("/dev/null", O_WRONLY); + if (devnull >= 0) { + dup2(devnull, STDERR_FILENO); + close(devnull); + } + } + /* Register logging callback to capture errors from cfg_parse() */ uc_log_send_cb_register(test_log_callback); @@ -3227,10 +3249,12 @@ int main(int argc, char *argv[]) filename[sizeof(filename) - 1] = '\0'; } - printf("========================================\n"); - printf("Configuration Parser Test Suite\n"); - printf("========================================\n"); - printf("Testing single file: %s\n\n", config_dir); + if (show_progress) { + printf("========================================\n"); + printf("Configuration Parser Test Suite\n"); + printf("========================================\n"); + printf("Testing single file: %s\n\n", config_dir); + } test_config_file(dirpath, filename); } else if (S_ISDIR(path_stat.st_mode)) { @@ -3244,6 +3268,12 @@ int main(int argc, char *argv[]) return 1; } + /* Restore stderr before output (so error messages can be seen if needed) */ + if (saved_stderr >= 0) { + dup2(saved_stderr, STDERR_FILENO); + close(saved_stderr); + } + /* Output results based on format */ switch (output_format) { case OUTPUT_JSON: diff --git a/tests/tools/generate-database-from-schema.py b/tests/tools/generate-database-from-schema.py index 0046bfe..07f01f1 100755 --- a/tests/tools/generate-database-from-schema.py +++ b/tests/tools/generate-database-from-schema.py @@ -42,14 +42,61 @@ def extract_json_key(property_path: str) -> str: return key def find_function_containing_line(source_lines: list, target_line: int) -> Optional[str]: - """Find which function contains a given line number.""" + """ + Find which function contains a given line number. + + Searches backward from target line to find the nearest function definition. + Handles multiple function definition styles: + static int function_name(params) # Single line + static int # Return type on one line + function_name(params) # Function name on next line + """ for i in range(target_line - 1, -1, -1): - line = source_lines[i] - # Look for function definition patterns - match = re.search(r'^\s*(static\s+)?(\w+\s+)+(\w+)\s*\([^)]*\)\s*{?\s*$', line) - if match: - func_name = match.group(3) - return func_name + line_raw = source_lines[i] + line = line_raw.strip() + + # Skip empty lines + if not line: + continue + + # IMPORTANT: Function definitions must start at column 0 (or only whitespace before) + # This excludes indented function calls inside function bodies + + # Pattern 1: Function name with opening paren on its own line (line 2 of split definition) + # Example: "cfg_ethernet_ieee8021x_parse(cJSON *ieee8021x, struct plat_port *port)" + # Must be at column 0 (no leading whitespace in original line) + if line_raw[0] not in (' ', '\t'): + match = re.match(r'^([a-z_][a-z0-9_]*)\s*\(', line, re.IGNORECASE) + if match: + func_name = match.group(1) + # Check if previous line has return type (static int, void, etc.) + if i > 0: + prev_line = source_lines[i - 1].strip() + # If previous line looks like a return type, this is a function definition + # Examples: "static int", "void", "static char *", "struct foo" + if re.match(r'^(static\s+)?(\w+\s*\**\s*)+$', prev_line): + # Make sure it's not followed by semicolon (declaration) + # Check next few lines for opening brace or statements + for j in range(i + 1, min(i + 5, len(source_lines))): + next_line = source_lines[j].strip() + if next_line == '{' or (next_line and not next_line.endswith(';')): + return func_name + if next_line.endswith(';'): + break # It's a declaration + + # Pattern 2: Complete function definition on one line + # Example: "static int cfg_ethernet_poe_parse(cJSON *poe," + match = re.match(r'^(static\s+)?(\w+\s+\**)+([a-z_][a-z0-9_]*)\s*\(', line, re.IGNORECASE) + if match: + func_name = match.group(3) + # Check it's not followed by a semicolon (declaration) + for j in range(i + 1, min(i + 10, len(source_lines))): + next_line = source_lines[j].strip() + if ')' in next_line: + if next_line.endswith(';') or (j + 1 < len(source_lines) and source_lines[j + 1].strip() == ';'): + break # It's a declaration + return func_name + return None def find_property_in_source(source_file: Path, property_path: str) -> Tuple[Optional[int], Optional[str]]: @@ -170,7 +217,7 @@ def main(): f.write(f" * whether implemented or not. Properties with line_number=0\n") f.write(f" * are in the schema but not yet implemented in the code.\n") f.write(f" */\n\n") - f.write(f"static const struct property_metadata property_database[] = {{\n") + f.write(f"static const struct property_metadata base_property_database[] = {{\n") for entry in database_entries: f.write(entry + "\n")