Add new SentenceTransformer model
Browse files- 1_Pooling/config.json +10 -0
- README.md +2016 -0
- config.json +26 -0
- config_sentence_transformers.json +10 -0
- model.safetensors +3 -0
- modules.json +20 -0
- sentence_bert_config.json +4 -0
- special_tokens_map.json +37 -0
- tokenizer.json +0 -0
- tokenizer_config.json +65 -0
- vocab.txt +0 -0
1_Pooling/config.json
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"word_embedding_dimension": 384,
|
3 |
+
"pooling_mode_cls_token": false,
|
4 |
+
"pooling_mode_mean_tokens": true,
|
5 |
+
"pooling_mode_max_tokens": false,
|
6 |
+
"pooling_mode_mean_sqrt_len_tokens": false,
|
7 |
+
"pooling_mode_weightedmean_tokens": false,
|
8 |
+
"pooling_mode_lasttoken": false,
|
9 |
+
"include_prompt": true
|
10 |
+
}
|
README.md
ADDED
@@ -0,0 +1,2016 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
tags:
|
3 |
+
- sentence-transformers
|
4 |
+
- sentence-similarity
|
5 |
+
- feature-extraction
|
6 |
+
- generated_from_trainer
|
7 |
+
- dataset_size:23200
|
8 |
+
- loss:MultipleNegativesRankingLoss
|
9 |
+
base_model: sentence-transformers/all-MiniLM-L6-v2
|
10 |
+
widget:
|
11 |
+
- source_sentence: 'query: Why is historical data important for an AS when deciding
|
12 |
+
which SegRs to request?'
|
13 |
+
sentences:
|
14 |
+
- "passage:\n<citation> Laurent Chuat et al.. *The Complete Guide to SCION. From\
|
15 |
+
\ Design Principles to Formal Verification*. Springer International Publishing\
|
16 |
+
\ AG, 2022. </citation>\n<type> book </type>\n<page> 264 </page>\n<content>\n\
|
17 |
+
10 Extensions for the Data Plane\nAS X\n AS YAS S AS Z\nC\nSegR Y-Z\n1 2\n33 C\
|
18 |
+
\ C4 C\n2\n(a) Segment reservation setup.\nAS X\n AS YAS S AS Z\nC\nSegR Y-Z\n\
|
19 |
+
3 3\n44\nG SegR S-Y\nC\n3\n4 C\n352\n1 C\n(b) End-to-end reservation setup.\n\
|
20 |
+
AS X\n AS YAS S AS Z\n3\n4\n3 3\n4 4\n2\n1 G M M M\nBorder Router\n(c) Use of\
|
21 |
+
\ the end-to-end reservation.\nFigure 10.4: Overview of the COLIBRI system. C\
|
22 |
+
\ are CServs, G is the\nCOLIBRI gateway, the yellow-orange circles are border\
|
23 |
+
\ routers,\nand M are traffic monitors. A description is provided in Sec-\ntions\
|
24 |
+
\ 10.2.3.3 and 10.2.3.4.\nSegRs are always initiated by the first AS on the segment.\
|
25 |
+
\ For down-SegRs,\nthe first AS only sets up a SegR upon an explicit request by\
|
26 |
+
\ the last AS.\nAn AS can decide which SegRs to request based on historical data\
|
27 |
+
\ or traf-\nfic predictions. It selects segments generated by the SCION control\
|
28 |
+
\ plane and\nsends a SegR request ( 1 in Figure 10.4a) specifying requirements\
|
29 |
+
\ for the reser-\nvation such as requested minimum bandwidth. Each AS on the segment\
|
30 |
+
\ can\ncalculate how much bandwidth can be granted; if this is higher than the\
|
31 |
+
\ re-\nquested minimum, it records this reservation locally. It then updates the\
|
32 |
+
\ re-\nquest with the granted amount of bandwidth and forwards it to the next\
|
33 |
+
\ AS\non the segment ( 2 in Figure 10.4a). The last AS sends a reply via the same\n\
|
34 |
+
segment to the request initiator ( 3 in Figure 10.4a).\nIf the request was successful\
|
35 |
+
\ (each AS granted more than the minimum\namount of bandwidth), each AS locally\
|
36 |
+
\ stores the final amount of bandwidth\ngranted and includes a cryptographic token\
|
37 |
+
\ in the response that allows the re-\nquest initiator to use the segment for\
|
38 |
+
\ COLIBRI traffic ( 4 in Figure 10.4a; see\n§10.2.4.6 for details). In case of\
|
39 |
+
\ an unsuccessful request, the ASes clean up\ntheir temporary reservations and\
|
40 |
+
\ the initiator can determine the location of po-\n244\n</content>"
|
41 |
+
- "passage:\n<url> https://github.com/netsec-ethz/scion-apps/blob/master/webapp/README.md\
|
42 |
+
\ </url>\n<type> code </type>\n<content>\nWebapp AS Visualization\n=========================\n\
|
43 |
+
\nMore installation and usage information is available on the [SCION Tutorials\
|
44 |
+
\ web page for webapp](https://netsec-ethz.github.io/scion-tutorials/as_visualization/webapp/).\n\
|
45 |
+
\n# Webapp\nWebapp is a Go application that will serve up a static web portal\
|
46 |
+
\ to make it easy to visualize and experiment with SCIONLab test apps on a virtual\
|
47 |
+
\ machine.\n\n\n## Packaged Setup/Run\nFor running `webapp` in a packaged environment,\
|
48 |
+
\ like the default [SCIONLab](https://www.scionlab.org) environment, it now uses\
|
49 |
+
\ command-line options for `webapp` to find the tools it requires.\n\nTo install\
|
50 |
+
\ from our packages, install `webapp` including its `scion-apps` dependencies:\n\
|
51 |
+
```shell\nsudo apt install scion-apps-webapp\n```\nAlternatively, the following\
|
52 |
+
\ will install all `scion-apps` binaries:\n```shell\nsudo apt install scion-apps-*\n\
|
53 |
+
```\n\nStart the `webapp` service:\n```shell\nsudo systemctl start scion-webapp\n\
|
54 |
+
```\n\nEnsure the `webapp` service is running:\n```shell\nsudo systemctl status\
|
55 |
+
\ scion-webapp\n```\n\nNow, open a web browser at [http://127.0.0.1:8000](http://127.0.0.1:8000),\
|
56 |
+
\ to begin.\n\nLogs from `webapp` can be monitored:\n```shell\njournalctl -u scion-webapp\
|
57 |
+
\ -e\n```\n\nYou won't need to add all the parameters yourself as the `scion-webapp.service`\
|
58 |
+
\ will do this for you. You may view the service command line options used with\
|
59 |
+
\ `cat`:\n```shell\nsystemctl cat scion-webapp\n```\n\n\n## Development Setup/Run\n\
|
60 |
+
For maintenance of `webapp` details of its structure and operation can be found\
|
61 |
+
\ at [development.md](./development.md).\n\nFor running `webapp` in a development\
|
62 |
+
\ environment for the SCION Infrastructure, follow the SCIONLab development install\
|
63 |
+
\ and run process at [https://github.com/netsec-ethz/scion](https://github.com/netsec-ethz/netsec-scion).\n\
|
64 |
+
\nThen, follow these steps to install SCIONLab Apps to run `webapp` in development.\n\
|
65 |
+
\nDevelopment Install:\n```shell\nmkdir ~/go/src/github.com/netsec-ethz\ncd ~/go/src/github.com/netsec-ethz\n\
|
66 |
+
git clone https://github.com/netsec-ethz/scion-apps.git\n```\n\nDevelopment Build:\n\
|
67 |
+
Install all [SCIONLab apps](https://github.com/netsec-ethz/scion-apps) and dependencies,\
|
68 |
+
\ including `webapp`:\n```shell\ncd scion-apps\n./deps.sh\nmake build\n```\n\n\
|
69 |
+
Development Run on ScionLab Topology:\nYou can alter the defaults on the command\
|
70 |
+
\ line, all of which are listed below:\n```shell\n./bin/scion-webapp \\\n-a 127.0.0.1\
|
71 |
+
\ \\\n-p 8000 \\\n-r $GOPATH/src/github.com/netsec-ethz/scion-apps/webapp/web/data\
|
72 |
+
\ \\\n-srvroot $GOPATH/src/github.com/netsec-ethz/scion-apps/webapp/web \\\n-sgen\
|
73 |
+
\ /etc/scion \\\n-sgenc /var/lib/scion \n```\nor can you run `webapp` like this,\
|
74 |
+
\ which will use the defaults above:\n```shell\n./bin/scion-webapp\n```\n\nDevelopment\
|
75 |
+
\ Run on Local Topology:\n```shell\n./bin/scion-webapp \\\n-a 127.0.0.1 \\\n-p\
|
76 |
+
\ 8080 \\\n-r $GOPATH/src/github.com/netsec-ethz/scion-apps/webapp/web/data \\\
|
77 |
+
\n-srvroot $GOPATH/src/github.com/netsec-ethz/scion-apps/webapp/web \\\n-sgen\
|
78 |
+
\ $HOME/scion/gen \\\n-sgenc $HOME/scion/gen-cache\n```\n\n## Dependencies\n\
|
79 |
+
A list of dependencies for `webapp` can be found at [dependencies.md](./dependencies.md).\n\
|
80 |
+
\n## Help\n```shell\nUsage of webapp:\n -a string\n Address of server\
|
81 |
+
\ host. (default \"127.0.0.1\")\n -p int\n Port of server host. (default\
|
82 |
+
\ 8000)\n -r string\n Root path to read/browse from, CAUTION: read-access\
|
83 |
+
\ granted from -a and -p. (default \"$GOPATH/src/github.com/netsec-ethz/scion-apps/webapp\
|
84 |
+
\ /web/data\")\n -sgen string\n Path to read SCION gen directory of infrastructure\
|
85 |
+
\ config (default \"/etc/scion\")\n -sgenc string\n Path to read SCION\
|
86 |
+
\ gen-cache directory of infrastructure run-time config (default \"/var/lib/scion\"\
|
87 |
+
)\n -srvroot string\n Path to read/write web server files. (default \"\
|
88 |
+
$GOPATH/src/github.com/netsec-ethz/scion-apps/webapp/web\")\n```\n\n## Related\
|
89 |
+
\ Links\n* [Webapp SCIONLab AS Visualization Tutorials](https://netsec-ethz.github.io/scion-tutorials/as_visualization/webapp/)\n\
|
90 |
+
* [Webapp SCIONLab Apps Visualization](https://netsec-ethz.github.io/scion-tutorials/as_visualization/webapp_apps/)\n\
|
91 |
+
* [Webapp Development Tips](https://netsec-ethz.github.io/scion-tutorials/as_visualization/webapp_development/)\n\
|
92 |
+
\n</content>"
|
93 |
+
- 'passage:
|
94 |
+
|
95 |
+
<citation> Laurent Chuat et al.. *The Complete Guide to SCION. From Design Principles
|
96 |
+
to Formal Verification*. Springer International Publishing AG, 2022. </citation>
|
97 |
+
|
98 |
+
<type> book </type>
|
99 |
+
|
100 |
+
<page> 455 </page>
|
101 |
+
|
102 |
+
<content>
|
103 |
+
|
104 |
+
19.1 Background
|
105 |
+
|
106 |
+
DNSSEC was proposed to address this very problem. In brief, it allows a
|
107 |
+
|
108 |
+
zone to sign its DNS records and have the signing key endorsed by the parent
|
109 |
+
|
110 |
+
zone, thus creating an authentication chain all the way up to the root zone. A
|
111 |
+
|
112 |
+
signed record can be verified by following the chain terminated at a trust an-
|
113 |
+
|
114 |
+
chor (which in most cases is the root zone key) configured by the validating
|
115 |
+
|
116 |
+
entity. This eliminates threats of data tampering and forgery that originate out-
|
117 |
+
|
118 |
+
side zone authorities.
|
119 |
+
|
120 |
+
In general, end-to-end authenticity is achievable only by having zone author-
|
121 |
+
|
122 |
+
ities themselves secure the zone data with publicly verifiable authenticators.
|
123 |
+
|
124 |
+
One may attempt a similar assurance by establishing hop-by-hop secure (in
|
125 |
+
|
126 |
+
particular, authenticated) channels between entities involved in the name res-
|
127 |
+
|
128 |
+
olution process. However, channel security alone does not imply end-to-end
|
129 |
+
|
130 |
+
security: While such a solution can foil attacks launched from the commu-
|
131 |
+
|
132 |
+
nication network, it fails to address risks arising from authoritative servers,
|
133 |
+
|
134 |
+
resolvers, and any intermediary servers pertinent to name resolution. Clients
|
135 |
+
|
136 |
+
must place trust in all these entities, instead of just the zone authority in
|
137 |
+
the
|
138 |
+
|
139 |
+
ideal case, to be assured of data authenticity. We thus strive for an end-to-end
|
140 |
+
|
141 |
+
guarantee, where intermediaries do not need to be trusted from an authenticity
|
142 |
+
|
143 |
+
perspective.
|
144 |
+
|
145 |
+
19.1.3 End-User Privacy
|
146 |
+
|
147 |
+
The privacy implications of DNS have received a surge of attention in the past
|
148 |
+
|
149 |
+
few years. Name-resolution messages transmitted in the clear directly leak
|
150 |
+
|
151 |
+
the websites or applications accessed by clients; even if subsequent connec-
|
152 |
+
|
153 |
+
tions are secured with TLS, the leakage from DNS is already information-rich
|
154 |
+
|
155 |
+
enough to build accurate profiles of end users.
|
156 |
+
|
157 |
+
All privacy-enhancing solutions follow the same principle of establishing
|
158 |
+
|
159 |
+
encrypted channels between entities (mostly between clients and resolvers).
|
160 |
+
|
161 |
+
Examples include DoT and DoH as well as DNSCurve, which makes use of
|
162 |
+
|
163 |
+
customized encryption methods. One caveat to these solutions is that they pro-
|
164 |
+
|
165 |
+
tect data confidentiality against eavesdropping on the communication links but
|
166 |
+
|
167 |
+
not the entities themselves; countermeasures to further address this concern are
|
168 |
+
|
169 |
+
also emerging, e.g., Oblivious DNS (ODNS) [ 459], and they typically work
|
170 |
+
|
171 |
+
by using proxy servers to break the linkage of client identities to decrypted
|
172 |
+
|
173 |
+
queries.
|
174 |
+
|
175 |
+
Regardless of the exact design, encrypting name-resolution messages is es-
|
176 |
+
|
177 |
+
sential to preserving the privacy of end users and is complementary to naming
|
178 |
+
|
179 |
+
data authentication.
|
180 |
+
|
181 |
+
19.1.4 Service Availability
|
182 |
+
|
183 |
+
Another more subtle security aspect relates to availability. DNS is designed
|
184 |
+
|
185 |
+
to be available by redundancy: Each zone is typically replicated to multiple
|
186 |
+
|
187 |
+
distributed authoritative name servers. This simple mechanism is effective in
|
188 |
+
|
189 |
+
435
|
190 |
+
|
191 |
+
</content>'
|
192 |
+
- source_sentence: 'query: What are the constants defined in the SCION traffic engineering
|
193 |
+
model?'
|
194 |
+
sentences:
|
195 |
+
- "passage:\n<url> https://github.com/scionproto/scion/blob/master/doc/dev/design/ColibriService.md\
|
196 |
+
\ </url>\n<type> code </type>\n<content>\n# COLIBRI Service Design\n\n* Author:\
|
197 |
+
\ Juan A. García Pardo\n* Last updated: 2020-07-08\n* Status: **Outdated**.\n\
|
198 |
+
\ Prototype was developed in [netsec-ethz/scion:scionlab](https://github.com/netsec-ethz/scion/tree/scionlab)\n\
|
199 |
+
\ ([commit permalink](https://github.com/netsec-ethz/scion/commit/37a556a4bc494a93fe8294ed77b6f2c9b6192746)),\n\
|
200 |
+
\ to be replaced with new approach for QoS system.\n* Discussion at: [#3653](https://github.com/scionproto/scion/issues/3653),\
|
201 |
+
\ [#3794](https://github.com/scionproto/scion/issues/3794)\n\n---\n⚠️ **NOTE**\
|
202 |
+
\ ⚠️\n\nOutdated contents! This document is kept for historical purpose.\n\n---\n\
|
203 |
+
\n## Abstract\n\nThis document specifies the design of the COLIBRI service. It\
|
204 |
+
\ aims for correctness not completeness,\nand some parts of the design are deliberately\
|
205 |
+
\ not yet specified.\n\nThis document will be reviewed and amended when necessary\
|
206 |
+
\ as the implementation of the COLIBRI\nservice matures.\n\n## Overview\n\nThe\
|
207 |
+
\ COLIBRI Service (*COS*) manages the reservation process of the COLIBRI QoS subsystem\n\
|
208 |
+
in SCION. It handles both the segment and end to end reservations (formerly known\
|
209 |
+
\ as steady and\nephemeral reservations).\n\nThe border router is also modified\
|
210 |
+
\ so it understands COLIBRI type packets in the data plane.\n\n**This document\
|
211 |
+
\ doesn't include the border router design and implementation changes yet.**\n\
|
212 |
+
\n## Design\n\nThere are three main components that need to be modified or created:\
|
213 |
+
\ the colibri service itself,\nthe border router and `sciond` in the endhost:\n\
|
214 |
+
\n* **COS** Enables the COLIBRI control plane. Used to negotiate both segment\
|
215 |
+
\ and end to\n end reservations.\n* **Border Router** Needs to forward the COLIBRI\
|
216 |
+
\ traffic with higher priority than best effort.\n Needs to monitor COLIBRI traffic.\n\
|
217 |
+
* **sciond** Needs to expose a COLIBRI *API*. Needs to manage end to end reservations\
|
218 |
+
\ in behalf\n of the applications.\n\nThe COS is structured similarly to other\
|
219 |
+
\ existing Go infrastructure services. It reuses the\nfollowing:\n\n* [go/lib/env](https://github.com/scionproto/scion/tree/master/go/lib/env):\n\
|
220 |
+
\ Is used for configuration and setup of the service.\n* [go/pkg/trust](https://github.com/scionproto/scion/tree/master/go/pkg/trust):\n\
|
221 |
+
\ Is used for crypto material.\n* [go/lib/infra](https://github.com/scionproto/scion/tree/master/go/lib/infra):\n\
|
222 |
+
\ Is used for the messenger to send and receive messages.\n* [go/lib/periodic](https://github.com/scionproto/scion/tree/master/go/lib/periodic):\n\
|
223 |
+
\ Is used for periodic tasks.\n\nThe COS is differentiated into these parts:\n\
|
224 |
+
\n* **configuration** specifying admission and reservation parameters for this\
|
225 |
+
\ AS,\n* **handlers** to handle incoming reservation requests (creation, tear\
|
226 |
+
\ down, etc.),\n* **periodic tasks** for segment reservation creation and renewal,\n\
|
227 |
+
* **reservation storage** for partial and committed reservations.\n\n.\n\n## Sequence Diagrams\n\n### Segment Reservations\n\
|
229 |
+
\nNote: we use \"forward the request\" with the following meaning: if the current\
|
230 |
+
\ AS is not\nthe last AS in the reservation path, send the request to the next\
|
231 |
+
\ AS in the reservation path.\nIf the current AS is the last one, do nothing.\n\
|
232 |
+
\n#### Handle a Setup Response\n\nThe response message originated from another\
|
233 |
+
\ AS's *COS* handling a request.\nThe request is forwarded from AS<sub>i</sub>\
|
234 |
+
\ to AS<sub>i+1</sub>, where AS<sub>i+1</sub> is the\nnext AS after AS<sub>i</sub>\
|
235 |
+
\ in the path of the reservation.\n\n1. The store saves the reservation as final.\n\
|
236 |
+
1. If this AS is the first one in the reservation path (aka *reservation initiator*),\n\
|
237 |
+
\ the store sends an index confirmation request to the next AS in the path.\n\
|
238 |
+
1. If this AS is the not the first one in the reservation path, the store sends\
|
239 |
+
\ a\n response message to the previous AS's *COS*.\n\n#### Handle a Setup Request\n\
|
240 |
+
\n(the reservation message originated from another AS nearer to the origin of\
|
241 |
+
\ the path in the reservation)\n\n1. The *COS* store is queried to admit the segment\
|
242 |
+
\ reservation.\n1. The store decides the admission for the reservation (how much\
|
243 |
+
\ bandwidth). It uses the\n *traffic_matrix* from the configuration package.\n\
|
244 |
+
1. The store saves an intermediate reservation entry in the DB.\n1. If this AS\
|
245 |
+
\ is the last one in the path, the *COS* store saves the reservation as final\n\
|
246 |
+
\ and notifies the previous AS in the path with a reservation response.\n1.\
|
247 |
+
\ The store forwards the request with the decided bandwidth.\n\n#### Setup a Segment\
|
248 |
+
\ Reservation\n\nThe configuration specifies which segment reservations should\
|
249 |
+
\ be created from this AS to other\nASes. Whenever that configuration changes,\
|
250 |
+
\ the service should be notified.\n\n1. The service triggers the creation of a\
|
251 |
+
\ new segment reservation at boot time and whenever\n the segment reservation\
|
252 |
+
\ configuration file changes.\n1. The service reads the configuration file and\
|
253 |
+
\ creates a segment reservation request per each entry.\n * The path used in\
|
254 |
+
\ the request must be obtained using the *path predicate* in the configuration.\n\
|
255 |
+
1. The store in the *COS* saves the intermediate request and sends the request\
|
256 |
+
\ to the next AS\n in the path.\n1. If there is a timeout, this store will send\
|
257 |
+
\ a cleanup request to the next AS in the path.\n\n#### Handle an Index Confirmation\
|
258 |
+
\ Request\n\n1. The store in the *COS* checks that the appropriate reservation\
|
259 |
+
\ is already final.\n1. The store modifies the reservation to be confirmed\n1.\
|
260 |
+
\ The *COS* forwards the confirmation request.\n\n#### Handle a Cleanup Request\n\
|
261 |
+
\n1. The *COS* removes the referenced reservation from its store.\n1. The *COS*\
|
262 |
+
\ forwards the cleanup request.\n\n#### Handle a Teardown Request\n\n1. The *COS*\
|
263 |
+
\ checks the reservation is confirmed but has no allocated end to end reservations.\n\
|
264 |
+
1. The *COS* checks there are no telescoped reservations using this segment reservation.\n\
|
265 |
+
1. The store removes the reservation.\n1. The *COS* forwards the teardown request.\n\
|
266 |
+
\n#### Handle a Renewal Request\n\nThe renewal request handler is the same as\
|
267 |
+
\ the [setup request](#handle-a-setup-request).\nThe renewal is initiated differently\
|
268 |
+
\ (by adding a new index to an existing reservation),\nbut handled the same way.\n\
|
269 |
+
\n#### Renew a Segment Reservation\n\n1. The service triggers the renewal of the\
|
270 |
+
\ existing segment reservations with constant frequency.\n1. The store in the\
|
271 |
+
\ *COS* retrieves each one of the reservations that originate in this AS.\n1.\
|
272 |
+
\ Per reservation retrieved, the store adds a new index to it and pushes it forward.\n\
|
273 |
+
\n#### Handle a Reservation Query\n\n1. The store in the *COS* receives the query\
|
274 |
+
\ and returns the collection of segment reservations\n matching it.\n\n### End\
|
275 |
+
\ to End Reservations\n\nAll end to end reservation requests should be authenticated.\n\
|
276 |
+
\n#### Handle a E2E Setup Request\n\n1. The *COS* queries the store to admit the\
|
277 |
+
\ reservation\n1. The store computes the allowed bandwidth (knowing the current\
|
278 |
+
\ segment reservation and\n the existing E2E reservations in it).\n1. The store\
|
279 |
+
\ pushes forward the setup request.\n\n#### Handle a Renewal Request\n\nThe renewal\
|
280 |
+
\ request handler is the same as the [setup request](#handle-a-e2e-setup-request).\n\
|
281 |
+
\n#### Handle a Cleanup Request\n\n1. The *COS* removes the request from its store.\n\
|
282 |
+
1. The *COS* forwards the cleanup request.\n\n## Interfaces\n\nInterfaces of the\
|
283 |
+
\ main classes.\n\nThe Reservation Store in the COS keeps track of the reservations\
|
284 |
+
\ created and accepted in this AS,\nboth segment and E2E.\nThe store provides\
|
285 |
+
\ the following interface:\n\n```go\ntype ReservationStore {\n GetSegmentReservation(ctx\
|
286 |
+
\ context.Context, id SegmentReservationID) (SegmentReservation, error)\n GetSegmentReservations(ctx\
|
287 |
+
\ context.Context, validTime time.Time, path []InterfaceId]) ([]SegmentReservation,\
|
288 |
+
\ error)\n\n AdmitSegmentReservation(ctx context.Context, req SegmentReservationReq)\
|
289 |
+
\ error\n ConfirmSegmentReservation(ctx context.Context, id SegmentReservationID)\
|
290 |
+
\ error\n CleanupSegmentReservation(ctx context.Context, id SegmentReservationID)\
|
291 |
+
\ error\n TearDownSegmentReservation(ctx context.Context, id SegmentReservationID)\
|
292 |
+
\ error\n\n AdmitE2EReservation(ctx context.Context, req E2EReservationReq)\
|
293 |
+
\ error\n CleanupE2EReservation(ctx context.Context, id E2EReservationID) error\n\
|
294 |
+
}\n```\n\nThe `sciond` endhost daemon will expose the *API* that enables the use\
|
295 |
+
\ of COLIBRI by applications:\n\n```go\ntype sciond {\n ...\n AllowIPNet(ia\
|
296 |
+
\ IA, net IPNet) error\n BlockIPNet(ia IA, net IPNet) error\n WatchSegmentRsv(ctx\
|
297 |
+
\ context.Context, pathConf PathConfiguration) (WatchState, error)\n WatchE2ERsv(ctx\
|
298 |
+
\ context.Context, resvConf E2EResvConfiguration) (WatchState, error)\n //\
|
299 |
+
\ WatchRequests returns a WatchState that will notify the application of any COLIBRI\
|
300 |
+
\ e2e request ending here.\n WatchRequests() (WatchState, error)\n Unwatch(watchState\
|
301 |
+
\ WatchState) error\n}\n```\n\n## Class Diagrams\n\nMain classes, arity and relationships.\n\
|
302 |
+
\n```go\ntype InterfaceIdPair struct\n Ingress uint64\n Egress uint64\n\
|
303 |
+
}\ntype SegmentReservationID struct {\n Ifids []InterfaceIdPair\n Index\
|
304 |
+
\ byte\n}\n\ntype E2EReservationID uint16\n```\n\n## ReservationDB\n\nThere\
|
305 |
+
\ are two main parts in the DB: the segment reservation entities, and the end\
|
306 |
+
\ to end entities.\nTo link the end to end reservations to the appropriate segment\
|
307 |
+
\ ones, a table is used.\n\nThere are no restrictions of cardinality other than\
|
308 |
+
\ uniqueness and non null-ness for some fields,\nbut nothing like triggers on\
|
309 |
+
\ insertion are used. E.g. it is technically possible to link more than three\n\
|
310 |
+
segment reservations with a given end to end one. These cardinality restrictions\
|
311 |
+
\ are enforced by code.\n\n.\n\n\
|
312 |
+
Furthermore, there are some indices created to speed up lookups:\n\n* seg_reservation\n\
|
313 |
+
\ * id_as,suffix\n * ingress\n * egress\n * path\n* seg_index\n \
|
314 |
+
\ * reservation,index_number\n* e2e_reservation\n * reservation_id\n* e2e_index\n\
|
315 |
+
\ * reservation,index_number\n* e2e_to_seg\n * e2e\n * seg\n\n</content>"
|
316 |
+
- 'passage:
|
317 |
+
|
318 |
+
<citation> Pascal Marc Suter. *Traffic Engineering in SCION: The impact of end
|
319 |
+
host QoS mechanisms on network performance*. Master''s thesis, ETH Zurich, 2023.
|
320 |
+
</citation>
|
321 |
+
|
322 |
+
<type> research paper </type>
|
323 |
+
|
324 |
+
<page> 75 </page>
|
325 |
+
|
326 |
+
<content>
|
327 |
+
|
328 |
+
7. F uture work
|
329 |
+
|
330 |
+
Constants
|
331 |
+
|
332 |
+
q: a queue
|
333 |
+
|
334 |
+
f : a flow
|
335 |
+
|
336 |
+
p: a possible path
|
337 |
+
|
338 |
+
fbwd: the requested bandwidth of flow f
|
339 |
+
|
340 |
+
µq: processing capacity of q
|
341 |
+
|
342 |
+
MaxLength q: maximum queue length of q
|
343 |
+
|
344 |
+
The constants are defined by the topology. Each application would be repre-
|
345 |
+
|
346 |
+
sented as a flow and every router has one processing queue and one sending
|
347 |
+
|
348 |
+
queue per outgoing link. This is analog as to how the queues are imple-
|
349 |
+
|
350 |
+
mented in the simulator. µq is the number of packets that can be processed
|
351 |
+
|
352 |
+
or the number of packets that can be sent in a time-step if q is a processing
|
353 |
+
|
354 |
+
or sending queue respectively.
|
355 |
+
|
356 |
+
Variables
|
357 |
+
|
358 |
+
TPf ,p: throughput of flow f on path p
|
359 |
+
|
360 |
+
Pf ,p: indicator variable, 1 if and only if flow f chooses path p
|
361 |
+
|
362 |
+
Lat f ,p: latency of path p of flow f
|
363 |
+
|
364 |
+
λq: throughput of queue q
|
365 |
+
|
366 |
+
Varq: variance at queue q
|
367 |
+
|
368 |
+
Lossq: probability of packet loss at queue q
|
369 |
+
|
370 |
+
Objective
|
371 |
+
|
372 |
+
min ∑
|
373 |
+
|
374 |
+
f ,p
|
375 |
+
|
376 |
+
Lat f ,p
|
377 |
+
|
378 |
+
min ∑
|
379 |
+
|
380 |
+
f ,p
|
381 |
+
|
382 |
+
Pf ,p( ∑
|
383 |
+
|
384 |
+
q∈passes ( f ,p)
|
385 |
+
|
386 |
+
Varq)
|
387 |
+
|
388 |
+
min ∑
|
389 |
+
|
390 |
+
f ,p
|
391 |
+
|
392 |
+
Pf ,p( ∑
|
393 |
+
|
394 |
+
q∈passes ( f ,p)
|
395 |
+
|
396 |
+
Lossq)
|
397 |
+
|
398 |
+
Each objective minimizes global latency, jitter, and loss respectively. They
|
399 |
+
|
400 |
+
can be weighted depending on how import one thinks each to be.
|
401 |
+
|
402 |
+
68
|
403 |
+
|
404 |
+
</content>'
|
405 |
+
- "passage:\n<url> https://www.ietf.org/archive/id/draft-dekater-scion-controlplane-07.txt\
|
406 |
+
\ </url>\n<type> specification </type>\n<content>\nNetwork Working Group \
|
407 |
+
\ C. de Kater\nInternet-Draft \
|
408 |
+
\ N. Rustignoli\nIntended status: Informational\
|
409 |
+
\ SCION Association\nExpires: 27 June 2025 \
|
410 |
+
\ S. Hitz\n \
|
411 |
+
\ Anapaya Systems\n \
|
412 |
+
\ 24 December 2024\n\n\n SCION Control\
|
413 |
+
\ Plane\n draft-dekater-scion-controlplane-07\n\nAbstract\n\n\
|
414 |
+
\ This document describes the Control Plane of the path-aware, inter-\n domain\
|
415 |
+
\ network architecture SCION (Scalability, Control, and\n Isolation On Next-generation\
|
416 |
+
\ networks). One of the basic\n characteristics of SCION is that it gives path\
|
417 |
+
\ control to SCION-\n capable endpoints that can choose between multiple path\
|
418 |
+
\ options,\n enabling the optimization of network paths. The Control Plane\
|
419 |
+
\ is\n responsible for discovering these paths and making them available to\n\
|
420 |
+
\ the endpoints.\n\n The main goal of the SCION Control Plane is to create\
|
421 |
+
\ and manage path\n segments which can then be combined into forwarding paths\
|
422 |
+
\ to transmit\n packets in the data plane. This document discusses how path\n\
|
423 |
+
\ exploration is realized through beaconing and how path segments are\n created\
|
424 |
+
\ and registered. Each SCION Autonomous System (AS) can\n register segments\
|
425 |
+
\ according to its own policy and can specify which\n path properties and algorithm(s)\
|
426 |
+
\ to use in the selection procedure.\n The document also describes the path\
|
427 |
+
\ lookup process whereby endpoints\n obtain path segments - a fundamental building\
|
428 |
+
\ block for the\n construction of end-to-end paths.\n\nAbout This Document\n\
|
429 |
+
\n This note is to be removed before publishing as an RFC.\n\n The latest\
|
430 |
+
\ revision of this draft can be found at\n https://scionassociation.github.io/scion-cp_I-D/draft-dekater-scion-\n\
|
431 |
+
\ controlplane.html. Status information for this document may be found\n \
|
432 |
+
\ at https://datatracker.ietf.org/doc/draft-dekater-scion-\n controlplane/.\n\
|
433 |
+
\n Source for this draft and an issue tracker can be found at\n https://github.com/scionassociation/scion-cp_I-D.\n\
|
434 |
+
</content>"
|
435 |
+
- source_sentence: 'query: How does SCION''s architecture improve scalability?'
|
436 |
+
sentences:
|
437 |
+
- "passage:\n<url> https://www.ietf.org/archive/id/draft-dekater-scion-controlplane-07.txt\
|
438 |
+
\ </url>\n<type> specification </type>\n<content>\nde Kater, et al. Expires\
|
439 |
+
\ 27 June 2025 [Page 80]\n\f\nInternet-Draft \
|
440 |
+
\ SCION CP December 2024\n\n\n // Segment creation time\
|
441 |
+
\ set by the originating AS. Segment\n // expiration time is computed relative\
|
442 |
+
\ to this timestamp.\n // The timestamp is encoded as the number of seconds\
|
443 |
+
\ elapsed\n // since January 1, 1970 UTC.\n int64 timestamp = 1;\n \
|
444 |
+
\ // The 16-bit segment ID integer used for MAC computation.\n uint32 segment_id\
|
445 |
+
\ = 2;\n }\n\n message ASEntry {\n // The signed part of the AS entry. The\
|
446 |
+
\ body of the SignedMessage\n // is the serialized ASEntrySignedBody. The\
|
447 |
+
\ signature input is\n // defined as follows:\n //\n // input(ps,\
|
448 |
+
\ i) = signed.header_and_body || associated_data(ps, i)\n //\n // associated_data(ps,\
|
449 |
+
\ i) =\n // ps.segment_info ||\n // ps.as_entries[1].signed.header_and_body\
|
450 |
+
\ ||\n // ps.as_entries[1].signed.signature ||\n // \
|
451 |
+
\ ...\n // ps.as_entries[i-1].signed.header_and_body ||\n //\
|
452 |
+
\ ps.as_entries[i-1].signed.signature\n //\n proto.crypto.v1.SignedMessage\
|
453 |
+
\ signed = 1;\n // The unsigned part of the AS entry.\n proto.control_plane.v1.PathSegmentUnsignedExtensions\
|
454 |
+
\ unsigned = 2;\n }\n\n message SignedMessage {\n // Encoded header and body.\n\
|
455 |
+
\ bytes header_and_body = 1;\n // Raw signature. The signature is computed\
|
456 |
+
\ over the concatenation\n // of the header and body, and the optional associated\
|
457 |
+
\ data.\n bytes signature = 2;\n }\n\n message HopEntry {\n // Material\
|
458 |
+
\ to create the data-plane Hop Field.\n HopField hop_field = 1;\n // MTU\
|
459 |
+
\ on the ingress link.\n uint32 ingress_mtu = 2;\n }\n\n message PeerEntry\
|
460 |
+
\ {\n // ISD-AS of peer AS. This is used to match peering segments\n //\
|
461 |
+
\ during path construction.\n uint64 peer_isd_as = 1;de Kater, et al. \
|
462 |
+
\ Expires 27 June 2025 [Page 81]\n\f\nInternet-Draft \
|
463 |
+
\ SCION CP December 2024\n\n\n // Remote peer\
|
464 |
+
\ interface identifier. This is used to match\n // peering segments\n \
|
465 |
+
\ // during path construction.\n uint64 peer_interface = 2;\n // MTU on\
|
466 |
+
\ the peering link.\n uint32 peer_mtu = 3;\n // Material to create the\
|
467 |
+
\ data-plane Hop Field\n HopField hop_field = 4;\n }\n\n message HopField\
|
468 |
+
\ {\n // Ingress interface identifier.\n uint64 ingress = 1;\n //\
|
469 |
+
\ Egress interface identifier.\n uint64 egress = 2;\n // 8-bit encoded\
|
470 |
+
\ expiration offset relative to the segment\n // creation timestamp.\n \
|
471 |
+
\ uint32 exp_time = 3;\n // MAC used in the dataplane to verify the Hop Field.\n\
|
472 |
+
\ bytes mac = 4;\n }\n\n Figure 20: Control Service gRPC API - Segment\
|
473 |
+
\ representation\n</content>"
|
474 |
+
- 'passage:
|
475 |
+
|
476 |
+
<citation> Laurent Chuat et al.. *The Complete Guide to SCION. From Design Principles
|
477 |
+
to Formal Verification*. Springer International Publishing AG, 2022. </citation>
|
478 |
+
|
479 |
+
<type> book </type>
|
480 |
+
|
481 |
+
<page> 674 </page>
|
482 |
+
|
483 |
+
<content>
|
484 |
+
|
485 |
+
Index
|
486 |
+
|
487 |
+
Nesquic, 309
|
488 |
+
|
489 |
+
OpenFlow, 578
|
490 |
+
|
491 |
+
Packet
|
492 |
+
|
493 |
+
¨ format, 95–96
|
494 |
+
|
495 |
+
¨ forwarding, 115
|
496 |
+
|
497 |
+
¨ initialization, 115
|
498 |
+
|
499 |
+
Packet-carried forwarding state
|
500 |
+
|
501 |
+
(PCFS), 29, 643
|
502 |
+
|
503 |
+
Packet-carried forwarding
|
504 |
+
|
505 |
+
state (PCFS), 19
|
506 |
+
|
507 |
+
Path attack
|
508 |
+
|
509 |
+
¨ path hijacking, 166
|
510 |
+
|
511 |
+
¨ path manipulation, 165
|
512 |
+
|
513 |
+
¨ path preference attack, 168
|
514 |
+
|
515 |
+
¨ path selection, 168
|
516 |
+
|
517 |
+
¨ path splicing, 171
|
518 |
+
|
519 |
+
¨ source-address spoofing, 174
|
520 |
+
|
521 |
+
Path authorization, 30, 170–172,
|
522 |
+
|
523 |
+
228, 643
|
524 |
+
|
525 |
+
Path construction, 104–115
|
526 |
+
|
527 |
+
¨ segment combination, 28
|
528 |
+
|
529 |
+
Path control, 9, 168, 382, 643
|
530 |
+
|
531 |
+
Path discovery, 69–71
|
532 |
+
|
533 |
+
Path exploration, 24, 69–71, 135,
|
534 |
+
|
535 |
+
136, 142, 144, 147
|
536 |
+
|
537 |
+
Path lookup, 80–87
|
538 |
+
|
539 |
+
Path quality
|
540 |
+
|
541 |
+
¨ beaconing overhead, 150
|
542 |
+
|
543 |
+
¨ evaluation, 154–156
|
544 |
+
|
545 |
+
Path registration, 24, 412
|
546 |
+
|
547 |
+
¨ core, 72
|
548 |
+
|
549 |
+
¨ intra-ISD, 71
|
550 |
+
|
551 |
+
Path resolution, 104–112, 306
|
552 |
+
|
553 |
+
¨ path combination, 28, 104–112
|
554 |
+
|
555 |
+
¨ path lookup, 26, 306, 412
|
556 |
+
|
557 |
+
Path reversal, 116
|
558 |
+
|
559 |
+
Path revocation, 27, 120–124
|
560 |
+
|
561 |
+
Path segment, 27, 643
|
562 |
+
|
563 |
+
¨ combination, 28, 104–115
|
564 |
+
|
565 |
+
¨ core-segment, 24, 29
|
566 |
+
|
567 |
+
¨ down-segment, 24
|
568 |
+
|
569 |
+
¨ registration, 71
|
570 |
+
|
571 |
+
¨ selection, 27, 73
|
572 |
+
|
573 |
+
¨ up-segment, 24
|
574 |
+
|
575 |
+
Path selection, 27, 168
|
576 |
+
|
577 |
+
¨ diversity-based, 76
|
578 |
+
|
579 |
+
¨ malicious, 147
|
580 |
+
|
581 |
+
Path server, 24, 27
|
582 |
+
|
583 |
+
Path service (PS), 20, 289, 643
|
584 |
+
|
585 |
+
¨ discovery, 87
|
586 |
+
|
587 |
+
Path transparency, 9, 644
|
588 |
+
|
589 |
+
Path validation, 230
|
590 |
+
|
591 |
+
Path-aware networking, 239
|
592 |
+
|
593 |
+
Path-segment construction beacon
|
594 |
+
|
595 |
+
(PCB), 19, 66–69, 644
|
596 |
+
|
597 |
+
¨ components, 66
|
598 |
+
|
599 |
+
¨ extensions, 197–201
|
600 |
+
|
601 |
+
¨ filtering, 76
|
602 |
+
|
603 |
+
¨ path metadata, 197–201
|
604 |
+
|
605 |
+
¨ propagation, 70
|
606 |
+
|
607 |
+
¨ selection properties, 74
|
608 |
+
|
609 |
+
PCB, see Path-segment
|
610 |
+
|
611 |
+
construction beacon
|
612 |
+
|
613 |
+
PCFS, see Packet-carried
|
614 |
+
|
615 |
+
forwarding state
|
616 |
+
|
617 |
+
Peering link, 25, 29
|
618 |
+
|
619 |
+
Peering path, 109
|
620 |
+
|
621 |
+
PILA, 461–469
|
622 |
+
|
623 |
+
PKI
|
624 |
+
|
625 |
+
¨ control-plane PKI, 21–23, 36–52
|
626 |
+
|
627 |
+
¨ end entity PKI, 419
|
628 |
+
|
629 |
+
¨ F-PKI, 419–430
|
630 |
+
|
631 |
+
¨ Web PKI, 419
|
632 |
+
|
633 |
+
Post-quantum cryptography, 415
|
634 |
+
|
635 |
+
Private lines
|
636 |
+
|
637 |
+
¨ replacement, 374
|
638 |
+
|
639 |
+
Property
|
640 |
+
|
641 |
+
¨ availability, 377
|
642 |
+
|
643 |
+
Pseudorandom function (PRF),
|
644 |
+
|
645 |
+
410, 411
|
646 |
+
|
647 |
+
Pseudorandom number generator,
|
648 |
+
|
649 |
+
409, 411
|
650 |
+
|
651 |
+
Recovery, 23
|
652 |
+
|
653 |
+
Relying party, 644
|
654 |
+
|
655 |
+
Replay-suppression, 204–207
|
656 |
+
|
657 |
+
Reservations
|
658 |
+
|
659 |
+
¨ COLIBRI, 237–266
|
660 |
+
|
661 |
+
654
|
662 |
+
|
663 |
+
</content>'
|
664 |
+
- 'passage:
|
665 |
+
|
666 |
+
<citation> Seyedali Tabaeiaghdaei, Adrian Perrig. "Data-Plane Energy Efficiency
|
667 |
+
of a Next-Generation Internet Architecture." *IEEE Symposium on Computers and
|
668 |
+
Communications (ISCC)*, 2022. </citation>
|
669 |
+
|
670 |
+
<type> research paper </type>
|
671 |
+
|
672 |
+
<page> 1 </page>
|
673 |
+
|
674 |
+
<content>
|
675 |
+
|
676 |
+
Data-Plane Energy Efficiency of a
|
677 |
+
|
678 |
+
Next-Generation Internet Architecture
|
679 |
+
|
680 |
+
Seyedali T abaeiaghdaei
|
681 |
+
|
682 |
+
Department of Computer Science
|
683 |
+
|
684 |
+
ETH Z ¨urich, Switzerland
|
685 |
+
|
686 |
+
Adrian Perrig
|
687 |
+
|
688 |
+
Department of Computer Science
|
689 |
+
|
690 |
+
ETH Z ¨urich, Switzerland
|
691 |
+
|
692 |
+
Abstract—In the face of the ever-increasing power consumption
|
693 |
+
|
694 |
+
of the information and communication technology sector , next-
|
695 |
+
|
696 |
+
generation Internet architectures offer an opportunity to improve
|
697 |
+
|
698 |
+
the energy consumption of the Internet. The SCION architecture
|
699 |
+
|
700 |
+
is unique in that it has reached commercial deployment and
|
701 |
+
|
702 |
+
thus opens up opportunities for estimating and understanding
|
703 |
+
|
704 |
+
the promised energy efficiency from a realistic perspective.
|
705 |
+
|
706 |
+
In this work, we introduce a method that uses the available
|
707 |
+
|
708 |
+
energy consumption models for the current Internet architecture
|
709 |
+
|
710 |
+
to estimate the energy efficiency of SCION’s data plane. By
|
711 |
+
|
712 |
+
applying this method to the best available power consumption
|
713 |
+
|
714 |
+
models of the Internet, we show that while providing advanced
|
715 |
+
|
716 |
+
security and availability guarantees, SCION can reduce global
|
717 |
+
|
718 |
+
data plane power consumption by around 700 MW. W e further
|
719 |
+
|
720 |
+
investigate the impact of the SCION’s quality of service (QoS)
|
721 |
+
|
722 |
+
extension on data plane’s power consumption and conclude that
|
723 |
+
|
724 |
+
SCION with its QoS extension can reduce the power consumption
|
725 |
+
|
726 |
+
of the Internet by up to 2.88 GW. Therefore, SCION, with its QoS
|
727 |
+
|
728 |
+
extension, reduces the power consumption of the Internet and the
|
729 |
+
|
730 |
+
whole ICT sector by up to 9.4% and 1.3%, respectively .
|
731 |
+
|
732 |
+
Index T erms—Power consumption, next-generation Internet
|
733 |
+
|
734 |
+
architecture, Quality of Service, QoS
|
735 |
+
|
736 |
+
I. I N T RO D U C T I O N
|
737 |
+
|
738 |
+
It is estimated that the information and communication tech-
|
739 |
+
|
740 |
+
nology (ICT) sector consumed 2000 TW h electrical energy in
|
741 |
+
|
742 |
+
2020 (which is around 7% of global electricity generation) and
|
743 |
+
|
744 |
+
is responsible for 2.7% of global CO2 emissions [1]–[5]. The
|
745 |
+
|
746 |
+
electricity consumption impact of the ICT sector is expected
|
747 |
+
|
748 |
+
to grow to 21% in 2030 [6], of which networks account for a
|
749 |
+
|
750 |
+
27% share in 2030 (13% in 2020) [1].
|
751 |
+
|
752 |
+
Given the rising concerns regarding climate change and the
|
753 |
+
|
754 |
+
environmental impact of the ICT sector, numerous researchers
|
755 |
+
|
756 |
+
have studied the power consumption and energy efficiency of
|
757 |
+
|
758 |
+
the Internet [1], [4], [6]–[10], trying to estimate the power
|
759 |
+
|
760 |
+
consumption of the Internet and predict the future trend by
|
761 |
+
|
762 |
+
proposing various models. These models, however, do not take
|
763 |
+
|
764 |
+
into account the potential changes to the Internet’s operation
|
765 |
+
|
766 |
+
proposed by next-generation Internet architectures.
|
767 |
+
|
768 |
+
Several next-generation architectures have been proposed,
|
769 |
+
|
770 |
+
typically substantially modifying the Internet’s operation.
|
771 |
+
|
772 |
+
These modifications can significantly impact energy efficiency ,
|
773 |
+
|
774 |
+
necessitating investigation prior to large-scale deployment.
|
775 |
+
|
776 |
+
SCION [11] is a next-generation Internet architecture that
|
777 |
+
|
778 |
+
provides strong security and availability guarantees. SCION
|
779 |
+
|
780 |
+
uses packet-carried forwarding state to forward packets, a fun-
|
781 |
+
|
782 |
+
damental architectural change with a tremendous potential im-
|
783 |
+
|
784 |
+
pact on the Internet’s energy efficiency . Furthermore, SCION’s
|
785 |
+
|
786 |
+
inter-domain bandwidth reservation system can simplify con-
|
787 |
+
|
788 |
+
gestion control algorithms, affecting the power consumption
|
789 |
+
|
790 |
+
of both networks and end hosts significantly . As SCION has
|
791 |
+
|
792 |
+
reached commercial deployment [12], it is important to study
|
793 |
+
|
794 |
+
its power impact.
|
795 |
+
|
796 |
+
In this paper, we introduce a method to analyze SCION’s
|
797 |
+
|
798 |
+
impact on the data-plane power consumption. Using this
|
799 |
+
|
800 |
+
method we first identify all modifications required by SCION
|
801 |
+
|
802 |
+
to all different types of devices in the Internet. Then, we inves-
|
803 |
+
|
804 |
+
tigate how these modifications change the power consumption
|
805 |
+
|
806 |
+
of each device by taking into account the available power
|
807 |
+
|
808 |
+
consumption models for those devices. Finally , we investigate
|
809 |
+
|
810 |
+
how the change in the power consumption of each device
|
811 |
+
|
812 |
+
changes the power consumption of the whole Internet using
|
813 |
+
|
814 |
+
the available power consumption models. This methodology
|
815 |
+
|
816 |
+
is independent of the available power consumption models
|
817 |
+
|
818 |
+
of the Internet and network devices and therefore can be
|
819 |
+
|
820 |
+
applied to any available power consumption model. However,
|
821 |
+
|
822 |
+
the accuracy of the analysis depends on the accuracy of the
|
823 |
+
|
824 |
+
underlying models.
|
825 |
+
|
826 |
+
In Section III we describe this method in more detail by
|
827 |
+
|
828 |
+
applying it to the available power consumption models of the
|
829 |
+
|
830 |
+
Internet, and providing an estimate of how SCION changes the
|
831 |
+
|
832 |
+
power consumption of the Internet. Furthermore, in Section IV
|
833 |
+
|
834 |
+
we investigate how the inter-domain QoS extension of SCION
|
835 |
+
|
836 |
+
impacts the Internet’s power consumption.
|
837 |
+
|
838 |
+
II. B AC K G RO U N D ON SCION
|
839 |
+
|
840 |
+
SCION is a path-aware Internet architecture providing rout-
|
841 |
+
|
842 |
+
ing security , availability , path transparency , and path control.
|
843 |
+
|
844 |
+
A. Architecture
|
845 |
+
|
846 |
+
T o improve scalability , SCION groups ASes into isolation
|
847 |
+
|
848 |
+
domains (ISDs) . An ISD is administered by its ISD core,
|
849 |
+
|
850 |
+
typically consisting of several core ASes. Core ASes provide
|
851 |
+
|
852 |
+
connectivity to core ASes in other ISDs, and issue certificates
|
853 |
+
|
854 |
+
for non-core ASes in their own ISD. In each ISD, all non-core
|
855 |
+
|
856 |
+
ASes are either direct or indirect customers of core ASes.
|
857 |
+
|
858 |
+
B. Data plane
|
859 |
+
|
860 |
+
SCION uses packet-carried forwarding state to forward
|
861 |
+
|
862 |
+
packets: the inter-domain forwarding path is included in packet
|
863 |
+
|
864 |
+
headers, and routers forward packets using this information.
|
865 |
+
|
866 |
+
978-1-6654-9792-3/22/$31.00 ©2022 IEEE
|
867 |
+
|
868 |
+
</content>'
|
869 |
+
- source_sentence: 'query: What steps are involved in building the SCION HTTP Forward
|
870 |
+
Proxy for MacOS?'
|
871 |
+
sentences:
|
872 |
+
- 'passage:
|
873 |
+
|
874 |
+
<url> https://scion-http-proxy.readthedocs.io/en/latest/forward-proxy.html </url>
|
875 |
+
|
876 |
+
<type> documentation </type>
|
877 |
+
|
878 |
+
<content>
|
879 |
+
|
880 |
+
# SCION HTTP Forward Proxy
|
881 |
+
|
882 |
+
|
883 |
+
# SCION HTTP Forward Proxy
|
884 |
+
|
885 |
+
|
886 |
+
The SCION HTTP Forward Proxy provides access to HTTP(S) resources via SCION by
|
887 |
+
using a configured proxy for all SCION-enabled domains.
|
888 |
+
|
889 |
+
It is implemented as a Caddy plugin, and can be used with any compatible Caddy
|
890 |
+
server version.
|
891 |
+
|
892 |
+
If you are looking for the reverse proxy, see Reverse Proxy.
|
893 |
+
|
894 |
+
|
895 |
+
## Prerequisites
|
896 |
+
|
897 |
+
|
898 |
+
- A SCION-enabled host in a SCION-enabled network (see Access and Host Configuration).
|
899 |
+
|
900 |
+
|
901 |
+
## Installation
|
902 |
+
|
903 |
+
|
904 |
+
You can install the SCION HTTP Reverse Proxy plugin either building from source
|
905 |
+
or adding the plugin to an existing Caddy installation.
|
906 |
+
|
907 |
+
|
908 |
+
### Add plugin to existing Caddy installation
|
909 |
+
|
910 |
+
|
911 |
+
If you have an existing Caddy installation, you can add the SCION HTTP Proxy plugin
|
912 |
+
to it. The plugin contains both the reverse proxy (supporting the 3 flavors of
|
913 |
+
HTTP) and the forward proxy.
|
914 |
+
|
915 |
+
Please visit the Caddy SCION plugin documentation for more information on how
|
916 |
+
to extend Caddy with SCION.
|
917 |
+
|
918 |
+
|
919 |
+
## Build for Linux
|
920 |
+
|
921 |
+
|
922 |
+
You can build the caddy server containing the SCION plugin from source as follows:
|
923 |
+
|
924 |
+
|
925 |
+
- Download the source code from the Caddy SCION repository.
|
926 |
+
|
927 |
+
- Build the plugin by running the following command in the root directory of the
|
928 |
+
repository: go build -o ./build/scion-caddy-forward./cmd/scion-caddy-forward
|
929 |
+
|
930 |
+
- or (if you only want to build the forward and reverse proxy) go build -o ./build/scion-caddy
|
931 |
+
./cmd/scion-caddy
|
932 |
+
|
933 |
+
|
934 |
+
Then, you can follow the steps below to install the plugin:
|
935 |
+
|
936 |
+
|
937 |
+
- Ensure that you are running the scion-endhost stack as described in the SCION
|
938 |
+
documentation.
|
939 |
+
|
940 |
+
- Copy the binary to /usr/local/bin or any other directory in your $PATH.
|
941 |
+
|
942 |
+
- Add a data directory for the plugin to store its data: sudo mkdir -p /usr/share/scion/caddy-scion
|
943 |
+
|
944 |
+
sudo chown -R $USER:$USER /usr/share/scion
|
945 |
+
|
946 |
+
- Optionally you can create a systemd service and enable it. You can use the example
|
947 |
+
service file scion-caddy.service in the examples.
|
948 |
+
|
949 |
+
- You can use the forward.json file in examples folder as reference configuration
|
950 |
+
file.
|
951 |
+
|
952 |
+
The configuration is passed using the -config flag when running the binary. If
|
953 |
+
you created a service, move it to /etc/scion/ or the path that you have configured
|
954 |
+
in the systemd service file.
|
955 |
+
|
956 |
+
- If you are running the forward proxy as a local proxy, please follow the localhost
|
957 |
+
configuration instructions to integrate it with your browser.
|
958 |
+
|
959 |
+
|
960 |
+
## Build for MacOS
|
961 |
+
|
962 |
+
|
963 |
+
You can build the caddy server containing the SCION plugin from source as follows:
|
964 |
+
|
965 |
+
|
966 |
+
- Download the source code from the Caddy SCION repository.
|
967 |
+
|
968 |
+
- Build the plugin by running the following command in the root directory of the
|
969 |
+
repository: GOOS=darwin GOARCH=amd64 go build -o ./build/scion-caddy-forward./cmd/scion-caddy-forward
|
970 |
+
|
971 |
+
- or (if you only want to build the forward and reverse proxy) GOOS=darwin GOARCH=amd64
|
972 |
+
go build -o ./build/scion-caddy ./cmd/scion-caddy
|
973 |
+
|
974 |
+
|
975 |
+
Then, you can follow the steps below to install the plugin:
|
976 |
+
|
977 |
+
|
978 |
+
- Ensure that you are running the scion-endhost stack as described in the SCION
|
979 |
+
documentation.
|
980 |
+
|
981 |
+
- Apply the necessary permissions to the binary: chmod +x scion-caddy
|
982 |
+
|
983 |
+
- Add a data directory for the plugin to store its data: sudo mkdir -p /usr/local/scion/caddy-scion
|
984 |
+
|
985 |
+
sudo chown -R $USER /usr/local/scion
|
986 |
+
|
987 |
+
- You can use the forward.json file in examples folder as reference configuration
|
988 |
+
file.
|
989 |
+
|
990 |
+
The configuration is passed using the -config flag when running the binary.
|
991 |
+
|
992 |
+
Next, modify the JSON configuration file to point to the correct paths for the
|
993 |
+
plugin data directory. Mainly, replace /usr/share/scion/caddy-scion with /usr/local/scion/caddy-scion.
|
994 |
+
|
995 |
+
- Run the binary with the configuration file: ./scion-caddy -conf /path/to/your/scion-caddy-forward-proxy.json
|
996 |
+
|
997 |
+
- If you are running the forward proxy as a local proxy, please follow the localhost
|
998 |
+
configuration instructions to integrate it with your browser.
|
999 |
+
|
1000 |
+
|
1001 |
+
## Build for Windows
|
1002 |
+
|
1003 |
+
|
1004 |
+
Note
|
1005 |
+
|
1006 |
+
|
1007 |
+
Experimental option. The SCION HTTP forward proxy has not been tested on Windows
|
1008 |
+
yet.
|
1009 |
+
|
1010 |
+
|
1011 |
+
You can build the caddy server containing the SCION plugin from source as follows:
|
1012 |
+
|
1013 |
+
|
1014 |
+
|
1015 |
+
</content>'
|
1016 |
+
- 'passage:
|
1017 |
+
|
1018 |
+
<citation> Seyedali Tabaeiaghdaei et al.. "Carbon-Aware Global Routing in Path-Aware
|
1019 |
+
Networks." *Proceedings of ACM International Conference on Future Energy Systems
|
1020 |
+
(e-Energy)*, 2023. </citation>
|
1021 |
+
|
1022 |
+
<type> research paper </type>
|
1023 |
+
|
1024 |
+
<page> 4 </page>
|
1025 |
+
|
1026 |
+
<content>
|
1027 |
+
|
1028 |
+
e-Energy ’23, June 20–23, 2023, Orlando, FL, USA Tabaeiaghdaei et al.
|
1029 |
+
|
1030 |
+
DisseminationModule
|
1031 |
+
|
1032 |
+
ForecastingModuleCO2Forecast DB
|
1033 |
+
|
1034 |
+
AS TopologyPower-grid CIIngress Intf. 1
|
1035 |
+
|
1036 |
+
Ingress Intf. 2
|
1037 |
+
|
1038 |
+
Egress Intf.
|
1039 |
+
|
1040 |
+
CIRo
|
1041 |
+
|
1042 |
+
ASi ASi-1
|
1043 |
+
|
1044 |
+
ASi-1
|
1045 |
+
|
1046 |
+
ASi-1ASi-1
|
1047 |
+
|
1048 |
+
ASiASi
|
1049 |
+
|
1050 |
+
Figure 2: Overview of CIRo. A participating AS runs a CIRo
|
1051 |
+
|
1052 |
+
instance. An instance consists of a forecasting module and an
|
1053 |
+
|
1054 |
+
information dissemination module. The forecasting module
|
1055 |
+
|
1056 |
+
computes path carbon intensity forecasts using a model we
|
1057 |
+
|
1058 |
+
introduce, the topology of the AS, and power-grid carbon-
|
1059 |
+
|
1060 |
+
intensity (CI) forecasts, and inserts its forecasts into the fore-
|
1061 |
+
|
1062 |
+
cast database. The dissemination module disseminates fore-
|
1063 |
+
|
1064 |
+
casts to other ASes using routing messages. It also provides
|
1065 |
+
|
1066 |
+
endpoints within an AS with these forecasts.
|
1067 |
+
|
1068 |
+
4 MODELING CARBON INTENSITY OF
|
1069 |
+
|
1070 |
+
INTER-DOMAIN PATHS
|
1071 |
+
|
1072 |
+
In this section, we develop a model enabling CIRo to compute and
|
1073 |
+
|
1074 |
+
disseminate carbon-intensity forecasts of inter-domain paths in
|
1075 |
+
|
1076 |
+
a distributed manner that does not require ASes to disclose their
|
1077 |
+
|
1078 |
+
internal topology.
|
1079 |
+
|
1080 |
+
4.1 Carbon Intensity of Data Transmission
|
1081 |
+
|
1082 |
+
Data transmission over a network path may cause CO2 emission
|
1083 |
+
|
1084 |
+
through two levels of indirection: forwarding traffic causes (electri-
|
1085 |
+
|
1086 |
+
cal) energy consumption on network devices, and the electricity
|
1087 |
+
|
1088 |
+
used by each device is generated from energy resources in a process
|
1089 |
+
|
1090 |
+
that may emit CO2, depending on the energy resources.
|
1091 |
+
|
1092 |
+
We define Carbon Intensity of Data Transmission over a net-
|
1093 |
+
|
1094 |
+
work path, i.e., CIDT in g/bit, as the CO 2 emission that can be
|
1095 |
+
|
1096 |
+
attributed to a unit of data for being transmitted over that path.
|
1097 |
+
|
1098 |
+
Since energy is an additive quantity, the CO2 emission of energy
|
1099 |
+
|
1100 |
+
consumption and the CO2 emission of data transmission are addi-
|
1101 |
+
|
1102 |
+
tive.
|
1103 |
+
|
1104 |
+
4.2 Inter-Domain CIDT
|
1105 |
+
|
1106 |
+
Using CIDT’s additive property, we write the CIDT of an inter-
|
1107 |
+
|
1108 |
+
domain path (denoted by {ASsrc, ..., ASdst}) as the sum of CIDTs of
|
1109 |
+
|
1110 |
+
consecutive AS hops it consists of:
|
1111 |
+
|
1112 |
+
CIDT{ASsrc,...,ASdst} =
|
1113 |
+
|
1114 |
+
∑︁
|
1115 |
+
|
1116 |
+
AS𝑖
|
1117 |
+
|
1118 |
+
[ing, eg] ∈{ASsrc,...,ASdst}
|
1119 |
+
|
1120 |
+
CIDTAS𝑖
|
1121 |
+
|
1122 |
+
[ing, eg]
|
1123 |
+
|
1124 |
+
, (1)
|
1125 |
+
|
1126 |
+
where AS[ing, eg] denotes an AS hop on the inter-domain path.
|
1127 |
+
|
1128 |
+
[ing, eg] denotes the ingress and egress interface pair from/to which
|
1129 |
+
|
1130 |
+
the inter-domain path enters/exits the AS hop.
|
1131 |
+
|
1132 |
+
The additive property is essential for distributed functionality
|
1133 |
+
|
1134 |
+
of CIRo: each CIRo instance only needs to compute the CIDT of
|
1135 |
+
|
1136 |
+
paths within one AS without disclosing topology information.
|
1137 |
+
|
1138 |
+
Eq. (1) does not explicitly include inter-domain links connecting
|
1139 |
+
|
1140 |
+
the border routers of neighboring ASes. That is because such links
|
1141 |
+
|
1142 |
+
are either (1) direct links connecting two routers in the same data
|
1143 |
+
|
1144 |
+
center, or (2) peerings via IXPs, IXP federations, IXP port resellers,
|
1145 |
+
|
1146 |
+
or layer-2 links to an IXP. In the first case, the preceding AS on a
|
1147 |
+
|
1148 |
+
path includes the CIDT of the link in its hop’s CIDT. In the second
|
1149 |
+
|
1150 |
+
case, previous research suggests IXPs and resellers constitute ASes
|
1151 |
+
|
1152 |
+
in a PAN context [34]. Thus, they compute their CIDT as normal
|
1153 |
+
|
1154 |
+
ASes in the same way we propose in this section.
|
1155 |
+
|
1156 |
+
4.3 Per-Hop CIDT
|
1157 |
+
|
1158 |
+
An AS may forward traffic on multiple internal paths, e.g., using
|
1159 |
+
|
1160 |
+
equal-cost multi-path (ECMP). Therefore, we define the CIDT of
|
1161 |
+
|
1162 |
+
AS[ing, eg] as the mean CIDT of all active intra-domain paths from
|
1163 |
+
|
1164 |
+
its ingress interface to its egress interface. Thus,
|
1165 |
+
|
1166 |
+
CIDTAS[ing, eg] = 1
|
1167 |
+
|
1168 |
+
|P[ing, eg] |
|
1169 |
+
|
1170 |
+
∑︁
|
1171 |
+
|
1172 |
+
𝑃[ing, eg] ∈P[ing, eg]
|
1173 |
+
|
1174 |
+
CIDT𝑃[ing, eg] (2)
|
1175 |
+
|
1176 |
+
where 𝑃[ing, eg] is an intra-domain path connecting ing and eg inter-
|
1177 |
+
|
1178 |
+
faces within the AS, and P[ing, eg] is the set of all such paths. In case
|
1179 |
+
|
1180 |
+
of weighted ECMP (WECMP), Eq. (2) is substituted with a weighted
|
1181 |
+
|
1182 |
+
mean over all paths.
|
1183 |
+
|
1184 |
+
4.4 CIDT of a Single Intra-Domain Path
|
1185 |
+
|
1186 |
+
The CIDT over a network path within an AS is composed of two
|
1187 |
+
|
1188 |
+
components: (1) the marginal CIDT, which is the result of the actual
|
1189 |
+
|
1190 |
+
amount of energy consumed to forward a bit of data over a path,
|
1191 |
+
|
1192 |
+
and (2) amortized CIDT, which is the result of energy consumed
|
1193 |
+
|
1194 |
+
to keep network paths operational and is independent of traffic
|
1195 |
+
|
1196 |
+
volume over the path. Therefore,
|
1197 |
+
|
1198 |
+
CIDT𝑃[ing, eg] = CIDTmarginal
|
1199 |
+
|
1200 |
+
𝑃[ing, eg]
|
1201 |
+
|
1202 |
+
+CIDTamortized
|
1203 |
+
|
1204 |
+
𝑃[ing, eg] (3)
|
1205 |
+
|
1206 |
+
Because of the additive property, we can write
|
1207 |
+
|
1208 |
+
CIDT𝑃[ing, eg] =
|
1209 |
+
|
1210 |
+
∑︁
|
1211 |
+
|
1212 |
+
D∈𝑃[ing, eg]
|
1213 |
+
|
1214 |
+
CIDTmarginal
|
1215 |
+
|
1216 |
+
𝐷 +CIDTamortized
|
1217 |
+
|
1218 |
+
𝐷 (4)
|
1219 |
+
|
1220 |
+
where 𝐷 denotes a network device on 𝑃[ing, eg] . Since inter-domain
|
1221 |
+
|
1222 |
+
communication mostly takes place over backbone networks, we con-
|
1223 |
+
|
1224 |
+
sider typical backbone-network devices in this work, e.g., IP/MPLS
|
1225 |
+
|
1226 |
+
core routers and optical wavelength-division multiplexed (WDM)
|
1227 |
+
|
1228 |
+
devices [1, 25].
|
1229 |
+
|
1230 |
+
4.4.1 Marginal CIDT. For each device 𝐷, CIDTmarginal
|
1231 |
+
|
1232 |
+
𝐷 is the re-
|
1233 |
+
|
1234 |
+
sult of (1) the marginal energy the device consumes to forward one
|
1235 |
+
|
1236 |
+
bit of data (or marginal Energy Intensity of Data Transmission,
|
1237 |
+
|
1238 |
+
EIDTmarginal
|
1239 |
+
|
1240 |
+
𝐷 in kWh/bit), and (2) the marginal per-bit energy con-
|
1241 |
+
|
1242 |
+
sumption of the device’s external cooling and facilities, which is
|
1243 |
+
|
1244 |
+
proportional to EIDTmarginal
|
1245 |
+
|
1246 |
+
𝐷 [25]. Thus, the total marginal energy
|
1247 |
+
|
1248 |
+
is also proportional to EIDTmarginal
|
1249 |
+
|
1250 |
+
𝐷 by a constant factor (𝜂D,c) de-
|
1251 |
+
|
1252 |
+
termined by the power-usage efficiency (PUE) [7, 25].
|
1253 |
+
|
1254 |
+
To compute CIDTmarginal
|
1255 |
+
|
1256 |
+
𝐷 , we multiply the total marginal energy
|
1257 |
+
|
1258 |
+
by the 𝐶𝐼𝐸 (in g/kWh cf. §2.2) in the location of that device (CIED).
|
1259 |
+
|
1260 |
+
Therefore,
|
1261 |
+
|
1262 |
+
CIDTmarginal
|
1263 |
+
|
1264 |
+
𝐷 = 𝜂D,cEIDTmarginal
|
1265 |
+
|
1266 |
+
D CIED (5)
|
1267 |
+
|
1268 |
+
</content>'
|
1269 |
+
- 'passage:
|
1270 |
+
|
1271 |
+
<citation> Laurent Chuat et al.. *The Complete Guide to SCION. From Design Principles
|
1272 |
+
to Formal Verification*. Springer International Publishing AG, 2022. </citation>
|
1273 |
+
|
1274 |
+
<type> book </type>
|
1275 |
+
|
1276 |
+
<page> 88 </page>
|
1277 |
+
|
1278 |
+
<content>
|
1279 |
+
|
1280 |
+
4 Control Plane
|
1281 |
+
|
1282 |
+
4.1.1.4 Peer Entry (PE)
|
1283 |
+
|
1284 |
+
Through a peer entry, an AS can announce that it has a peering link to another
|
1285 |
+
|
1286 |
+
AS. Peer entries have a format similar to that of hop entries, but with additional
|
1287 |
+
|
1288 |
+
fields:
|
1289 |
+
|
1290 |
+
PE “ x HF } Peer } PeerInterface } PeerMTU y, (4.7)
|
1291 |
+
|
1292 |
+
where HF contains the information necessary to create a data-plane hop, Peer
|
1293 |
+
|
1294 |
+
is the ISD-AS number of the peering AS, PeerInterface is the interface iden-
|
1295 |
+
|
1296 |
+
tifier of the peering link on the remote AS side, and PeerMTU specifies the
|
1297 |
+
|
1298 |
+
MTU on the peering link.
|
1299 |
+
|
1300 |
+
4.1.1.5 Hop Field (HF)
|
1301 |
+
|
1302 |
+
Finally, the hop field (HF), which is contained in hop entries and peer entries,
|
1303 |
+
is
|
1304 |
+
|
1305 |
+
used directly in the data plane for packet forwarding: It specifies the incoming
|
1306 |
+
|
1307 |
+
and outgoing interfaces of the ASes on the forwarding path. To prevent forgery,
|
1308 |
+
|
1309 |
+
this information is authenticated with a message authentication code (MAC).
|
1310 |
+
|
1311 |
+
A hop field has the following format:
|
1312 |
+
|
1313 |
+
HF “ x FlagsHF } ExpTime } ConsIngress } ConsEgress } HFAuthy, (4.8)
|
1314 |
+
|
1315 |
+
where FlagsHF may be used to indicate processing options for the AS; ExpTime
|
1316 |
+
|
1317 |
+
specifies for how long the hop field is valid; 2 ConsIngress and ConsEgress
|
1318 |
+
|
1319 |
+
identify, respectively, the ingress and egress interfaces (in the direction of
|
1320 |
+
con-
|
1321 |
+
|
1322 |
+
struction, i.e., in the direction of beaconing); and HFAuthis a MAC.
|
1323 |
+
|
1324 |
+
We show how hop fields are authenticated (i.e., how the MAC is computed)
|
1325 |
+
|
1326 |
+
in §5.3.3. While the format of a SCION hop field is standardized, each AS can
|
1327 |
+
|
1328 |
+
independently choose the algorithm used to calculate the MAC.
|
1329 |
+
|
1330 |
+
4.1.2 Beacon Extensions
|
1331 |
+
|
1332 |
+
In addition to basic routing information like hop entries and peer entries, PCBs
|
1333 |
+
|
1334 |
+
can be used to communicate additional metadata.
|
1335 |
+
|
1336 |
+
4.1.2.1 Signed and Unsigned Extensions
|
1337 |
+
|
1338 |
+
There are two fields in PCBs that can contain optional metadata: The field
|
1339 |
+
|
1340 |
+
Ext contains extensions that are included in the signed component of an AS
|
1341 |
+
|
1342 |
+
entry and thus protected by the AS’s signature; the field ExtUnsigned contains
|
1343 |
+
|
1344 |
+
extensions that are not protected by the signature.
|
1345 |
+
|
1346 |
+
2The expiration time of a hop field is an offset relative to the PCB’s absolute
|
1347 |
+
info field times-
|
1348 |
+
|
1349 |
+
tamp TS. The combination of the two thus allows an AS to compute the absolute
|
1350 |
+
expiration
|
1351 |
+
|
1352 |
+
time of the hop field. Data-plane packets using the hop field after the expiration
|
1353 |
+
time can be
|
1354 |
+
|
1355 |
+
dropped.
|
1356 |
+
|
1357 |
+
68
|
1358 |
+
|
1359 |
+
</content>'
|
1360 |
+
- source_sentence: 'query: How does SCION handle modification of the address header?'
|
1361 |
+
sentences:
|
1362 |
+
- 'passage:
|
1363 |
+
|
1364 |
+
<citation> Laurent Chuat et al.. *The Complete Guide to SCION. From Design Principles
|
1365 |
+
to Formal Verification*. Springer International Publishing AG, 2022. </citation>
|
1366 |
+
|
1367 |
+
<type> book </type>
|
1368 |
+
|
1369 |
+
<page> 177 </page>
|
1370 |
+
|
1371 |
+
<content>
|
1372 |
+
|
1373 |
+
7 Security Analysis
|
1374 |
+
|
1375 |
+
TOBIAS KLENZE , M ARKUS LEGNER , A DRIAN PERRIG , B ENJAMIN
|
1376 |
+
|
1377 |
+
ROTHENBERGER *
|
1378 |
+
|
1379 |
+
Chapter Contents
|
1380 |
+
|
1381 |
+
7.1 Security Goals and Properties . . . . . . . . . . . . . . . . . 158
|
1382 |
+
|
1383 |
+
7.1.1 Overall Security Properties . . . . . . . . . . . . . . . . . . 158
|
1384 |
+
|
1385 |
+
7.1.2 Security Properties of ASes . . . . . . . . . . . . . . . . . 159
|
1386 |
+
|
1387 |
+
7.1.3 Security Properties of End Hosts . . . . . . . . . . . . . . . 160
|
1388 |
+
|
1389 |
+
7.2 Threat Model . . . . . . . . . . . . . . . . . . . . . . . . . . 161
|
1390 |
+
|
1391 |
+
7.3 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
|
1392 |
+
|
1393 |
+
7.3.1 Baseline: Security in Today’s Internet . . . . . . . . . . . . . 163
|
1394 |
+
|
1395 |
+
7.3.2 Security Properties Achieved by SCION . . . . . . . . . . . 164
|
1396 |
+
|
1397 |
+
7.4 Control-Plane Security . . . . . . . . . . . . . . . . . . . . . 165
|
1398 |
+
|
1399 |
+
7.4.1 Path Hijacking through Interposition . . . . . . . . . . . . . 166
|
1400 |
+
|
1401 |
+
7.4.2 Creation of Spurious ASes . . . . . . . . . . . . . . . . . . 167
|
1402 |
+
|
1403 |
+
7.4.3 Peering Link Misuse . . . . . . . . . . . . . . . . . . . . . 167
|
1404 |
+
|
1405 |
+
7.4.4 Manipulation of the Path-Selection Process . . . . . . . . . . 168
|
1406 |
+
|
1407 |
+
7.5 Path Authorization . . . . . . . . . . . . . . . . . . . . . . . 170
|
1408 |
+
|
1409 |
+
7.5.1 Crafting Unauthorized Hop Fields . . . . . . . . . . . . . . 171
|
1410 |
+
|
1411 |
+
7.5.2 Protection of Validity Period . . . . . . . . . . . . . . . . . 171
|
1412 |
+
|
1413 |
+
7.5.3 Path Splicing . . . . . . . . . . . . . . . . . . . . . . . . 171
|
1414 |
+
|
1415 |
+
7.6 Data-Plane Security . . . . . . . . . . . . . . . . . . . . . . . 172
|
1416 |
+
|
1417 |
+
7.6.1 Modification of Path Header . . . . . . . . . . . . . . . . . 173
|
1418 |
+
|
1419 |
+
7.6.2 Detectability . . . . . . . . . . . . . . . . . . . . . . . . . 173
|
1420 |
+
|
1421 |
+
7.6.3 Modification of Address Header . . . . . . . . . . . . . . . 174
|
1422 |
+
|
1423 |
+
7.7 Source Authentication . . . . . . . . . . . . . . . . . . . . . 174
|
1424 |
+
|
1425 |
+
7.7.1 Reflection Attacks on Local End Hosts . . . . . . . . . . . . 175
|
1426 |
+
|
1427 |
+
7.7.2 Reflection Attacks on End Hosts in Other ASes . . . . . . . . 175
|
1428 |
+
|
1429 |
+
7.7.3 Defenses against Address Spoofing . . . . . . . . . . . . . . 176
|
1430 |
+
|
1431 |
+
7.8 Absence of Kill Switches . . . . . . . . . . . . . . . . . . . . 176
|
1432 |
+
|
1433 |
+
7.8.1 Local ISD Kill Switch . . . . . . . . . . . . . . . . . . . . 177
|
1434 |
+
|
1435 |
+
*This chapter reuses content from Barrera, Klenze, Perrig, Reischuk, Rothenberger,
|
1436 |
+
and Sza-
|
1437 |
+
|
1438 |
+
lachowski [52].
|
1439 |
+
|
1440 |
+
157
|
1441 |
+
|
1442 |
+
</content>'
|
1443 |
+
- "passage:\n<url> https://www.ietf.org/archive/id/draft-dekater-scion-dataplane-04.txt\
|
1444 |
+
\ </url>\n<type> specification </type>\n<content>\n\n\n\nde Kater, et al. \
|
1445 |
+
\ Expires 27 June 2025 [Page 9]\n\f\nInternet-Draft \
|
1446 |
+
\ SCION DP December 2024\n\n\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\
|
1447 |
+
\ | |\n | |\n |\
|
1448 |
+
\ Payload (L4) |\n | |\n | \
|
1449 |
+
\ |\n | |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\
|
1450 |
+
\ | |\n | SCION |\n |\
|
1451 |
+
\ |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --------------+\n\
|
1452 |
+
\ | UDP | |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\
|
1453 |
+
\ Intra-domain |\n | IP | |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\
|
1454 |
+
\ protocol |\n | Link Layer | |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\
|
1455 |
+
\ --------------+\n\n Figure 1: The SCION header within the protocol stack\
|
1456 |
+
\ in a typical\n deployment.\n\n A complete SCION\
|
1457 |
+
\ address is composed of the <ISD, AS, endpoint\n address> 3-tuple. The ISD-AS\
|
1458 |
+
\ part is used for inter-domain routing.\n The endpoint address part is only\
|
1459 |
+
\ used for intra-domain forwarding at\n the source and destination ASes. This\
|
1460 |
+
\ implies that endpoint\n addresses are only required to be globally unique\
|
1461 |
+
\ within each SCION\n AS. This means, for example, that an endpoint running\
|
1462 |
+
\ a SCION stack\n using a [RFC1918] could directly communicate with another\
|
1463 |
+
\ SCION\n endpoint using a [RFC1918] endpoint address in a different SCION AS.\n\
|
1464 |
+
\n The data transmission order for SCION is the same as for IPv6 as\n defined\
|
1465 |
+
\ in Introduction of [RFC8200].\n\n1.3.2. Intra-Domain Forwarding Process\n\n\
|
1466 |
+
\ When transiting an intermediate SCION AS, a packet gets forwarded by\n at\
|
1467 |
+
\ most two SCION routers. The forwarding process consists of the\n following\
|
1468 |
+
\ steps.\n\n 1. The AS's SCION ingress router receives a SCION packet from\
|
1469 |
+
\ the\n neighboring AS.\n\n 2. The SCION router parses, validates, and\
|
1470 |
+
\ authenticates the SCION\n header.\n\n\nde Kater, et al. Expires\
|
1471 |
+
\ 27 June 2025 [Page 10]\n\f\nInternet-Draft \
|
1472 |
+
\ SCION DP December 2024\n\n\n 3. The SCION router maps the\
|
1473 |
+
\ egress interface ID in the current Hop\n Field of the SCION header to\
|
1474 |
+
\ the destination address of the\n intra-domain protocol (e.g. MPLS or\
|
1475 |
+
\ IP) of the egress border\n router.\n\n 4. The packet is forwarded within\
|
1476 |
+
\ the AS by SCION-unaware routers\n and switches based on the header of\
|
1477 |
+
\ the intra-domain protocol.\n\n 5. Upon receiving the packet, the SCION egress\
|
1478 |
+
\ router strips off the\n header of the intra-domain protocol, again validates\
|
1479 |
+
\ and updates\n the SCION header, and forwards the packet to the neighboring\n\
|
1480 |
+
\ SCION router.\n\n 6. The last SCION router on the path forwards the\
|
1481 |
+
\ packet to the\n packet's destination endpoint indicated by the field DstHostAddr\n\
|
1482 |
+
\ of the Address Header (Section 2.2).\n\n1.3.3. Configuration\n\n Border\
|
1483 |
+
\ routers require mappings from SCION interface IDs to underlay\n addresses\
|
1484 |
+
\ and such information MUST be supplied to each router in an\n out of band fashion\
|
1485 |
+
\ (e.g in a configuration file). For each link to\n a neighbor, these values\
|
1486 |
+
\ MUST be configured. A typical\n implementation will require:\n\n * Interface\
|
1487 |
+
\ ID.\n\n * Link type (core, parent, child, peer). Link type depends on\n\
|
1488 |
+
\ mutual agreements between the organizations operating the ASes at\n \
|
1489 |
+
\ each end of each link.\n\n * Neighbor ISD-AS number.\n\n * For the router\
|
1490 |
+
\ that manages the interface: the neighbor interface\n underlay address.\n\
|
1491 |
+
\n * For the routers that do not manage the interface: the address of\n \
|
1492 |
+
\ the intra-domain protocol on the router that does.\n\n In order to forward\
|
1493 |
+
\ traffic to a service endpoint address (DT/DS ==\n 0b01 in the common header\
|
1494 |
+
\ (Section 2.1)), a border router translates\n the service number into a specific\
|
1495 |
+
\ destination address. The method\n used to accomplish the translation is not\
|
1496 |
+
\ defined by this document\n and is only dependent on the implementation and\
|
1497 |
+
\ the choices of each\n AS's administrator. In current practice this is accomplished\
|
1498 |
+
\ by way\n of a configuration file.\n</content>"
|
1499 |
+
- 'passage:
|
1500 |
+
|
1501 |
+
<citation> Laurent Chuat et al.. *The Complete Guide to SCION. From Design Principles
|
1502 |
+
to Formal Verification*. Springer International Publishing AG, 2022. </citation>
|
1503 |
+
|
1504 |
+
<type> book </type>
|
1505 |
+
|
1506 |
+
<page> 191 </page>
|
1507 |
+
|
1508 |
+
<content>
|
1509 |
+
|
1510 |
+
7.5 Path Authorization
|
1511 |
+
|
1512 |
+
7.5.1 Crafting Unauthorized Hop Fields
|
1513 |
+
|
1514 |
+
Hop fields are protected with MACs and, if the corresponding key is unknown,
|
1515 |
+
|
1516 |
+
the adversary can at best attempt to perform a brute-force attack to determine
|
1517 |
+
|
1518 |
+
the key. Candidate keys can be validated by checking the MAC contained in
|
1519 |
+
|
1520 |
+
sample hop fields. As SCION uses 128-bit keys by default, such an off-line
|
1521 |
+
|
1522 |
+
attack is computationally infeasible in practice. Furthermore, the keys for the
|
1523 |
+
|
1524 |
+
MAC computation are short-lived, with a validity period of 24 hours.
|
1525 |
+
|
1526 |
+
MAC schemes are not generally specified by SCION and may thus be indi-
|
1527 |
+
|
1528 |
+
vidually chosen by each AS. A hop field’s MAC is only checked by the AS that
|
1529 |
+
|
1530 |
+
created it, which enables algorithm agility for the MAC scheme. If a certain
|
1531 |
+
|
1532 |
+
MAC algorithm is discovered to be weak or insecure, ASes can quickly switch
|
1533 |
+
|
1534 |
+
to a secure algorithm without the need for coordination with other ASes. This
|
1535 |
+
|
1536 |
+
property is known as cryptographic agility and is further discussed Chapter 17.
|
1537 |
+
|
1538 |
+
The adversary might also attempt to directly brute-force a MAC (instead of
|
1539 |
+
|
1540 |
+
the MAC’s key). However, this requires an online attack : One packet would
|
1541 |
+
|
1542 |
+
need to be sent to verify each guess. For an ℓ-bit MAC, the adversary needs
|
1543 |
+
|
1544 |
+
to generate 2 ℓ´1 packets on average to forge one correct MAC. For the 6-byte
|
1545 |
+
|
1546 |
+
MACs, which are proposed at the time of writing, the adversary would need
|
1547 |
+
|
1548 |
+
to try 2 47 « 140 trillion different MACs to successfully forge the MAC of a
|
1549 |
+
|
1550 |
+
single hop field. For each incorrect hop field, the corresponding AS returns an
|
1551 |
+
|
1552 |
+
SCMP packet. Even though an adversary can observe whether a hop field has
|
1553 |
+
|
1554 |
+
been accepted, each incorrect guess is visible to a monitoring entity and thus
|
1555 |
+
|
1556 |
+
the attack can be easily detected.
|
1557 |
+
|
1558 |
+
Unfortunately, in the unlikely case where such an online brute-force attack
|
1559 |
+
|
1560 |
+
succeeds, the obtained hop field can be reused until its eventual expiration. The
|
1561 |
+
|
1562 |
+
EPIC path type presented in § 10.1 resolves this issue by introducing per-packet
|
1563 |
+
|
1564 |
+
unique MACs.
|
1565 |
+
|
1566 |
+
7.5.2 Protection of Validity Period
|
1567 |
+
|
1568 |
+
The metadata for each path segment stored in the info field inside the path in
|
1569 |
+
|
1570 |
+
the SCION header (see § 5.4 on page 101) includes a timestamp, which is set
|
1571 |
+
|
1572 |
+
by the initiator of the PCB. This timestamp cannot be modified by an adversary
|
1573 |
+
|
1574 |
+
as it is included in the calculation of the MAC for each hop field. This ensures
|
1575 |
+
|
1576 |
+
that the timestamp cannot be set to a later date to extend the validity of the
|
1577 |
+
|
1578 |
+
path.
|
1579 |
+
|
1580 |
+
7.5.3 Path Splicing
|
1581 |
+
|
1582 |
+
In a path-splicing attack, an adversary (either controlling an AS or an end host)
|
1583 |
+
|
1584 |
+
takes valid hop fields of multiple path segments and splices them together to
|
1585 |
+
|
1586 |
+
obtain a new valid path. We have already described such attacks in § 5.3.2 and
|
1587 |
+
|
1588 |
+
used them to motivate SCION’s MAC-chaining mechanism: By including the
|
1589 |
+
|
1590 |
+
info field of a segment in the input to each hop field’s MAC computation and
|
1591 |
+
|
1592 |
+
171
|
1593 |
+
|
1594 |
+
</content>'
|
1595 |
+
pipeline_tag: sentence-similarity
|
1596 |
+
library_name: sentence-transformers
|
1597 |
+
metrics:
|
1598 |
+
- cosine_accuracy@1
|
1599 |
+
- cosine_accuracy@3
|
1600 |
+
- cosine_accuracy@5
|
1601 |
+
- cosine_accuracy@10
|
1602 |
+
- cosine_precision@1
|
1603 |
+
- cosine_precision@3
|
1604 |
+
- cosine_precision@5
|
1605 |
+
- cosine_precision@10
|
1606 |
+
- cosine_recall@1
|
1607 |
+
- cosine_recall@3
|
1608 |
+
- cosine_recall@5
|
1609 |
+
- cosine_recall@10
|
1610 |
+
- cosine_ndcg@10
|
1611 |
+
- cosine_mrr@10
|
1612 |
+
- cosine_map@100
|
1613 |
+
model-index:
|
1614 |
+
- name: SentenceTransformer based on sentence-transformers/all-MiniLM-L6-v2
|
1615 |
+
results:
|
1616 |
+
- task:
|
1617 |
+
type: information-retrieval
|
1618 |
+
name: Information Retrieval
|
1619 |
+
dataset:
|
1620 |
+
name: dev evaluation
|
1621 |
+
type: dev-evaluation
|
1622 |
+
metrics:
|
1623 |
+
- type: cosine_accuracy@1
|
1624 |
+
value: 0.14969135802469136
|
1625 |
+
name: Cosine Accuracy@1
|
1626 |
+
- type: cosine_accuracy@3
|
1627 |
+
value: 0.33101851851851855
|
1628 |
+
name: Cosine Accuracy@3
|
1629 |
+
- type: cosine_accuracy@5
|
1630 |
+
value: 0.4209104938271605
|
1631 |
+
name: Cosine Accuracy@5
|
1632 |
+
- type: cosine_accuracy@10
|
1633 |
+
value: 0.5327932098765432
|
1634 |
+
name: Cosine Accuracy@10
|
1635 |
+
- type: cosine_precision@1
|
1636 |
+
value: 0.14969135802469136
|
1637 |
+
name: Cosine Precision@1
|
1638 |
+
- type: cosine_precision@3
|
1639 |
+
value: 0.11033950617283951
|
1640 |
+
name: Cosine Precision@3
|
1641 |
+
- type: cosine_precision@5
|
1642 |
+
value: 0.0841820987654321
|
1643 |
+
name: Cosine Precision@5
|
1644 |
+
- type: cosine_precision@10
|
1645 |
+
value: 0.05327932098765433
|
1646 |
+
name: Cosine Precision@10
|
1647 |
+
- type: cosine_recall@1
|
1648 |
+
value: 0.14969135802469136
|
1649 |
+
name: Cosine Recall@1
|
1650 |
+
- type: cosine_recall@3
|
1651 |
+
value: 0.33101851851851855
|
1652 |
+
name: Cosine Recall@3
|
1653 |
+
- type: cosine_recall@5
|
1654 |
+
value: 0.4209104938271605
|
1655 |
+
name: Cosine Recall@5
|
1656 |
+
- type: cosine_recall@10
|
1657 |
+
value: 0.5327932098765432
|
1658 |
+
name: Cosine Recall@10
|
1659 |
+
- type: cosine_ndcg@10
|
1660 |
+
value: 0.32869830265467476
|
1661 |
+
name: Cosine Ndcg@10
|
1662 |
+
- type: cosine_mrr@10
|
1663 |
+
value: 0.26489733367626966
|
1664 |
+
name: Cosine Mrr@10
|
1665 |
+
- type: cosine_map@100
|
1666 |
+
value: 0.27706589741663973
|
1667 |
+
name: Cosine Map@100
|
1668 |
+
---
|
1669 |
+
|
1670 |
+
# SentenceTransformer based on sentence-transformers/all-MiniLM-L6-v2
|
1671 |
+
|
1672 |
+
This is a [sentence-transformers](https://www.SBERT.net) model finetuned from [sentence-transformers/all-MiniLM-L6-v2](https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2). It maps sentences & paragraphs to a 384-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.
|
1673 |
+
|
1674 |
+
## Model Details
|
1675 |
+
|
1676 |
+
### Model Description
|
1677 |
+
- **Model Type:** Sentence Transformer
|
1678 |
+
- **Base model:** [sentence-transformers/all-MiniLM-L6-v2](https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2) <!-- at revision fa97f6e7cb1a59073dff9e6b13e2715cf7475ac9 -->
|
1679 |
+
- **Maximum Sequence Length:** 256 tokens
|
1680 |
+
- **Output Dimensionality:** 384 dimensions
|
1681 |
+
- **Similarity Function:** Cosine Similarity
|
1682 |
+
<!-- - **Training Dataset:** Unknown -->
|
1683 |
+
<!-- - **Language:** Unknown -->
|
1684 |
+
<!-- - **License:** Unknown -->
|
1685 |
+
|
1686 |
+
### Model Sources
|
1687 |
+
|
1688 |
+
- **Documentation:** [Sentence Transformers Documentation](https://sbert.net)
|
1689 |
+
- **Repository:** [Sentence Transformers on GitHub](https://github.com/UKPLab/sentence-transformers)
|
1690 |
+
- **Hugging Face:** [Sentence Transformers on Hugging Face](https://huggingface.co/models?library=sentence-transformers)
|
1691 |
+
|
1692 |
+
### Full Model Architecture
|
1693 |
+
|
1694 |
+
```
|
1695 |
+
SentenceTransformer(
|
1696 |
+
(0): Transformer({'max_seq_length': 256, 'do_lower_case': False}) with Transformer model: BertModel
|
1697 |
+
(1): Pooling({'word_embedding_dimension': 384, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
|
1698 |
+
(2): Normalize()
|
1699 |
+
)
|
1700 |
+
```
|
1701 |
+
|
1702 |
+
## Usage
|
1703 |
+
|
1704 |
+
### Direct Usage (Sentence Transformers)
|
1705 |
+
|
1706 |
+
First install the Sentence Transformers library:
|
1707 |
+
|
1708 |
+
```bash
|
1709 |
+
pip install -U sentence-transformers
|
1710 |
+
```
|
1711 |
+
|
1712 |
+
Then you can load this model and run inference.
|
1713 |
+
```python
|
1714 |
+
from sentence_transformers import SentenceTransformer
|
1715 |
+
|
1716 |
+
# Download from the 🤗 Hub
|
1717 |
+
model = SentenceTransformer("tjohn327/scion-all-MiniLM-L6-v2")
|
1718 |
+
# Run inference
|
1719 |
+
sentences = [
|
1720 |
+
'query: How does SCION handle modification of the address header?',
|
1721 |
+
'passage:\n<citation> Laurent Chuat et al.. *The Complete Guide to SCION. From Design Principles to Formal Verification*. Springer International Publishing AG, 2022. </citation>\n<type> book </type>\n<page> 177 </page>\n<content>\n7 Security Analysis\nTOBIAS KLENZE , M ARKUS LEGNER , A DRIAN PERRIG , B ENJAMIN\nROTHENBERGER *\nChapter Contents\n7.1 Security Goals and Properties . . . . . . . . . . . . . . . . . 158\n7.1.1 Overall Security Properties . . . . . . . . . . . . . . . . . . 158\n7.1.2 Security Properties of ASes . . . . . . . . . . . . . . . . . 159\n7.1.3 Security Properties of End Hosts . . . . . . . . . . . . . . . 160\n7.2 Threat Model . . . . . . . . . . . . . . . . . . . . . . . . . . 161\n7.3 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162\n7.3.1 Baseline: Security in Today’s Internet . . . . . . . . . . . . . 163\n7.3.2 Security Properties Achieved by SCION . . . . . . . . . . . 164\n7.4 Control-Plane Security . . . . . . . . . . . . . . . . . . . . . 165\n7.4.1 Path Hijacking through Interposition . . . . . . . . . . . . . 166\n7.4.2 Creation of Spurious ASes . . . . . . . . . . . . . . . . . . 167\n7.4.3 Peering Link Misuse . . . . . . . . . . . . . . . . . . . . . 167\n7.4.4 Manipulation of the Path-Selection Process . . . . . . . . . . 168\n7.5 Path Authorization . . . . . . . . . . . . . . . . . . . . . . . 170\n7.5.1 Crafting Unauthorized Hop Fields . . . . . . . . . . . . . . 171\n7.5.2 Protection of Validity Period . . . . . . . . . . . . . . . . . 171\n7.5.3 Path Splicing . . . . . . . . . . . . . . . . . . . . . . . . 171\n7.6 Data-Plane Security . . . . . . . . . . . . . . . . . . . . . . . 172\n7.6.1 Modification of Path Header . . . . . . . . . . . . . . . . . 173\n7.6.2 Detectability . . . . . . . . . . . . . . . . . . . . . . . . . 173\n7.6.3 Modification of Address Header . . . . . . . . . . . . . . . 174\n7.7 Source Authentication . . . . . . . . . . . . . . . . . . . . . 174\n7.7.1 Reflection Attacks on Local End Hosts . . . . . . . . . . . . 175\n7.7.2 Reflection Attacks on End Hosts in Other ASes . . . . . . . . 175\n7.7.3 Defenses against Address Spoofing . . . . . . . . . . . . . . 176\n7.8 Absence of Kill Switches . . . . . . . . . . . . . . . . . . . . 176\n7.8.1 Local ISD Kill Switch . . . . . . . . . . . . . . . . . . . . 177\n*This chapter reuses content from Barrera, Klenze, Perrig, Reischuk, Rothenberger, and Sza-\nlachowski [52].\n157\n</content>',
|
1722 |
+
"passage:\n<url> https://www.ietf.org/archive/id/draft-dekater-scion-dataplane-04.txt </url>\n<type> specification </type>\n<content>\n\n\n\nde Kater, et al. Expires 27 June 2025 [Page 9]\n\x0c\nInternet-Draft SCION DP December 2024\n\n\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n | |\n | |\n | Payload (L4) |\n | |\n | |\n | |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n | |\n | SCION |\n | |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --------------+\n | UDP | |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Intra-domain |\n | IP | |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ protocol |\n | Link Layer | |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --------------+\n\n Figure 1: The SCION header within the protocol stack in a typical\n deployment.\n\n A complete SCION address is composed of the <ISD, AS, endpoint\n address> 3-tuple. The ISD-AS part is used for inter-domain routing.\n The endpoint address part is only used for intra-domain forwarding at\n the source and destination ASes. This implies that endpoint\n addresses are only required to be globally unique within each SCION\n AS. This means, for example, that an endpoint running a SCION stack\n using a [RFC1918] could directly communicate with another SCION\n endpoint using a [RFC1918] endpoint address in a different SCION AS.\n\n The data transmission order for SCION is the same as for IPv6 as\n defined in Introduction of [RFC8200].\n\n1.3.2. Intra-Domain Forwarding Process\n\n When transiting an intermediate SCION AS, a packet gets forwarded by\n at most two SCION routers. The forwarding process consists of the\n following steps.\n\n 1. The AS's SCION ingress router receives a SCION packet from the\n neighboring AS.\n\n 2. The SCION router parses, validates, and authenticates the SCION\n header.\n\n\nde Kater, et al. Expires 27 June 2025 [Page 10]\n\x0c\nInternet-Draft SCION DP December 2024\n\n\n 3. The SCION router maps the egress interface ID in the current Hop\n Field of the SCION header to the destination address of the\n intra-domain protocol (e.g. MPLS or IP) of the egress border\n router.\n\n 4. The packet is forwarded within the AS by SCION-unaware routers\n and switches based on the header of the intra-domain protocol.\n\n 5. Upon receiving the packet, the SCION egress router strips off the\n header of the intra-domain protocol, again validates and updates\n the SCION header, and forwards the packet to the neighboring\n SCION router.\n\n 6. The last SCION router on the path forwards the packet to the\n packet's destination endpoint indicated by the field DstHostAddr\n of the Address Header (Section 2.2).\n\n1.3.3. Configuration\n\n Border routers require mappings from SCION interface IDs to underlay\n addresses and such information MUST be supplied to each router in an\n out of band fashion (e.g in a configuration file). For each link to\n a neighbor, these values MUST be configured. A typical\n implementation will require:\n\n * Interface ID.\n\n * Link type (core, parent, child, peer). Link type depends on\n mutual agreements between the organizations operating the ASes at\n each end of each link.\n\n * Neighbor ISD-AS number.\n\n * For the router that manages the interface: the neighbor interface\n underlay address.\n\n * For the routers that do not manage the interface: the address of\n the intra-domain protocol on the router that does.\n\n In order to forward traffic to a service endpoint address (DT/DS ==\n 0b01 in the common header (Section 2.1)), a border router translates\n the service number into a specific destination address. The method\n used to accomplish the translation is not defined by this document\n and is only dependent on the implementation and the choices of each\n AS's administrator. In current practice this is accomplished by way\n of a configuration file.\n</content>",
|
1723 |
+
]
|
1724 |
+
embeddings = model.encode(sentences)
|
1725 |
+
print(embeddings.shape)
|
1726 |
+
# [3, 384]
|
1727 |
+
|
1728 |
+
# Get the similarity scores for the embeddings
|
1729 |
+
similarities = model.similarity(embeddings, embeddings)
|
1730 |
+
print(similarities.shape)
|
1731 |
+
# [3, 3]
|
1732 |
+
```
|
1733 |
+
|
1734 |
+
<!--
|
1735 |
+
### Direct Usage (Transformers)
|
1736 |
+
|
1737 |
+
<details><summary>Click to see the direct usage in Transformers</summary>
|
1738 |
+
|
1739 |
+
</details>
|
1740 |
+
-->
|
1741 |
+
|
1742 |
+
<!--
|
1743 |
+
### Downstream Usage (Sentence Transformers)
|
1744 |
+
|
1745 |
+
You can finetune this model on your own dataset.
|
1746 |
+
|
1747 |
+
<details><summary>Click to expand</summary>
|
1748 |
+
|
1749 |
+
</details>
|
1750 |
+
-->
|
1751 |
+
|
1752 |
+
<!--
|
1753 |
+
### Out-of-Scope Use
|
1754 |
+
|
1755 |
+
*List how the model may foreseeably be misused and address what users ought not to do with the model.*
|
1756 |
+
-->
|
1757 |
+
|
1758 |
+
## Evaluation
|
1759 |
+
|
1760 |
+
### Metrics
|
1761 |
+
|
1762 |
+
#### Information Retrieval
|
1763 |
+
|
1764 |
+
* Dataset: `dev-evaluation`
|
1765 |
+
* Evaluated with [<code>InformationRetrievalEvaluator</code>](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.InformationRetrievalEvaluator)
|
1766 |
+
|
1767 |
+
| Metric | Value |
|
1768 |
+
|:--------------------|:-----------|
|
1769 |
+
| cosine_accuracy@1 | 0.1497 |
|
1770 |
+
| cosine_accuracy@3 | 0.331 |
|
1771 |
+
| cosine_accuracy@5 | 0.4209 |
|
1772 |
+
| cosine_accuracy@10 | 0.5328 |
|
1773 |
+
| cosine_precision@1 | 0.1497 |
|
1774 |
+
| cosine_precision@3 | 0.1103 |
|
1775 |
+
| cosine_precision@5 | 0.0842 |
|
1776 |
+
| cosine_precision@10 | 0.0533 |
|
1777 |
+
| cosine_recall@1 | 0.1497 |
|
1778 |
+
| cosine_recall@3 | 0.331 |
|
1779 |
+
| cosine_recall@5 | 0.4209 |
|
1780 |
+
| cosine_recall@10 | 0.5328 |
|
1781 |
+
| **cosine_ndcg@10** | **0.3287** |
|
1782 |
+
| cosine_mrr@10 | 0.2649 |
|
1783 |
+
| cosine_map@100 | 0.2771 |
|
1784 |
+
|
1785 |
+
<!--
|
1786 |
+
## Bias, Risks and Limitations
|
1787 |
+
|
1788 |
+
*What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model.*
|
1789 |
+
-->
|
1790 |
+
|
1791 |
+
<!--
|
1792 |
+
### Recommendations
|
1793 |
+
|
1794 |
+
*What are recommendations with respect to the foreseeable issues? For example, filtering explicit content.*
|
1795 |
+
-->
|
1796 |
+
|
1797 |
+
## Training Details
|
1798 |
+
|
1799 |
+
### Training Dataset
|
1800 |
+
|
1801 |
+
#### Unnamed Dataset
|
1802 |
+
|
1803 |
+
* Size: 23,200 training samples
|
1804 |
+
* Columns: <code>sentence_0</code>, <code>sentence_1</code>, and <code>label</code>
|
1805 |
+
* Approximate statistics based on the first 1000 samples:
|
1806 |
+
| | sentence_0 | sentence_1 | label |
|
1807 |
+
|:--------|:----------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------|:--------------------------------------------------------------|
|
1808 |
+
| type | string | string | float |
|
1809 |
+
| details | <ul><li>min: 9 tokens</li><li>mean: 19.41 tokens</li><li>max: 34 tokens</li></ul> | <ul><li>min: 111 tokens</li><li>mean: 254.6 tokens</li><li>max: 256 tokens</li></ul> | <ul><li>min: 1.0</li><li>mean: 1.0</li><li>max: 1.0</li></ul> |
|
1810 |
+
* Samples:
|
1811 |
+
| sentence_0 | sentence_1 | label |
|
1812 |
+
|:-------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------|
|
1813 |
+
| <code>query: Explain the role of the Packet Timestamp in SCION data packets.</code> | <code>passage:<br><url> https://docs.scion.org/en/latest/protocols/scion-header.html </url><br><type> documentation </type><br><content><br>Control plane:<br>The beaconing process is the same as for SCION, but the ASes not<br>only add the 6 bytes of the truncated MAC to the beacon, but further<br>append the remaining 10 bytes.<br><br>Data plane:<br>The source fetches the path, including all the 6-byte short hop<br>authenticators and the remaining 10 bytes of the authenticators,<br>from a (hidden) path server. We will refer to the fully assembled 16-byte<br>authenticators of the penultimate and last hop on the path as<br>\({\sigma_{\text{PH}}}\) for the penultimate hop (PH) and<br>\({\sigma_{\text{LH}}}\) for the last hop (LH), respectively.<br><br>The source then copies the short authenticators to the corresponding<br>MAC-subfield of the Hop Fields as for SCION path type packets and<br>adds the current Packet Timestamp. In addition, it calculates the<br>PHVF and LHVF as follows:<br><br>Here, “Timestamp” is the Timestamp from the first Info Field and<br>“Flags...</code> | <code>1.0</code> |
|
1814 |
+
| <code>query: What does the Dolev–Yao closure imply for intruder knowledge in SCION?</code> | <code>passage:<br><citation> Laurent Chuat et al.. *The Complete Guide to SCION. From Design Principles to Formal Verification*. Springer International Publishing AG, 2022. </citation><br><type> book </type><br><page> 526 </page><br><content><br>22 Design-Level Verification<br>hop field and tok field, respectively. This check ensures that the hop field (and<br>indeed the whole or partial path) is authorized. In SCION, this corresponds<br>to Item 6 of the checks performed by the ingress border router. Additionally,<br>the same check is performed by the egress border router. In the event system<br>that we present here, we do not include the update of the packet token field,<br>which is required to model Item 5 of the SCION ingress border router, where<br>the segment identifier is updated. We introduce instead an update mechanism<br>as an extension of our framework in § 22.4.5.<br>The events sendc and deliverc use the function fwdc to forward a packet:<br>fwdcpmq “ p |tok “ tokpmq, past “ hdpfutpmqq#pastpmq, fut “ tlpfutpmqq,<br>hist “ hdpfutpmqq#...</code> | <code>1.0</code> |
|
1815 |
+
| <code>query: How does the trust anchor pool function in SCION's certification path?</code> | <code>passage:<br><url> https://www.ietf.org/archive/id/draft-dekater-scion-pki-08.txt </url><br><type> specification </type><br><content><br><br>de Kater, et al. Expires 3 July 2025 [Page 40]<br> <br>Internet-Draft SCION CP-PKI December 2024<br><br><br> Two TRCs with byte equal payloads can be considered as equal because<br> the TRC payload exactly defines which signatures must be attached in<br> the signed TRC:<br><br> * The REQUIRED signatures from voting certificates are explicitly<br> mentioned in the votes field of the payload: If index "i" is part<br> of the votes field, then the voting certificate at position i in<br> the certificates sequence of the predecessor TRC casted a vote on<br> the successor TRC. See also Section 3.1.2.2.6.<br><br> * The REQUIRED signatures for new certificates are implied by the<br> currently valid TRC payload, and, in case of a TRC update, the<br> predecessor payload.<br><br>3.1.4. Certification Path - Trust Anchor Pool<br><br> Th...</code> | <code>1.0</code> |
|
1816 |
+
* Loss: [<code>MultipleNegativesRankingLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#multiplenegativesrankingloss) with these parameters:
|
1817 |
+
```json
|
1818 |
+
{
|
1819 |
+
"scale": 20.0,
|
1820 |
+
"similarity_fct": "cos_sim"
|
1821 |
+
}
|
1822 |
+
```
|
1823 |
+
|
1824 |
+
### Training Hyperparameters
|
1825 |
+
#### Non-Default Hyperparameters
|
1826 |
+
|
1827 |
+
- `eval_strategy`: steps
|
1828 |
+
- `per_device_train_batch_size`: 200
|
1829 |
+
- `per_device_eval_batch_size`: 200
|
1830 |
+
- `fp16`: True
|
1831 |
+
- `multi_dataset_batch_sampler`: round_robin
|
1832 |
+
|
1833 |
+
#### All Hyperparameters
|
1834 |
+
<details><summary>Click to expand</summary>
|
1835 |
+
|
1836 |
+
- `overwrite_output_dir`: False
|
1837 |
+
- `do_predict`: False
|
1838 |
+
- `eval_strategy`: steps
|
1839 |
+
- `prediction_loss_only`: True
|
1840 |
+
- `per_device_train_batch_size`: 200
|
1841 |
+
- `per_device_eval_batch_size`: 200
|
1842 |
+
- `per_gpu_train_batch_size`: None
|
1843 |
+
- `per_gpu_eval_batch_size`: None
|
1844 |
+
- `gradient_accumulation_steps`: 1
|
1845 |
+
- `eval_accumulation_steps`: None
|
1846 |
+
- `torch_empty_cache_steps`: None
|
1847 |
+
- `learning_rate`: 5e-05
|
1848 |
+
- `weight_decay`: 0.0
|
1849 |
+
- `adam_beta1`: 0.9
|
1850 |
+
- `adam_beta2`: 0.999
|
1851 |
+
- `adam_epsilon`: 1e-08
|
1852 |
+
- `max_grad_norm`: 1
|
1853 |
+
- `num_train_epochs`: 3
|
1854 |
+
- `max_steps`: -1
|
1855 |
+
- `lr_scheduler_type`: linear
|
1856 |
+
- `lr_scheduler_kwargs`: {}
|
1857 |
+
- `warmup_ratio`: 0.0
|
1858 |
+
- `warmup_steps`: 0
|
1859 |
+
- `log_level`: passive
|
1860 |
+
- `log_level_replica`: warning
|
1861 |
+
- `log_on_each_node`: True
|
1862 |
+
- `logging_nan_inf_filter`: True
|
1863 |
+
- `save_safetensors`: True
|
1864 |
+
- `save_on_each_node`: False
|
1865 |
+
- `save_only_model`: False
|
1866 |
+
- `restore_callback_states_from_checkpoint`: False
|
1867 |
+
- `no_cuda`: False
|
1868 |
+
- `use_cpu`: False
|
1869 |
+
- `use_mps_device`: False
|
1870 |
+
- `seed`: 42
|
1871 |
+
- `data_seed`: None
|
1872 |
+
- `jit_mode_eval`: False
|
1873 |
+
- `use_ipex`: False
|
1874 |
+
- `bf16`: False
|
1875 |
+
- `fp16`: True
|
1876 |
+
- `fp16_opt_level`: O1
|
1877 |
+
- `half_precision_backend`: auto
|
1878 |
+
- `bf16_full_eval`: False
|
1879 |
+
- `fp16_full_eval`: False
|
1880 |
+
- `tf32`: None
|
1881 |
+
- `local_rank`: 0
|
1882 |
+
- `ddp_backend`: None
|
1883 |
+
- `tpu_num_cores`: None
|
1884 |
+
- `tpu_metrics_debug`: False
|
1885 |
+
- `debug`: []
|
1886 |
+
- `dataloader_drop_last`: False
|
1887 |
+
- `dataloader_num_workers`: 0
|
1888 |
+
- `dataloader_prefetch_factor`: None
|
1889 |
+
- `past_index`: -1
|
1890 |
+
- `disable_tqdm`: False
|
1891 |
+
- `remove_unused_columns`: True
|
1892 |
+
- `label_names`: None
|
1893 |
+
- `load_best_model_at_end`: False
|
1894 |
+
- `ignore_data_skip`: False
|
1895 |
+
- `fsdp`: []
|
1896 |
+
- `fsdp_min_num_params`: 0
|
1897 |
+
- `fsdp_config`: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
|
1898 |
+
- `fsdp_transformer_layer_cls_to_wrap`: None
|
1899 |
+
- `accelerator_config`: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
|
1900 |
+
- `deepspeed`: None
|
1901 |
+
- `label_smoothing_factor`: 0.0
|
1902 |
+
- `optim`: adamw_torch
|
1903 |
+
- `optim_args`: None
|
1904 |
+
- `adafactor`: False
|
1905 |
+
- `group_by_length`: False
|
1906 |
+
- `length_column_name`: length
|
1907 |
+
- `ddp_find_unused_parameters`: None
|
1908 |
+
- `ddp_bucket_cap_mb`: None
|
1909 |
+
- `ddp_broadcast_buffers`: False
|
1910 |
+
- `dataloader_pin_memory`: True
|
1911 |
+
- `dataloader_persistent_workers`: False
|
1912 |
+
- `skip_memory_metrics`: True
|
1913 |
+
- `use_legacy_prediction_loop`: False
|
1914 |
+
- `push_to_hub`: False
|
1915 |
+
- `resume_from_checkpoint`: None
|
1916 |
+
- `hub_model_id`: None
|
1917 |
+
- `hub_strategy`: every_save
|
1918 |
+
- `hub_private_repo`: None
|
1919 |
+
- `hub_always_push`: False
|
1920 |
+
- `gradient_checkpointing`: False
|
1921 |
+
- `gradient_checkpointing_kwargs`: None
|
1922 |
+
- `include_inputs_for_metrics`: False
|
1923 |
+
- `include_for_metrics`: []
|
1924 |
+
- `eval_do_concat_batches`: True
|
1925 |
+
- `fp16_backend`: auto
|
1926 |
+
- `push_to_hub_model_id`: None
|
1927 |
+
- `push_to_hub_organization`: None
|
1928 |
+
- `mp_parameters`:
|
1929 |
+
- `auto_find_batch_size`: False
|
1930 |
+
- `full_determinism`: False
|
1931 |
+
- `torchdynamo`: None
|
1932 |
+
- `ray_scope`: last
|
1933 |
+
- `ddp_timeout`: 1800
|
1934 |
+
- `torch_compile`: False
|
1935 |
+
- `torch_compile_backend`: None
|
1936 |
+
- `torch_compile_mode`: None
|
1937 |
+
- `dispatch_batches`: None
|
1938 |
+
- `split_batches`: None
|
1939 |
+
- `include_tokens_per_second`: False
|
1940 |
+
- `include_num_input_tokens_seen`: False
|
1941 |
+
- `neftune_noise_alpha`: None
|
1942 |
+
- `optim_target_modules`: None
|
1943 |
+
- `batch_eval_metrics`: False
|
1944 |
+
- `eval_on_start`: False
|
1945 |
+
- `use_liger_kernel`: False
|
1946 |
+
- `eval_use_gather_object`: False
|
1947 |
+
- `average_tokens_across_devices`: False
|
1948 |
+
- `prompts`: None
|
1949 |
+
- `batch_sampler`: batch_sampler
|
1950 |
+
- `multi_dataset_batch_sampler`: round_robin
|
1951 |
+
|
1952 |
+
</details>
|
1953 |
+
|
1954 |
+
### Training Logs
|
1955 |
+
| Epoch | Step | dev-evaluation_cosine_ndcg@10 |
|
1956 |
+
|:-----:|:----:|:-----------------------------:|
|
1957 |
+
| 1.0 | 58 | 0.3021 |
|
1958 |
+
| 2.0 | 116 | 0.3203 |
|
1959 |
+
| 3.0 | 174 | 0.3287 |
|
1960 |
+
|
1961 |
+
|
1962 |
+
### Framework Versions
|
1963 |
+
- Python: 3.12.3
|
1964 |
+
- Sentence Transformers: 3.4.1
|
1965 |
+
- Transformers: 4.49.0
|
1966 |
+
- PyTorch: 2.6.0+cu124
|
1967 |
+
- Accelerate: 1.4.0
|
1968 |
+
- Datasets: 3.3.2
|
1969 |
+
- Tokenizers: 0.21.0
|
1970 |
+
|
1971 |
+
## Citation
|
1972 |
+
|
1973 |
+
### BibTeX
|
1974 |
+
|
1975 |
+
#### Sentence Transformers
|
1976 |
+
```bibtex
|
1977 |
+
@inproceedings{reimers-2019-sentence-bert,
|
1978 |
+
title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
|
1979 |
+
author = "Reimers, Nils and Gurevych, Iryna",
|
1980 |
+
booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
|
1981 |
+
month = "11",
|
1982 |
+
year = "2019",
|
1983 |
+
publisher = "Association for Computational Linguistics",
|
1984 |
+
url = "https://arxiv.org/abs/1908.10084",
|
1985 |
+
}
|
1986 |
+
```
|
1987 |
+
|
1988 |
+
#### MultipleNegativesRankingLoss
|
1989 |
+
```bibtex
|
1990 |
+
@misc{henderson2017efficient,
|
1991 |
+
title={Efficient Natural Language Response Suggestion for Smart Reply},
|
1992 |
+
author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
|
1993 |
+
year={2017},
|
1994 |
+
eprint={1705.00652},
|
1995 |
+
archivePrefix={arXiv},
|
1996 |
+
primaryClass={cs.CL}
|
1997 |
+
}
|
1998 |
+
```
|
1999 |
+
|
2000 |
+
<!--
|
2001 |
+
## Glossary
|
2002 |
+
|
2003 |
+
*Clearly define terms in order to be accessible across audiences.*
|
2004 |
+
-->
|
2005 |
+
|
2006 |
+
<!--
|
2007 |
+
## Model Card Authors
|
2008 |
+
|
2009 |
+
*Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction.*
|
2010 |
+
-->
|
2011 |
+
|
2012 |
+
<!--
|
2013 |
+
## Model Card Contact
|
2014 |
+
|
2015 |
+
*Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors.*
|
2016 |
+
-->
|
config.json
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_name_or_path": "sentence-transformers/all-MiniLM-L6-v2",
|
3 |
+
"architectures": [
|
4 |
+
"BertModel"
|
5 |
+
],
|
6 |
+
"attention_probs_dropout_prob": 0.1,
|
7 |
+
"classifier_dropout": null,
|
8 |
+
"gradient_checkpointing": false,
|
9 |
+
"hidden_act": "gelu",
|
10 |
+
"hidden_dropout_prob": 0.1,
|
11 |
+
"hidden_size": 384,
|
12 |
+
"initializer_range": 0.02,
|
13 |
+
"intermediate_size": 1536,
|
14 |
+
"layer_norm_eps": 1e-12,
|
15 |
+
"max_position_embeddings": 512,
|
16 |
+
"model_type": "bert",
|
17 |
+
"num_attention_heads": 12,
|
18 |
+
"num_hidden_layers": 6,
|
19 |
+
"pad_token_id": 0,
|
20 |
+
"position_embedding_type": "absolute",
|
21 |
+
"torch_dtype": "float32",
|
22 |
+
"transformers_version": "4.49.0",
|
23 |
+
"type_vocab_size": 2,
|
24 |
+
"use_cache": true,
|
25 |
+
"vocab_size": 30522
|
26 |
+
}
|
config_sentence_transformers.json
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"__version__": {
|
3 |
+
"sentence_transformers": "3.4.1",
|
4 |
+
"transformers": "4.49.0",
|
5 |
+
"pytorch": "2.6.0+cu124"
|
6 |
+
},
|
7 |
+
"prompts": {},
|
8 |
+
"default_prompt_name": null,
|
9 |
+
"similarity_fn_name": "cosine"
|
10 |
+
}
|
model.safetensors
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:7dd9a00dc4b88130472da5d291d1230c3eb1271a204cc1c34c47e4fcffe17262
|
3 |
+
size 90864192
|
modules.json
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
{
|
3 |
+
"idx": 0,
|
4 |
+
"name": "0",
|
5 |
+
"path": "",
|
6 |
+
"type": "sentence_transformers.models.Transformer"
|
7 |
+
},
|
8 |
+
{
|
9 |
+
"idx": 1,
|
10 |
+
"name": "1",
|
11 |
+
"path": "1_Pooling",
|
12 |
+
"type": "sentence_transformers.models.Pooling"
|
13 |
+
},
|
14 |
+
{
|
15 |
+
"idx": 2,
|
16 |
+
"name": "2",
|
17 |
+
"path": "2_Normalize",
|
18 |
+
"type": "sentence_transformers.models.Normalize"
|
19 |
+
}
|
20 |
+
]
|
sentence_bert_config.json
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"max_seq_length": 256,
|
3 |
+
"do_lower_case": false
|
4 |
+
}
|
special_tokens_map.json
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cls_token": {
|
3 |
+
"content": "[CLS]",
|
4 |
+
"lstrip": false,
|
5 |
+
"normalized": false,
|
6 |
+
"rstrip": false,
|
7 |
+
"single_word": false
|
8 |
+
},
|
9 |
+
"mask_token": {
|
10 |
+
"content": "[MASK]",
|
11 |
+
"lstrip": false,
|
12 |
+
"normalized": false,
|
13 |
+
"rstrip": false,
|
14 |
+
"single_word": false
|
15 |
+
},
|
16 |
+
"pad_token": {
|
17 |
+
"content": "[PAD]",
|
18 |
+
"lstrip": false,
|
19 |
+
"normalized": false,
|
20 |
+
"rstrip": false,
|
21 |
+
"single_word": false
|
22 |
+
},
|
23 |
+
"sep_token": {
|
24 |
+
"content": "[SEP]",
|
25 |
+
"lstrip": false,
|
26 |
+
"normalized": false,
|
27 |
+
"rstrip": false,
|
28 |
+
"single_word": false
|
29 |
+
},
|
30 |
+
"unk_token": {
|
31 |
+
"content": "[UNK]",
|
32 |
+
"lstrip": false,
|
33 |
+
"normalized": false,
|
34 |
+
"rstrip": false,
|
35 |
+
"single_word": false
|
36 |
+
}
|
37 |
+
}
|
tokenizer.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
tokenizer_config.json
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"added_tokens_decoder": {
|
3 |
+
"0": {
|
4 |
+
"content": "[PAD]",
|
5 |
+
"lstrip": false,
|
6 |
+
"normalized": false,
|
7 |
+
"rstrip": false,
|
8 |
+
"single_word": false,
|
9 |
+
"special": true
|
10 |
+
},
|
11 |
+
"100": {
|
12 |
+
"content": "[UNK]",
|
13 |
+
"lstrip": false,
|
14 |
+
"normalized": false,
|
15 |
+
"rstrip": false,
|
16 |
+
"single_word": false,
|
17 |
+
"special": true
|
18 |
+
},
|
19 |
+
"101": {
|
20 |
+
"content": "[CLS]",
|
21 |
+
"lstrip": false,
|
22 |
+
"normalized": false,
|
23 |
+
"rstrip": false,
|
24 |
+
"single_word": false,
|
25 |
+
"special": true
|
26 |
+
},
|
27 |
+
"102": {
|
28 |
+
"content": "[SEP]",
|
29 |
+
"lstrip": false,
|
30 |
+
"normalized": false,
|
31 |
+
"rstrip": false,
|
32 |
+
"single_word": false,
|
33 |
+
"special": true
|
34 |
+
},
|
35 |
+
"103": {
|
36 |
+
"content": "[MASK]",
|
37 |
+
"lstrip": false,
|
38 |
+
"normalized": false,
|
39 |
+
"rstrip": false,
|
40 |
+
"single_word": false,
|
41 |
+
"special": true
|
42 |
+
}
|
43 |
+
},
|
44 |
+
"clean_up_tokenization_spaces": false,
|
45 |
+
"cls_token": "[CLS]",
|
46 |
+
"do_basic_tokenize": true,
|
47 |
+
"do_lower_case": true,
|
48 |
+
"extra_special_tokens": {},
|
49 |
+
"mask_token": "[MASK]",
|
50 |
+
"max_length": 128,
|
51 |
+
"model_max_length": 256,
|
52 |
+
"never_split": null,
|
53 |
+
"pad_to_multiple_of": null,
|
54 |
+
"pad_token": "[PAD]",
|
55 |
+
"pad_token_type_id": 0,
|
56 |
+
"padding_side": "right",
|
57 |
+
"sep_token": "[SEP]",
|
58 |
+
"stride": 0,
|
59 |
+
"strip_accents": null,
|
60 |
+
"tokenize_chinese_chars": true,
|
61 |
+
"tokenizer_class": "BertTokenizer",
|
62 |
+
"truncation_side": "right",
|
63 |
+
"truncation_strategy": "longest_first",
|
64 |
+
"unk_token": "[UNK]"
|
65 |
+
}
|
vocab.txt
ADDED
The diff for this file is too large to render.
See raw diff
|
|