CoolFace
Datasetpublic

wayslab/llm-network-study-data

LLM-Network-Study-Data Per-request network captures (.pcapng) collected by the LLM-Network-Study benchmark harness (benchmark.py and the per-workload test scripts). Each directory holds one capture file per request, named request_<id>_run<n>_<timestamp>.pcapng. A directory name encodes four dimensions: <capture-env>_<provider/model>_<workload>[_<dataset/variant>]_results Dimension legend Dimension Values Meaning Capture env ethernet Wired connection to… See the full description on the dataset page: https://huggingface.co/datasets/wayslab/llm-network-study-data.

sourceHugging Facecc-by-4.0updated 25d agoView on Hugging Face
0likes29kdownloads
Dataset Card

LLM-Network-Study-Data

Per-request network captures (.pcapng) collected by the LLM-Network-Study benchmark harness (benchmark.py and the per-workload test scripts). Each directory holds one capture file per request, named request_<id>_run<n>_<timestamp>.pcapng.

A directory name encodes four dimensions:

<capture-env>_<provider/model>_<workload>[_<dataset/variant>]_results

Dimension legend

DimensionValuesMeaning
Capture envethernetWired connection to the cloud API.
mobile_tetheredPhone-tethered cellular link (phone as modem).
mobile_untetheredCapture on the mobile device itself over cellular.
localSelf-hosted model; traffic split into client and server side captures.
Providerdirect (claude_*, openai_gpt_*, gpt_image_1)Native vendor API (Anthropic / OpenAI).
openrouter_*Same model routed through OpenRouter.
siliconflow_*SiliconFlow inference provider.
Workloadbfcl_*Function-calling prompts from the BFCL v4 dataset (see below).
image_to_textVision captioning of DiffusionDB images.
text_to_imageImage generation from DiffusionDB prompts.
text_to_textPlain text generation (local models).
video_downloadBaseline (non-LLM) video download for comparison.
Variantdiffusiondb_{100,405,2k}Sample size drawn from the DiffusionDB dataset.
gen1 / gen2Repeated capture batches of the same config.
unblockedRun without rate-limiting/throttling.
streamed / streamStreaming run. Inconsistently applied — see Streaming vs non-streaming below; use metadata.csv, not the name.

BFCL workloads come from the Berkeley Function-Calling Leaderboard v4 categories: simple_python (single function call), parallel (multiple calls from one prompt), live_multiple (real-world prompt, pick among many tools), and live_parallel_multiple (real-world prompt, multiple parallel calls among many tools).

Streaming vs non-streaming

Do not infer this from the directory name. Use metadata.csv at the repo root, which carries an explicit streaming column for every one of the 61 capture directories:

python
import pandas as pd
meta = pd.read_csv("metadata.csv")
streamed = meta[meta.streaming == "true"].directory
`streaming`DirsMeaning
true33Response was delivered incrementally (SSE / chunked token stream).
false25Whole response body delivered in one shot.
n/a3Non-LLM baseline (video); API streaming does not apply.

Every row also carries streaming_evidence, naming the harness and code path the label came from, so the classification is auditable rather than asserted.

Why the directory name is not reliable

The name encodes streaming inconsistently, in four spellings and positions (_streamed_, _stream_, streamingbfcl, and none at all). Two traps in particular:

  • *The 16 `openrouter_ directories are streaming but carry no stream token.** openroutertesting/benchmark.py` sets `stream=True` unconditionally in `runopenrouter_request()`. A name-based filter misses all 16.
  • *`ethernet_baseline_video_stream` is not a streaming LLM run.* It is YouTube video streaming — a workload, not a delivery mode. A grep stream over directory names picks it up wrongly.

Measured columns

measured_median_downlink_gap_ms and measured_frac_gaps_over_5ms are observed from the pcaps (median over ~8 mid-size captures per directory): the inter-arrival gap between downlink payload packets from the server.

These are supporting evidence, not the definition of the label. They separate token streaming cleanly (a slow model such as nemotron_3_super_120b shows ~420 ms gaps; non-streamed bulk delivery shows sub-millisecond gaps), but two confounders make them unusable as a standalone classifier:

  • Image generation. A streamed text_to_image run delivers large partial-image chunks at line rate, so it looks like bulk transfer (~0.1 ms gaps) despite streaming.
  • Link RTT. Mobile and tethered captures inflate gaps independently of streaming.

The column is blank for 16 directories whose captures have fewer than 10 downlink payload packets — too small to measure, which is itself consistent with a single non-streamed response body.

Datasets

DirectoryCapture envModel / ProviderWorkload
ethernet_claude_opus_4_6_bfcl_live_multiple_resultsethernetClaude Opus 4.6 (Anthropic)BFCL live_multiple
ethernet_claude_opus_4_6_bfcl_live_parallel_multiple_resultsethernetClaude Opus 4.6 (Anthropic)BFCL liveparallelmultiple
ethernet_claude_opus_4_6_bfcl_parallel_resultsethernetClaude Opus 4.6 (Anthropic)BFCL parallel
ethernet_claude_opus_4_6_bfcl_simple_python_resultsethernetClaude Opus 4.6 (Anthropic)BFCL simple_python
ethernet_gpt_5_4_image_to_text_diffusiondbethernetGPT-5.4 (OpenAI)Image-to-text (DiffusionDB)
ethernet_gpt_image_1_text_to_image_diffusiondb_100_resultsethernetgpt-image-1 (OpenAI)Text-to-image (DiffusionDB, 100)
ethernet_gpt_image_1_text_to_image_diffusiondb_2k_unblocked_resultsethernetgpt-image-1 (OpenAI)Text-to-image (DiffusionDB, 2k, unblocked)
ethernet_openai_gpt_5_4_bfcl_live_multiple_resultsethernetGPT-5.4 (OpenAI direct)BFCL live_multiple
ethernet_openai_gpt_5_4_bfcl_live_parallel_multiple_resultsethernetGPT-5.4 (OpenAI direct)BFCL liveparallelmultiple
ethernet_openai_gpt_5_4_bfcl_parallel_resultsethernetGPT-5.4 (OpenAI direct)BFCL parallel
ethernet_openai_gpt_5_4_bfcl_simple_python_resultsethernetGPT-5.4 (OpenAI direct)BFCL simple_python
ethernet_openrouter_claude_sonnet_4_6_gen1_bfcl_live_multiple_resultsethernetClaude Sonnet 4.6 (OpenRouter)BFCL live_multiple (batch 1)
ethernet_openrouter_claude_sonnet_4_6_gen1_bfcl_live_parallel_multiple_resultsethernetClaude Sonnet 4.6 (OpenRouter)BFCL liveparallelmultiple (batch 1)
ethernet_openrouter_claude_sonnet_4_6_gen1_bfcl_parallel_resultsethernetClaude Sonnet 4.6 (OpenRouter)BFCL parallel (batch 1)
ethernet_openrouter_claude_sonnet_4_6_gen1_bfcl_simple_python_resultsethernetClaude Sonnet 4.6 (OpenRouter)BFCL simple_python (batch 1)
ethernet_openrouter_claude_sonnet_4_6_gen2_bfcl_live_multiple_resultsethernetClaude Sonnet 4.6 (OpenRouter)BFCL live_multiple (batch 2)
ethernet_openrouter_claude_sonnet_4_6_gen2_bfcl_live_parallel_multiple_resultsethernetClaude Sonnet 4.6 (OpenRouter)BFCL liveparallelmultiple (batch 2)
ethernet_openrouter_claude_sonnet_4_6_gen2_bfcl_parallel_resultsethernetClaude Sonnet 4.6 (OpenRouter)BFCL parallel (batch 2)
ethernet_openrouter_claude_sonnet_4_6_gen2_bfcl_simple_python_resultsethernetClaude Sonnet 4.6 (OpenRouter)BFCL simple_python (batch 2)
ethernet_openrouter_gemini_3_1_pro_bfcl_live_multiple_resultsethernetGemini 3.1 Pro (OpenRouter)BFCL live_multiple
ethernet_openrouter_gemini_3_1_pro_bfcl_live_parallel_multiple_resultsethernetGemini 3.1 Pro (OpenRouter)BFCL liveparallelmultiple
ethernet_openrouter_gemini_3_1_pro_bfcl_parallel_resultsethernetGemini 3.1 Pro (OpenRouter)BFCL parallel
ethernet_openrouter_gemini_3_1_pro_bfcl_simple_python_resultsethernetGemini 3.1 Pro (OpenRouter)BFCL simple_python
ethernet_openrouter_gpt_5_4_bfcl_live_multiple_resultsethernetGPT-5.4 (OpenRouter)BFCL live_multiple
ethernet_openrouter_gpt_5_4_bfcl_live_parallel_multiple_resultsethernetGPT-5.4 (OpenRouter)BFCL liveparallelmultiple
ethernet_openrouter_gpt_5_4_bfcl_parallel_resultsethernetGPT-5.4 (OpenRouter)BFCL parallel
ethernet_openrouter_gpt_5_4_bfcl_simple_python_resultsethernetGPT-5.4 (OpenRouter)BFCL simple_python
ethernet_openrouter_nemotron_3_super_120b_bfcl_live_multiple_resultsethernetNemotron 3 Super 120B (OpenRouter)BFCL live_multiple
ethernet_openrouter_nemotron_3_super_120b_bfcl_parallel_resultsethernetNemotron 3 Super 120B (OpenRouter)BFCL parallel
ethernet_openrouter_nemotron_3_super_120b_bfcl_simple_python_resultsethernetNemotron 3 Super 120B (OpenRouter)BFCL simple_python
ethernet_siliconflow_image_to_text_resultsethernetSiliconFlow VLMImage-to-text (DiffusionDB)
ethernet_siliconflow_text_to_image_diffusiondb_405_resultsethernetSiliconFlow image modelText-to-image (DiffusionDB, 405)
ethernet_siliconflow_text_to_text_bfcl_parallel_resultsethernetSiliconFlow LLMBFCL parallel (text)
ethernet_video_download_resultsethernet— (baseline)Video download baseline
local_image_to_text_client_resultslocal (client side)Self-hosted VLMImage-to-text (DiffusionDB)
local_image_to_text_server_resultslocal (server side)Self-hosted VLMImage-to-text (DiffusionDB)
local_text_to_image_diffusiondb_client_resultslocal (client side)Self-hosted image modelText-to-image (DiffusionDB)
local_text_to_image_diffusiondb_server_resultslocal (server side)Self-hosted image modelText-to-image (DiffusionDB)
local_text_to_text_bfcl_parallel_client_resultslocal (client side)Self-hosted LLMBFCL parallel (text)
local_text_to_text_bfcl_parallel_server_resultslocal (server side)Self-hosted LLMBFCL parallel (text)
mobile_tethered_gpt_5_4_image_to_text_resultsmobile, tetheredGPT-5.4 (OpenAI)Image-to-text (DiffusionDB)
mobile_tethered_gpt_image_1_text_to_image_diffusiondb_405_unblocked_resultsmobile, tetheredgpt-image-1 (OpenAI)Text-to-image (DiffusionDB, 405, unblocked)
mobile_tethered_openai_gpt_5_4_bfcl_parallel_resultsmobile, tetheredGPT-5.4 (OpenAI)BFCL parallel
mobile_untethered_gpt_5_4_image_to_text_diffusiondb_100_resultsmobile, untetheredGPT-5.4 (OpenAI)Image-to-text (DiffusionDB, 100)
mobile_untethered_openai_gpt_5_4_bfcl_parallel_resultsmobile, untetheredGPT-5.4 (OpenAI)BFCL parallel

Backup

These directories are mirrored to Box at RPI WAYS LAB/LLM/Result Pcaps/LLM-Network-Study-Data via rclone (rclone copy . "box:RPI WAYS LAB/LLM/Result Pcaps/LLM-Network-Study-Data").

wayslab/llm-network-study-data · CoolFace