aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python
ModeNameSize
-rw-r--r--Classify.py26955logstatsplain
-rw-r--r--Constants.py5348logstatsplain
-rw-r--r--ContainerUtils.py38416logstatsplain
-rw-r--r--Cop.py2782logstatsplain
-rw-r--r--CoreDumpUtil.py6765logstatsplain
-rw-r--r--CpuUtils.py14991logstatsplain
d---------DMM168logstatsplain
d---------DPDK159logstatsplain
-rw-r--r--DUTSetup.py33623logstatsplain
-rw-r--r--Dhcp.py3439logstatsplain
-rw-r--r--DpdkUtil.py5146logstatsplain
-rw-r--r--DropRateSearch.py19961logstatsplain
-rw-r--r--HTTPRequest.py13774logstatsplain
-rw-r--r--IPUtil.py9325logstatsplain
-rw-r--r--IPsecUtil.py32782logstatsplain
-rw-r--r--IPv4NodeAddress.py3378logstatsplain
-rw-r--r--IPv4Setup.py12950logstatsplain
-rw-r--r--IPv4Util.py9091logstatsplain
-rw-r--r--IPv6NodesAddr.py2402logstatsplain
-rw-r--r--IPv6Setup.py10917logstatsplain
-rw-r--r--IPv6Util.py5113logstatsplain
-rw-r--r--InterfaceUtil.py70897logstatsplain
-rw-r--r--KubernetesUtils.py21019logstatsplain
-rw-r--r--L2Util.py18998logstatsplain
-rw-r--r--LimitUtil.py1992logstatsplain
-rw-r--r--LispSetup.py21743logstatsplain
-rw-r--r--LispUtil.py10432logstatsplain
d---------MLRsearch340logstatsplain
-rw-r--r--MacSwap.py2315logstatsplain
-rw-r--r--Map.py11262logstatsplain
-rw-r--r--Memif.py10077logstatsplain
-rw-r--r--NATUtil.py8870logstatsplain
-rw-r--r--Namespaces.py3913logstatsplain
-rw-r--r--NodePath.py6637logstatsplain
-rw-r--r--OptionString.py14859logstatsplain
d---------PLRsearch159logstatsplain
-rw-r--r--PacketVerifier.py11212logstatsplain
-rw-r--r--PapiExecutor.py21527logstatsplain
-rw-r--r--PapiHistory.py4201logstatsplain
-rw-r--r--Policer.py17372logstatsplain
-rw-r--r--ProxyArp.py1423logstatsplain
-rw-r--r--QemuManager.py5370logstatsplain
-rw-r--r--QemuUtils.py27694logstatsplain
-rw-r--r--Routing.py4954logstatsplain
d---------SFC251logstatsplain
-rw-r--r--SRv6.py14299logstatsplain
-rw-r--r--SchedUtils.py3762logstatsplain
-rw-r--r--SetupFramework.py9552logstatsplain
-rw-r--r--SysctlUtil.py1850logstatsplain
-rw-r--r--TGSetup.py1177logstatsplain
d---------TLDK204logstatsplain
-rw-r--r--Tap.py6728logstatsplain
-rw-r--r--Trace.py1947logstatsplain
-rw-r--r--TrafficGenerator.py31356logstatsplain
-rw-r--r--TrafficScriptArg.py2390logstatsplain
-rw-r--r--TrafficScriptExecutor.py4375logstatsplain
-rw-r--r--VPPUtil.py10062logstatsplain
-rw-r--r--VatExecutor.py14842logstatsplain
-rw-r--r--VatJsonUtil.py9191logstatsplain
-rw-r--r--VhostUser.py4178logstatsplain
-rw-r--r--VppConfigGenerator.py21268logstatsplain
-rw-r--r--VppCounters.py10484logstatsplain
-rw-r--r--__init__.py659logstatsplain
d---------autogen166logstatsplain
d---------honeycomb770logstatsplain
d---------parsers80logstatsplain
-rw-r--r--ssh.py19920logstatsplain
-rw-r--r--tcp.py3011logstatsplain
d---------telemetry155logstatsplain
-rw-r--r--topology.py34478logstatsplain
span class="p">, igmp_src_t * src, ip46_address_t ** srcaddrs, u8 block) { igmp_src_t *proxy_src; u32 d_config; proxy_src = igmp_src_lookup (*proxy_group, src->key); if (proxy_src == NULL) { if (block) return; /* store downstream config index */ d_config = igmp_group_get (src->group)->config; proxy_src = igmp_src_alloc (igmp_group_index (*proxy_group), src->key, IGMP_MODE_HOST); hash_set_mem ((*proxy_group)->igmp_src_by_key [(*proxy_group)->router_filter_mode], proxy_src->key, igmp_src_index (proxy_src)); vec_validate_init_empty (proxy_src->referance_by_config_index, d_config, 0); proxy_src->referance_by_config_index[d_config] = 1; vec_add1 (*srcaddrs, *proxy_src->key); } else { if (block) { d_config = igmp_group_get (src->group)->config; if (vec_len (proxy_src->referance_by_config_index) <= d_config) { IGMP_DBG ("proxy block src: invalid config %u", d_config); return; } proxy_src->referance_by_config_index[d_config] = 0; u8 *ref; vec_foreach (ref, proxy_src->referance_by_config_index) { if ((*ref) > 0) return; } vec_add1 (*srcaddrs, *proxy_src->key); igmp_group_src_remove (*proxy_group, proxy_src); igmp_src_free (proxy_src); if (igmp_group_n_srcs (*proxy_group, IGMP_FILTER_MODE_INCLUDE) == 0) { igmp_proxy_device_mfib_path_add_del (*proxy_group, 0); igmp_group_clear (proxy_group); } return; } d_config = igmp_group_get (src->group)->config; vec_validate (proxy_src->referance_by_config_index, d_config); proxy_src->referance_by_config_index[d_config] = 1; return; } } always_inline igmp_group_t * igmp_proxy_device_merge_group (igmp_proxy_device_t * proxy_device, igmp_group_t * group, ip46_address_t ** srcaddrs, u8 block) { igmp_config_t *proxy_config; igmp_group_t *proxy_group; igmp_src_t *src; proxy_config = igmp_config_lookup (proxy_device->upstream_if); ALWAYS_ASSERT (proxy_config); proxy_group = igmp_group_lookup (proxy_config, group->key); if (!proxy_group) { if (block) return NULL; u32 tmp = igmp_group_index (group); proxy_group = igmp_group_alloc (proxy_config, group->key, group->router_filter_mode); igmp_proxy_device_mfib_path_add_del (proxy_group, 1); group = igmp_group_get (tmp); } if (block) { igmp_proxy_device_mfib_path_add_del (group, 0); } /* *INDENT-OFF* */ FOR_EACH_SRC (src, group, group->router_filter_mode, ({ igmp_proxy_device_merge_src (&proxy_group, src, srcaddrs, block); })); /* *INDENT-ON* */ return proxy_group; } void igmp_proxy_device_merge_config (igmp_config_t * config, u8 block) { igmp_proxy_device_t *proxy_device; igmp_group_t *group; igmp_group_t *proxy_group; ip46_address_t *srcaddrs = NULL; igmp_pkt_build_report_t br; proxy_device = igmp_proxy_device_lookup (config->proxy_device_id); if (!proxy_device) return; igmp_pkt_build_report_init (&br, proxy_device->upstream_if); /* *INDENT-OFF* */ FOR_EACH_GROUP(group, config, ({ proxy_group = igmp_proxy_device_merge_group (proxy_device, group, &srcaddrs, block); if ((vec_len(srcaddrs) > 0) && proxy_group) { igmp_pkt_report_v3_add_report (&br, proxy_group->key, srcaddrs, block ? IGMP_MEMBERSHIP_GROUP_block_old_sources : IGMP_MEMBERSHIP_GROUP_allow_new_sources); } vec_free (srcaddrs); })); /* *INDENT-ON* */ igmp_pkt_report_v3_send (&br); } /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */