{
  "analysis_inclusion": {
    "details": [
      "ASN registrado com país BR na fonte autoritativa congelada."
    ],
    "reason": "national_asn",
    "reason_code": "authoritative_country_match"
  },
  "announced_prefixes": [
    {
      "address_family": 4,
      "analysis_scope": {
        "national_relevance": "in_scope",
        "national_statistics_eligible": true,
        "reason": "O recurso observado é brasileiro segundo o registro territorial congelado do ciclo.",
        "reason_code": "resource_country_br",
        "score_eligible": true
      },
      "brazilian_relevance": {
        "category": "brazilian_resource_without_compatible_association",
        "reason": "Recurso brasileiro sem associação cadastral compatível confirmada para a origem BGP observada.",
        "reason_code": "observed_origin_not_in_registered_associations"
      },
      "delegation_origins": [
        "AS267380"
      ],
      "delegation_status": "invalid_origin",
      "irr_origins": [],
      "irr_query_sources": [],
      "irr_sources": [],
      "irr_status": "missing",
      "is_bogon": false,
      "is_too_specific": false,
      "notes": [
        "Nenhum objeto IRR route/route6 exato foi encontrado para este anúncio BGP observado.",
        "Nenhum ROA cobrindo este anúncio foi encontrado.",
        "O recurso brasileiro possui associação cadastral de origem, mas a origem BGP observada não está entre os ASNs associados. Isto é divergência cadastral, não prova automática de sequestro."
      ],
      "origin_as": "AS274665",
      "prefix": "45.233.212.0/24",
      "registry_origin_association": {
        "associated_asns": [
          "AS267380"
        ],
        "match_type": "bgp_more_specific",
        "match_types": [
          "bgp_more_specific"
        ],
        "matched_resources": [
          "45.233.212.0/22"
        ],
        "observed_origin_asn": "AS274665",
        "organizations": [
          "Via Rapida Internet"
        ],
        "reason": "O recurso brasileiro possui associação cadastral de origem, mas a origem BGP observada não está entre os ASNs associados. Isto é divergência cadastral, não prova automática de sequestro.",
        "reason_code": "observed_origin_not_in_registered_associations",
        "source": "nicbr",
        "status": "divergent"
      },
      "resource_registry": {
        "country": "BR",
        "date": "20180411",
        "delegated_status": "allocated",
        "match_type": "bgp_more_specific",
        "prefix": "45.233.212.0/22",
        "reason_code": "covering_resource_registry_record",
        "registry": "lacnic",
        "source": "rir_delegated",
        "status": "known"
      },
      "rpki_status": "not_found",
      "severity": "warning",
      "tags": [
        "irr:missing",
        "rpki:not_found",
        "delegation:invalid_origin"
      ],
      "tc_irr_origins": []
    },
    {
      "address_family": 6,
      "analysis_scope": {
        "national_relevance": "in_scope",
        "national_statistics_eligible": true,
        "reason": "O recurso observado é brasileiro segundo o registro territorial congelado do ciclo.",
        "reason_code": "resource_country_br",
        "score_eligible": true
      },
      "brazilian_relevance": {
        "category": "associated_brazilian_resource",
        "reason": "Recurso brasileiro com associação cadastral NIC.br compatível com a origem BGP observada.",
        "reason_code": "compatible_nicbr_origin_association"
      },
      "delegation_origins": [
        "AS274665"
      ],
      "delegation_status": "valid",
      "irr_origins": [
        "AS274665"
      ],
      "irr_query_sources": [
        "RADB"
      ],
      "irr_sources": [
        "RADB"
      ],
      "irr_status": "proxy",
      "is_bogon": false,
      "is_too_specific": false,
      "notes": [
        "O objeto IRR consultado declara a mesma origem BGP observada, mas o maintainer sugere registro proxy/de terceiro. Isso é contexto operacional, não autorização de origem.",
        "Nenhum ROA cobrindo este anúncio foi encontrado."
      ],
      "origin_as": "AS274665",
      "prefix": "2804:91cc::/32",
      "registry_origin_association": {
        "associated_asns": [
          "AS274665"
        ],
        "match_type": "exact",
        "match_types": [
          "exact"
        ],
        "matched_resources": [
          "2804:91cc::/32"
        ],
        "observed_origin_asn": "AS274665",
        "organizations": [
          "CISLINK TELECOM COMERCIO E SERVICOS LTDA"
        ],
        "reason": "A origem BGP observada está entre os ASNs associados ao recurso brasileiro no snapshot NIC.br.",
        "reason_code": "observed_origin_is_registered_association",
        "source": "nicbr",
        "status": "compatible"
      },
      "resource_registry": {
        "country": "BR",
        "date": "20241021",
        "delegated_status": "allocated",
        "match_type": "exact",
        "prefix": "2804:91cc::/32",
        "reason_code": "covering_resource_registry_record",
        "registry": "lacnic",
        "source": "rir_delegated",
        "status": "known"
      },
      "rpki_status": "not_found",
      "severity": "warning",
      "tags": [
        "irr:proxy",
        "rpki:not_found",
        "delegation:valid"
      ],
      "tc_irr_origins": []
    }
  ],
  "artifact_set_id": "4a11b1708ad9cf71",
  "asn": "AS274665",
  "asn_registry": {
    "authoritative_rir": "lacnic",
    "country": "BR",
    "delegated_status": "allocated",
    "source": "rir_delegated",
    "status": "known"
  },
  "asn_scope": "national",
  "build_commit": "1a0b53ea71927b18932f5f6500e919343583ecb3",
  "country": "BR",
  "cycle_id": "20260904T111626Z-1a0b53e-1afca3",
  "cycle_started_at": "2026-09-04T11:16:34Z",
  "downstreams": [
    "AS263162",
    "AS271729"
  ],
  "generated_at": "2026-09-05T03:09:54Z",
  "ix_memberships": [],
  "left_neighbours": [
    "AS1031",
    "AS22356",
    "AS24961",
    "AS271253"
  ],
  "metadata": {
    "bgp_observation": {
      "announcements_source": "ripestat_announced_prefixes",
      "cache_configured": true,
      "cache_status": "ok",
      "cache_ttl_seconds": 21600,
      "earliest_time": "2000-08-01T00:00:00Z",
      "effective_window": {
        "endtime": "2026-09-04T08:00:00Z",
        "starttime": "2026-08-21T08:00:00Z"
      },
      "endpoint": "announced-prefixes",
      "from_cache": false,
      "latest_time": "2026-09-05T00:00:00Z",
      "min_peers_seeing": 10,
      "per_prefix_first_seen": null,
      "per_prefix_last_seen": null,
      "per_prefix_peer_count": null,
      "prefix_count": 2,
      "query_endtime": "2026-09-04T08:00:00Z",
      "query_parameters": {
        "endtime": "2026-09-04T08:00:00Z",
        "min_peers_seeing": 10,
        "resource": "AS274665",
        "sourceapp": "tc-irr-analysis",
        "starttime": "2026-08-21T08:00:00Z"
      },
      "query_starttime": "2026-08-21T08:00:00Z",
      "request_finished_at": "2026-09-05T03:04:25Z",
      "request_started_at": "2026-09-05T03:04:25Z",
      "requested_window": {
        "endtime": "2026-09-04T08:00:00Z",
        "starttime": "2026-08-21T08:00:00Z"
      },
      "resource": "AS274665",
      "response_data_fields": [
        "earliest_time",
        "latest_time",
        "prefixes",
        "query_endtime",
        "query_starttime",
        "resource"
      ],
      "response_prefix_fields": [
        "prefix",
        "timelines"
      ],
      "source": "RIPEstat"
    },
    "br_neighbours": [
      "AS22356",
      "AS263152",
      "AS263162",
      "AS271253",
      "AS271729"
    ],
    "country_source": "delegation",
    "display": {
      "neighbour_limit": 50
    },
    "external_irrd_mode": "missing",
    "irr_timing_summary": {
      "RADB/external-origin": {
        "avg_ms": 491.408,
        "cache": 0,
        "count": 2,
        "error": 0,
        "max_ms": 497.291,
        "ok": 2,
        "total_ms": 982.815
      },
      "TC,DELEGATED/local": {
        "avg_ms": 44.279,
        "cache": 0,
        "count": 2,
        "error": 0,
        "max_ms": 44.357,
        "ok": 2,
        "total_ms": 88.559
      },
      "TC,DELEGATED/local-aut-num": {
        "avg_ms": 44.305,
        "cache": 0,
        "count": 1,
        "error": 0,
        "max_ms": 44.305,
        "ok": 1,
        "total_ms": 44.305
      }
    },
    "irr_timings": [
      {
        "cache_lookup": {
          "key": "127.0.0.1:43|-s TC,DELEGATED -T aut-num AS274665",
          "state": "miss",
          "stored_at": null
        },
        "elapsed_ms": 44.305,
        "host": "127.0.0.1",
        "port": 43,
        "prefix": "AS274665",
        "request_finished_at": "2026-09-05T03:09:53Z",
        "request_started_at": "2026-09-05T03:09:53Z",
        "service": "irrd",
        "source": "TC,DELEGATED",
        "status": "ok",
        "target": "local-aut-num"
      },
      {
        "cache_lookup": {
          "key": "whois.radb.net:43|-s RADB -i origin AS274665 -T route",
          "state": "miss",
          "stored_at": null
        },
        "elapsed_ms": 485.524,
        "host": "whois.radb.net",
        "port": 43,
        "prefix": "AS274665",
        "request_finished_at": "2026-09-05T03:09:53Z",
        "request_started_at": "2026-09-05T03:09:53Z",
        "service": "irrd",
        "source": "RADB",
        "status": "ok",
        "target": "external-origin"
      },
      {
        "cache_lookup": {
          "key": "whois.radb.net:43|-s RADB -i origin AS274665 -T route6",
          "state": "miss",
          "stored_at": null
        },
        "elapsed_ms": 497.291,
        "host": "whois.radb.net",
        "port": 43,
        "prefix": "AS274665",
        "request_finished_at": "2026-09-05T03:09:54Z",
        "request_started_at": "2026-09-05T03:09:53Z",
        "service": "irrd",
        "source": "RADB",
        "status": "ok",
        "target": "external-origin"
      },
      {
        "cache_lookup": {
          "key": "127.0.0.1:43|-s TC,DELEGATED -T route 45.233.212.0/24",
          "state": "miss",
          "stored_at": null
        },
        "elapsed_ms": 44.357,
        "host": "127.0.0.1",
        "port": 43,
        "prefix": "45.233.212.0/24",
        "request_finished_at": "2026-09-05T03:09:54Z",
        "request_started_at": "2026-09-05T03:09:54Z",
        "service": "irrd",
        "source": "TC,DELEGATED",
        "status": "ok",
        "target": "local"
      },
      {
        "cache_lookup": {
          "key": "127.0.0.1:43|-s TC,DELEGATED -T route6 2804:91cc::/32",
          "state": "miss",
          "stored_at": null
        },
        "elapsed_ms": 44.202,
        "host": "127.0.0.1",
        "port": 43,
        "prefix": "2804:91cc::/32",
        "request_finished_at": "2026-09-05T03:09:54Z",
        "request_started_at": "2026-09-05T03:09:54Z",
        "service": "irrd",
        "source": "TC,DELEGATED",
        "status": "ok",
        "target": "local"
      }
    ],
    "irrd_cache_ttl_seconds": 86400,
    "metadata_source": "RIPEstat",
    "neighbour_count": 8,
    "neighbour_name_provenance": {
      "available_neighbour_count": 8,
      "cache_lookup": "file",
      "cache_path": "/var/cache/tc-analysis/cycles/20260904T111626Z-1a0b53e-1afca3/inputs/asn-names/asn.txt",
      "collection_error": null,
      "context_only": true,
      "dataset": "asn.txt",
      "missing_neighbour_name_count": 0,
      "named_neighbour_count": 8,
      "resource_scope": "BGP neighbours observed by asn-neighbours",
      "source": "RIPE NCC ASN names",
      "source_fetched_at": "2026-09-04T11:16:24Z",
      "source_last_modified": "Fri, 04 Sep 2026 10:49:00 GMT",
      "source_record_count": 122332,
      "source_sha256": "b5539b9ec1178d40df45be9a235b203a352caba247f08399ab5c3bd019c784de",
      "source_size_bytes": 6200194,
      "territoriality_authoritative": false,
      "url": "https://ftp.ripe.net/ripe/asnames/asn.txt"
    },
    "neighbour_names": {
      "AS1031": {
        "dataset": "asn.txt",
        "name": "PEER1-1031 - PEER 1031 LLC",
        "resource": "AS1031",
        "source": "RIPE NCC ASN names"
      },
      "AS199524": {
        "dataset": "asn.txt",
        "name": "GCORE G-Core Labs S.A.",
        "resource": "AS199524",
        "source": "RIPE NCC ASN names"
      },
      "AS22356": {
        "dataset": "asn.txt",
        "name": "Durand do Brasil Ltda",
        "resource": "AS22356",
        "source": "RIPE NCC ASN names"
      },
      "AS24961": {
        "dataset": "asn.txt",
        "name": "MYLOC-AS WIIT AG",
        "resource": "AS24961",
        "source": "RIPE NCC ASN names"
      },
      "AS263152": {
        "dataset": "asn.txt",
        "name": "MIGO TELECOM",
        "resource": "AS263152",
        "source": "RIPE NCC ASN names"
      },
      "AS263162": {
        "dataset": "asn.txt",
        "name": "Sustenta Telecom Ltda",
        "resource": "AS263162",
        "source": "RIPE NCC ASN names"
      },
      "AS271253": {
        "dataset": "asn.txt",
        "name": "LINK BRASIL TELECOMUNICACOES LTDA",
        "resource": "AS271253",
        "source": "RIPE NCC ASN names"
      },
      "AS271729": {
        "dataset": "asn.txt",
        "name": "Brasil Wifi LTDA - EPP",
        "resource": "AS271729",
        "source": "RIPE NCC ASN names"
      }
    },
    "neighbours_observation": {
      "accepted_neighbour_count": 8,
      "accepted_normalized_observation_count": 8,
      "accepted_observation_count": 8,
      "cache_configured": true,
      "cache_lookup": "miss",
      "cache_status": "ok",
      "cache_ttl_seconds": 21600,
      "collection_error": null,
      "collection_skipped": false,
      "conflicting_neighbours": [],
      "conflicting_neighbours_limit": 50,
      "conflicting_neighbours_truncated": false,
      "downstream_count": 2,
      "duplicate_neighbour_count": 0,
      "duplicate_observation_count": 0,
      "earliest_time": "2019-07-26T00:00:00Z",
      "endpoint": "asn-neighbours",
      "from_cache": false,
      "invalid_neighbour_count": 0,
      "latest_time": "2026-09-04T00:00:00Z",
      "left_neighbour_count": 4,
      "multi_position_neighbour_count": 0,
      "multi_position_neighbours": [],
      "neighbour_observation_details": [
        {
          "asn": "AS1031",
          "power": 55,
          "type": "left",
          "v4_peers": 83,
          "v6_peers": 0
        },
        {
          "asn": "AS22356",
          "power": 5,
          "type": "left",
          "v4_peers": 5,
          "v6_peers": 0
        },
        {
          "asn": "AS24961",
          "power": 4,
          "type": "left",
          "v4_peers": 4,
          "v6_peers": 0
        },
        {
          "asn": "AS271253",
          "power": 857,
          "type": "left",
          "v4_peers": 633,
          "v6_peers": 681
        },
        {
          "asn": "AS263162",
          "power": 20,
          "type": "right",
          "v4_peers": 50,
          "v6_peers": 0
        },
        {
          "asn": "AS271729",
          "power": 452,
          "type": "right",
          "v4_peers": 343,
          "v6_peers": 340
        },
        {
          "asn": "AS199524",
          "power": 2,
          "type": "uncertain",
          "v4_peers": 2,
          "v6_peers": 0
        },
        {
          "asn": "AS263152",
          "power": 2,
          "type": "uncertain",
          "v4_peers": 2,
          "v6_peers": 0
        }
      ],
      "normalization_applied": true,
      "partial_response": false,
      "peer_count": 2,
      "peers_sample_limit": 50,
      "query_endtime": "2026-09-04T00:00:00Z",
      "query_parameters": {
        "resource": "AS274665",
        "sourceapp": "tc-irr-analysis"
      },
      "query_starttime": "2026-09-04T00:00:00Z",
      "request_finished_at": "2026-09-05T03:09:53Z",
      "request_started_at": "2026-09-05T03:09:52Z",
      "resource": "AS274665",
      "response_data_fields": [
        "earliest_time",
        "latest_time",
        "neighbour_counts",
        "neighbours",
        "query_endtime",
        "query_starttime",
        "resource"
      ],
      "response_neighbour_count": 8,
      "response_neighbour_fields": [
        "asn",
        "power",
        "type",
        "v4_peers",
        "v6_peers"
      ],
      "right_neighbour_count": 2,
      "source": "RIPEstat",
      "source_neighbour_counts": {
        "left": 4,
        "right": 2,
        "uncertain": 2,
        "unique": 8
      },
      "source_neighbour_counts_match_observations": true,
      "source_neighbour_counts_mismatch": false,
      "source_neighbour_counts_mismatch_details": [],
      "type_conflict_neighbour_count": 0,
      "uncertain_neighbour_count": 2,
      "unique_neighbour_count": 8,
      "unique_neighbour_position_count": 8,
      "upstream_count": 4
    },
    "nicbr_delegation_dataset_status": "collected",
    "peer_count": 2,
    "peers_sample": [
      "AS199524",
      "AS263152"
    ],
    "resource_registry_dataset_status": "collected",
    "ripestat_cache_ttl_seconds": 21600,
    "ripestat_timing_summary": {
      "as-overview": {
        "avg_ms": 679.965,
        "cache": 0,
        "count": 1,
        "error": 0,
        "max_ms": 679.965,
        "ok": 1,
        "total_ms": 679.965
      },
      "asn-neighbours": {
        "avg_ms": 634.75,
        "cache": 0,
        "count": 1,
        "error": 0,
        "max_ms": 634.75,
        "ok": 1,
        "total_ms": 634.75
      }
    },
    "ripestat_timings": [
      {
        "attempts": 1,
        "cache_lookup": {
          "key": "https://stat.ripe.net/data/as-overview/data.json?resource=AS274665&sourceapp=tc-irr-analysis",
          "state": "miss"
        },
        "elapsed_ms": 679.965,
        "endpoint": "as-overview",
        "query_parameters": {
          "resource": "AS274665",
          "sourceapp": "tc-irr-analysis"
        },
        "request_finished_at": "2026-09-05T03:09:52Z",
        "request_started_at": "2026-09-05T03:09:51Z",
        "service": "ripestat",
        "status": "ok"
      },
      {
        "attempts": 1,
        "cache_lookup": {
          "key": "https://stat.ripe.net/data/asn-neighbours/data.json?resource=AS274665&sourceapp=tc-irr-analysis",
          "state": "miss"
        },
        "elapsed_ms": 634.75,
        "endpoint": "asn-neighbours",
        "query_parameters": {
          "resource": "AS274665",
          "sourceapp": "tc-irr-analysis"
        },
        "request_finished_at": "2026-09-05T03:09:53Z",
        "request_started_at": "2026-09-05T03:09:52Z",
        "service": "ripestat",
        "status": "ok"
      }
    ],
    "rpki_cache_ttl_seconds": 86400,
    "rpki_reference_time": "2026-09-04T11:16:26Z",
    "rpki_reference_time_source": "explicit",
    "rpki_source": "local_vrp",
    "rpki_vrp_count": 92,
    "rpki_vrp_expired_count": 0,
    "rpki_vrp_filter_prefix_count": 2053,
    "rpki_vrp_input_count": 1000293,
    "source_neighbour_counts": {
      "left": 4,
      "right": 2,
      "uncertain": 2,
      "unique": 8
    },
    "tc_irr_registration": {
      "cache_lookup": "miss",
      "cache_status": "ok",
      "cache_stored_at": null,
      "collection_error": null,
      "from_cache": false,
      "matched_sources": [],
      "object_class": "aut-num",
      "query_attempted": true,
      "query_sources": [
        "TC",
        "DELEGATED"
      ],
      "query_target": "local-aut-num",
      "registered": false,
      "request_finished_at": "2026-09-05T03:09:53Z",
      "request_started_at": "2026-09-05T03:09:53Z",
      "resource": "AS274665",
      "source": "IRRd",
      "status": "not_registered",
      "tc_source_state": "not_found"
    },
    "uncertain_neighbours": [
      "AS199524",
      "AS263152"
    ]
  },
  "multi_position_neighbours": [],
  "name": null,
  "prefix_summary": {
    "analysis_scope": {
      "in_scope": 2
    },
    "delegation": {
      "invalid_origin": 1,
      "valid": 1
    },
    "irr": {
      "missing": 1,
      "proxy": 1
    },
    "national_statistics_eligible_prefix_count": 2,
    "prefix_count": 2,
    "rpki": {
      "not_found": 2
    },
    "score_eligible_prefix_count": 2,
    "severity": {
      "warning": 2
    },
    "tags": {
      "delegation:invalid_origin": 1,
      "delegation:valid": 1,
      "irr:missing": 1,
      "irr:proxy": 1,
      "rpki:not_found": 2
    },
    "technical_severity": {
      "warning": 2
    }
  },
  "right_neighbours": [
    "AS263162",
    "AS271729"
  ],
  "ruleset_version": 5,
  "schema_version": 2,
  "score_scope": {
    "denominator_reason": "resource_country_br",
    "excluded_non_br": 0,
    "in_scope_brazilian_prefixes": 2,
    "national_statistics_eligible_prefixes": 2,
    "observed_prefixes": 2,
    "out_of_scope_prefixes": 0,
    "score_denominator": 2,
    "score_eligible_prefixes": 2,
    "unknown_scope": 0,
    "unknown_scope_prefixes": 0
  },
  "tool_version": "0.3.0",
  "uncertain_neighbours": [
    "AS199524",
    "AS263152"
  ],
  "universe_sha256": "9ad1fc250cc8252738261bbede78b196dab6ba30fdc26ea3017c1872fa90abc3",
  "upstreams": [
    "AS1031",
    "AS22356",
    "AS24961",
    "AS271253"
  ]
}
