Policy
بلاک policy مهلتهای اتصال بهازای هر سطح، اندازهٔ بافرها، و این که کدام شمارندههای ترافیک باید توسط زیرسیستم آمار پر شوند را تنظیم میکند.
گزینههای سطح بالا
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
levels | map[uint32]*Policy | {} | { "<level>": Policy } | نگاشتی با کلید سطح کاربر (uint32). هر مقدار یک شیء Policy است که پرچمهای آن روی ترافیک کاربرانِ آن سطح اعمال میشود. |
system | *SystemPolicy | (unset) | SystemPolicy | سیاست سراسری. در حال حاضر فقط چهار کلید شمارندهٔ ترافیک ورودی/خروجی را حمل میکند. |
منبع: infra/conf/policy.go:73-76 · ثابتشده در v1.260327.0 (d2758a0)
Policy بهازای هر سطح
هر ورودی زیر levels یک شیء Policy است. سطح 0 پیشفرض برای کاربرانی است که سطحی بهطور صریح برایشان تنظیم نشده است.
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
handshake | *uint32 | 4 | <seconds> | حداکثر زمان برای ورودی جهت تکمیل دستدهی پیش از بسته شدن اتصال. |
connIdle | *uint32 | 300 | <seconds> | مهلت بیکاری. اتصالی که این تعداد ثانیه بدون ترافیک باشد بسته میشود. |
uplinkOnly | *uint32 | 2 | <seconds> | بازهٔ مهلت پس از بسته شدن دانلینک؛ آپلینک این تعداد ثانیه بعد بسته میشود. |
downlinkOnly | *uint32 | 5 | <seconds> | بازهٔ مهلت پس از بسته شدن آپلینک؛ دانلینک این تعداد ثانیه بعد بسته میشود. |
statsUserUplink | bool | false | true | false | شمارش بایتهای آپلینک بهازای هر کاربر (نیازمند حضور بلاک stats). |
statsUserDownlink | bool | false | true | false | شمارش بایتهای دانلینک بهازای هر کاربر. |
statsUserOnline | bool | false | true | false | ردیابی وضعیت آنلاین هر کاربر. |
bufferSize | *int32 | (internal) | <KB> | -1 | بافر داخلی بهازای هر اتصال به KB. مقدار -1 (یا هر مقدار منفی) به معنای نامحدود است. |
منبع: infra/conf/policy.go:7-16 · ثابتشده در v1.260327.0 (d2758a0)
SystemPolicy
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
statsInboundUplink | bool | false | true | false | شمارندهٔ بایت آپلینک بهازای هر تگ ورودی. |
statsInboundDownlink | bool | false | true | false | شمارندهٔ بایت دانلینک بهازای هر تگ ورودی. |
statsOutboundUplink | bool | false | true | false | شمارندهٔ بایت آپلینک بهازای هر تگ خروجی. |
statsOutboundDownlink | bool | false | true | false | شمارندهٔ بایت دانلینک بهازای هر تگ خروجی. |
منبع: infra/conf/policy.go:55-60 · ثابتشده در v1.260327.0 (d2758a0)
مثال
json
{
"stats": {},
"policy": {
"levels": {
"0": {
"handshake": 4,
"connIdle": 300,
"uplinkOnly": 2,
"downlinkOnly": 5,
"statsUserUplink": true,
"statsUserDownlink": true,
"bufferSize": 0
}
},
"system": {
"statsInboundUplink": true,
"statsInboundDownlink": true,
"statsOutboundUplink": true,
"statsOutboundDownlink": true
}
}
}نکات
- مهلتها در ساختار گو از نوع اشارهگر هستند. حذف یک فیلد مقدار پیشفرض داخلی را در جای خود باقی میگذارد؛ تنظیم صریح آن به
0در واقع به معنای «بدون مهلت» برای آن فیلد است. bufferSizeدرPolicy.Build(infra/conf/policy.go:42-46) در ۱۰۲۴ ضرب میشود — مقدار JSON بر حسب KB است. هر مقدار منفی سقف را غیرفعال میکند.- شمارندههای هر کاربر نیازمند آن هستند که شیء کاربر روی ورودی مربوطه یک سطح ناتهی داشته باشد که شمارهٔ آن با یک کلید زیر
policy.levelsمطابقت کند.
منبع: infra/conf/policy.go:7-76 · v1.260327.0 (d2758a0)
