Variables in simulator

February 13, 2026 ยท View on GitHub

Following table describes variables that will return tentative values, but you can override these values by configuration or cli arguments for testing.

Override by Configuration

Put override configuration in testing.overrides section as map.

...
testing:
    overrides:
      client.class.checker: true
      client.as.name: "overridden"
...

CLI

Provide -o, --override option on the CLI command, accepts multiple options.

falco test /path/to/main.vcl -o "client.class.checker=true" -o "client.as.name=overridden"
VariableTentative Value
bereq.is_clusteringfalse
client.class.checkerfalse
client.class.downloaderfalse
client.class.feedreaderfalse
client.class.filterfalse
client.class.masqueradingfalse
client.platform.mediaplayerfalse
client.geo.latitude37.7786941
client.geo.longitude-122.3981452
client.as.number4294967294
client.as.name"Reserved"
client.display.height-1
client.display.ppi-1
client.display.width-1
client.geo.area_code0
client.geo.metro_code0
client.geo.utc_offset0
client.identifiedfalse
client.ip192.0.2.1 (testing/console only)
client.requests1
req.vcl.generation1
req.vcl.version1
workspace.bytes_free125008
workspace.bytes_total139392
workspace.overflowedfalse
beresp.backend.src_ip127.0.0.1
client.geo.city"unknown"
client.geo.city.ascii"unknown"
client.geo.city.latin1"unknown"
client.geo.city.utf8"unknown"
client.geo.conn.speed"unknown"
client.geo.conn.type"unknown"
client.geo.continent_code"unknown"
client.geo.country_code"unknown"
client.geo.country_code3"unknown"
client.geo.country_name"unknown"
client.geo.country_name.ascii"unknown"
client.geo.country_name.latin1"unknown"
client.geo.country_name.utf8"unknown"
client.geo.ip_override"unknown"
client.geo.postal_code"unknown"
client.geo.proxy_description"unknown"
client.geo.proxy_type"unknown"
client.geo.region"unknown"
client.geo.region.ascii"unknown"
client.geo.region.latin1"unknown"
client.geo.region.utf8"unknown"
client.platform.hwtype(empty string)
server.datacenter"FALCO"
server.hostname"cache-localsimulator"
server.identity"cache-localsimulator"
server.region"US"
bereq.bytes_written0
client.socket.cwnd60
client.socket.nexthop127.0.0.1
client.socket.pace0
client.socket.ploss0
client.socket.cwnd60
fastly_info.is_cluster_edgefalse
obj.is_pcifalse
req.backend.is_clusterfalse
resp.is_locally_generatedfalse
req.digest.ratio0.4
obj.stale_white_revalidate60s
backend.socket.congestion_algorithm"cubic"
backend.socket.cwnd60
backend.socket.tcpi_advmss0
backend.socket.tcpi_bytes_acked0
backend.socket.tcpi_bytes_received0
backend.socket.tcpi_data_segs_in0
backend.socket.tcpi_data_segs_out0
backend.socket.tcpi_delivery_rate0
backend.socket.tcpi_delta_retrans0
backend.socket.tcpi_last_data_sent0
backend.socket.tcpi_max_pacing_rate0
backend.socket.tcpi_min_rtt0
backend.socket.tcpi_notsent_bytes0
backend.socket.tcpi_pacing_rate0
backend.socket.tcpi_pmtu0
backend.socket.tcpi_rcv_mss0
backend.socket.tcpi_rcv_rtt0
backend.socket.tcpi_rcv_space0
backend.socket.tcpi_rcv_ssthresh0
backend.socket.tcpi_reordering0
backend.socket.tcpi_rtt0
backend.socket.tcpi_rttvar0
backend.socket.tcpi_segs_in0
backend.socket.tcpi_segs_out0
backend.socket.tcpi_snd_cwnd0
backend.socket.tcpi_snd_mss0
backend.socket.tcpi_snd_ssthresh0
backend.socket.tcpi_total_retrans0
backend.{name}.connections_open0
backend.{name}.connections_used0
backend.{name}.healthytrue
beresp.backend.alternate_ips(empty string)
beresp.backend.ip0
beresp.backend.requests1
client.socket.tcpi_snd_cwnd0
fastly_info.is_cluster_shieldfalse
req.backend.is_origintrue
quic.cc.cwnd0
quic.cc.ssthresh0
quic.num_bytes.received0
quic.num_bytes.sent0
quic.num_packets.ack_received0
quic.num_packets.decryption_failed0
quic.num_packets.late_acked0
quic.num_packets.lost0
quic.num_packets.received0
quic.num_packets.sent0
quic.rtt.latest0
quic.rtt.minimum0
quic.rtt.smoothed0
quic.rtt.variance0
client.socket.tcpi_advmss0
client.socket.tcpi_bytes_acked0
client.socket.tcpi_bytes_received0
client.socket.tcpi_data_segs_in0
client.socket.tcpi_data_segs_out0
client.socket.tcpi_delivery_rate0
client.socket.tcpi_delta_retrans0
client.socket.tcpi_last_data_sent0
client.socket.tcpi_max_pacing_rate0
client.socket.tcpi_min_rtt0
client.socket.tcpi_notsent_bytes0
client.socket.tcpi_pacing_rate0
client.socket.tcpi_pmtu0
client.socket.tcpi_rcv_mss0
client.socket.tcpi_rcv_rtt0
client.socket.tcpi_rcv_space0
client.socket.tcpi_rcv_ssthresh0
client.socket.tcpi_reordering0
client.socket.tcpi_rtt0
client.socket.tcpi_rttvar0
client.socket.tcpi_segs_in0
client.socket.tcpi_segs_out0
client.socket.tcpi_snd_cwnd0
client.socket.tcpi_snd_mss0
client.socket.tcpi_snd_ssthresh0
client.socket.tcpi_total_retrans0
tls.client.ciphers_list_sha"JZtiTn8H/ntxORk+XXvU2EvNoz8="
tls.client.ciphers_list(Describe after the table)
tls.client.ciphers_list_txt(Describe after the table)
tls.client.ciphers_sha"+7dB1w3Ov9S4Ct3HG3Qed68pSko="
tls.client.handshake_sent_bytes4759
tls.client.iana_chosen_cipher_id49919
tls.client.ja3_md5"582a3b42ab84f78a5b376b1e29d6d367"
tls.client.tlsexts_list(empty string)
tls.client.tlsexts_list_sha(empty string)
tls.client.tlsexts_list_txt(empty string)
tls.client.tlsexts_sha(empty string)
tls.client.certificate.dn(empty string)
tls.client.certificate.is_cert_badfalse
tls.client.certificate.is_cert_expiredfalse
tls.client.certificate.is_cert_missingfalse
tls.client.certificate.is_cert_revokedfalse
tls.client.certificate.is_cert_unknownfalse
tls.client.certificate.is_unknown_cafalse
tls.client.certificate.is_verifiedtrue
tls.client.certificate.issuer_dn(empty string)
tls.client.certificate.not_afterAlways 1 day before
tls.client.certificate.not_beforeAlways 1 year after
tls.client.certificate.raw_certificate_b64(empty string)
tls.client.certificate.serial_number(empty string)
transport.bw_estimate0
transport.type"tcp"
waf.failures0
waf.php_injection_score0
waf.rce_score0
fastly.is_stagingfalse
beresp.backend.src_port0
fastly.ddos_detectedfalse

tls.client.ciphers_list value is too long to fit the above table so we write the value following:

"130213031301C02FC02BC030C02C009EC0270067C028006B00A3009FCCA9CCA8CCAAC0AFC0ADC0A3C09FC05DC061C057C05300A2C0AEC0ACC0A2C09EC05CC060C056C052C024006AC0230040C00AC01400390038C009C01300330032009DC0A1C09DC051009CC0A0C09CC050003D003C0035002F00FF"

tls.client.ciphers_list_txt value is too long to fit the above table so we write the value following:

"TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:TLS_DHE_RSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256:TLS_DHE_RSA_WITH_AES_128_CBC_SHA256:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384:TLS_DHE_RSA_WITH_AES_256_CBC_SHA256:TLS_DHE_DSS_WITH_AES_256_GCM_SHA384:TLS_DHE_RSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256:TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256:TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8:TLS_ECDHE_ECDSA_WITH_AES_256_CCM:TLS_DHE_RSA_WITH_AES_256_CCM_8:TLS_DHE_RSA_WITH_AES_256_CCM:TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384:TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384:TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384:TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384:TLS_DHE_DSS_WITH_AES_128_GCM_SHA256:TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8:TLS_ECDHE_ECDSA_WITH_AES_128_CCM:TLS_DHE_RSA_WITH_AES_128_CCM_8:TLS_DHE_RSA_WITH_AES_128_CCM:TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256:TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256:TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256:TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384:TLS_DHE_DSS_WITH_AES_256_CBC_SHA256:TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256:TLS_DHE_DSS_WITH_AES_128_CBC_SHA256:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA:TLS_DHE_RSA_WITH_AES_256_CBC_SHA:TLS_DHE_DSS_WITH_AES_256_CBC_SHA:TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:TLS_DHE_RSA_WITH_AES_128_CBC_SHA:TLS_DHE_DSS_WITH_AES_128_CBC_SHA:TLS_RSA_WITH_AES_256_GCM_SHA384:TLS_RSA_WITH_AES_256_CCM_8:TLS_RSA_WITH_AES_256_CCM:TLS_RSA_WITH_ARIA_256_GCM_SHA384:TLS_RSA_WITH_AES_128_GCM_SHA256:TLS_RSA_WITH_AES_128_CCM_8:TLS_RSA_WITH_AES_128_CCM:TLS_RSA_WITH_ARIA_128_GCM_SHA256:TLS_RSA_WITH_AES_256_CBC_SHA256:TLS_RSA_WITH_AES_128_CBC_SHA256:TLS_RSA_WITH_AES_256_CBC_SHA:TLS_RSA_WITH_AES_128_CBC_SHA:TLS_EMPTY_RENEGOTIATION_INFO_SCSV"


These values will be updated when we find or implement a way to get accurate values.