Lorawan-stack: ์ฝ˜์†”์˜ ์žฅ์น˜ MAC ๊ณ„์ธต ๊ตฌ์„ฑ

์— ๋งŒ๋“  2020๋…„ 02์›” 25์ผ  ยท  9์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: TheThingsNetwork/lorawan-stack

์š”์•ฝ

์žฅ์น˜ MAC ๊ณ„์ธต์€ ์ฝ˜์†”์—์„œ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
https://github.com/TheThingsNetwork/lorawan-stack/issues/1378 ๋Œ€์ฒด

์™œ ์ด๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ?

  • ์ฝ˜์†”์—์„œ ํด๋ž˜์Šค B ์žฅ์น˜ ์ƒ์„ฑ/์—…๋ฐ์ดํŠธ
  • ๊ธฐ๋ณธ์ด ์•„๋‹Œ MAC ๊ณ„์ธต ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ข… ์žฅ์น˜ ์ƒ์„ฑ/์—…๋ฐ์ดํŠธ(์˜ˆ: The Things Uno)

์ด๋ฏธ ๊ฑฐ๊ธฐ์— ๋ฌด์—‡์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ง€๊ธˆ ๋ฌด์—‡์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์žฅ์น˜ MAC ๊ณ„์ธต์„ ๊ตฌ์„ฑํ•˜๋Š” ์œ ์ผํ•œ ์ˆ˜๋‹จ์ธ CLI

์—†์–ด์ง„ ๋ฌผ๊ฑด ์žˆ์–ด์š”? ๋ญ๋ฅผ๋ณด๊ณ  ์‹ถ์œผ์„ธ์š”?

๋ชจ๋“  MACSettings ํ•„๋“œ ๊ตฌ์„ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

ํ•„๋“œ ์šฐ์„  ์ˆœ์œ„ ๋ชฉ๋ก
๋†’์€
  • ๋ชจ๋“  ๊ธฐ๊ธฐ

    • [x] rx2_data_rate_index
    • [x] rx2_frequency
    • [x] factory_preset_frequencies
  • ํด๋ž˜์Šค A ํŠน์ •(๋ชจ๋“  ๋น„๋ฉ€ํ‹ฐ์บ์ŠคํŠธ ์žฅ์น˜๋ผ๊ณ ๋„ ํ•จ)

    • [x] rx1_delay
    • [x] rx1_data_rate_offset
    • [x] resets_f_cnt
  • ํด๋ž˜์Šค B ์ „์šฉ

    • [x] ping_slot_periodicity
์ค‘๊ฐ„
  • ํด๋ž˜์Šค A ํŠน์ •(๋ชจ๋“  ๋น„๋ฉ€ํ‹ฐ์บ์ŠคํŠธ ์žฅ์น˜๋ผ๊ณ ๋„ ํ•จ)

    • [ ] max_duty_cycle
    • [x] supports_32_bit_f_cnt
    • [ ] use_adr
    • [ ] status_time_periodicity
    • [ ] status_count_periodicity
  • ํด๋ž˜์Šค B ์ „์šฉ

    • [ ] ping_slot_data_rate_index
    • [x] ping_slot_frequency
    • [ ] beacon_frequency
๋‚ฎ์€
  • ํด๋ž˜์Šค A ํŠน์ •(๋ชจ๋“  ๋น„๋ฉ€ํ‹ฐ์บ์ŠคํŠธ ์žฅ์น˜๋ผ๊ณ ๋„ ํ•จ)

    • [ ] adr_margin
    • [ ] desired_rx1_delay
    • [ ] desired_rx1_data_rate_offset
    • [ ] desired_rx2_data_rate_index
    • [ ] desired_rx2_frequency
    • [ ] desired_max_duty_cycle
    • [ ] desired_adr_ack_limit_exponent
    • [ ] desired_adr_ack_delay_exponent
  • ํด๋ž˜์Šค B ์ „์šฉ

    • ๋น„๋ฉ€ํ‹ฐ์บ์ŠคํŠธ

      • [ ] class_b_timeout

      • [ ] desired_ping_slot_data_rate_index

      • [ ] desired_ping_slot_frequency

      • [ ] desired_beacon_frequency

  • ํด๋ž˜์Šค C ์ „์šฉ

    • ๋น„๋ฉ€ํ‹ฐ์บ์ŠคํŠธ

      • [ ] class_c_timeout

์ฐธ๊ณ : ์ด๋“ค ์ค‘ ์ผ๋ถ€๋Š” ์ด๋ฏธ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: FCnt ํ•ญ๋ชฉ). ๊ทธ์— ๋”ฐ๋ผ ํ™•์ธ๋ž€์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์ด๋Ÿฌํ•œ ์„ค์ •์ด ์˜ฌ๋ฐ”๋ฅธ ์œ„์น˜์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค(์ฆ‰, ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ ์žฅ์น˜์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ).

ํด๋ž˜์Šค B ๋ฐ C ๊ด€๋ จ ์„ค์ •์€ ๊ฐ๊ฐ์˜ SupportsClass{B,C} ๊ฐ€ false ์žฅ์น˜์˜ ๊ฒฝ์šฐ์—๋„ ๋ชจ๋“  ์žฅ์น˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์‹์œผ๋กœ ์‚ฌ์šฉ์ž๋Š” ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ํด๋ž˜์Šค B/C ์ž‘์—…์„ (์ผ์‹œ์ ์œผ๋กœ) ๋น„ํ™œ์„ฑํ™”/ํ™œ์„ฑํ™”ํ•˜๊ณ  ํŠน์ • ์„ค์ •์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํด๋ž˜์Šค A ๊ด€๋ จ ์„ค์ •์€ ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ์žฅ์น˜์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ป๊ฒŒ ์ œ์•ˆํ•ฉ๋‹ˆ๊นŒ?

MACSettings https://github.com/TheThingsNetwork/lorawan-stack/blob/74c9da9a9e07a31d7103eabcd3440f9c80c24ea1/api/end_device.proto#L190 -L284์˜ ๋ชจ๋“  ํ•„๋“œ๋ฅผ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต ๊ตฌ์„ฑ์— ํ•„๋“œ๋กœ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ•„๋“œ๋Š” ์ƒ์„ฑ ๋ฐ ์—…๋ฐ์ดํŠธ ์‹œ ๋ชจ๋‘ ํ•ญ์ƒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„ค๋ช…์„ ์œ„ํ•ด proto์˜ ์ฃผ์„์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

์ด ์ž‘์—…์„ ์ง์ ‘ ์ˆ˜ํ–‰ํ•˜๊ณ  Pull Request๋ฅผ ์ œ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@bafonins ๊ฐ€ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

console compaapi documentation uweb

๋ชจ๋“  9 ๋Œ“๊ธ€

MAC ์„ค์ • ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋†’์€ ํ•„๋“œ๋Š” ๋Œ€๋ถ€๋ถ„ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


์Šคํฌ๋ฆฐ์ƒท
ABP:

Screenshot 2020-03-29 at 17 41 50

ํด๋ž˜์Šค B:

Screenshot 2020-03-29 at 17 44 00

์˜คํƒ€:
Screenshot 2020-03-29 at 18 11 58

๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ์˜ˆ๋ฅผ ๋“ค์–ด ์ฝ˜์†”์„ ํ†ตํ•ด The Things Uno mac_state.factory_preset_frequencies ํ•„๋“œ๊ฐ€ ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. UI์—์„œ ์ด๊ฒƒ์ด ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„๋˜์–ด์•ผ ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋‹ค์ค‘ ์„ ํƒ์œผ๋กœ:
    Screenshot 2020-03-30 at 09 47 01

IMO, ์ด๋Ÿฌํ•œ ํ•„๋“œ๋Š” ์ฃผํŒŒ์ˆ˜ ์„ ํƒ์„ ๋งค์šฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ตœ์ข… ์žฅ์น˜์— ๋Œ€ํ•œ frequency_plan_id ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž ๋นˆ๋„๋ฅผ ์ œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ @rvolosatovs๊ฐ€ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์ž…๋ ฅ์€ ์ž„์˜์˜ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ฐ˜๋“œ์‹œ ์ตœ์ข… ์žฅ์น˜์˜ ์ฃผํŒŒ์ˆ˜ ๊ณ„ํš์— ์˜์กดํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์˜ ๊ฒฝ์šฐ ๋Œ€์—ญ๋‹น ์ฃผํŒŒ์ˆ˜ ์‚ฌ์ „ ์„ค์ •์„ ๊ฐ€์ ธ์˜ค๋Š” RPC๊ฐ€ ์žˆ์œผ๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.

  1. ์ˆซ์ž ์ž…๋ ฅ ๋ฐฐ์—ด๋กœ(์›นํ›… ํ†ตํ•ฉ์— ํ—ค๋” ์ถ”๊ฐ€๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์œ ์‚ฌ):
    Screenshot 2020-03-30 at 11 06 13

์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋” ์œ ์—ฐํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ํ•„๋“œ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐ ๋” ๋งŽ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ณ  ์ž…๋ ฅ ๋นˆ๋„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  1. ์ƒˆ ๋ ˆ์ด๋ธ”์„ ๋งŒ๋“œ๋Š” ์˜ต์…˜์ด ์žˆ๋Š” ๋‹ค์ค‘ ์„ ํƒ:

freqqs

๊ธฐ๋ณธ์ ์œผ๋กœ 1๊ณผ 2์˜ ์กฐํ•ฉ์ž…๋‹ˆ๋‹ค.

@rvolosatovs @johanstokking

๋‚˜๋Š” ๋ชฉ๋ก (2)๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์ด ์ˆœ์„œ๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์žฅ ๋ช…ํ™•ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์ฃผํŒŒ์ˆ˜๋Š” ์‹ค์ œ๋กœ ๋ฌด์—‡์ด๋“  ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ธฐ์กด ์ฃผํŒŒ์ˆ˜ ๊ณ„ํš์„ ํ†ตํ•ด ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

compat/api ์ถ”๊ฐ€ํ•˜๋ฉด ์ฃผํŒŒ์ˆ˜ ๊ณ„ํš์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด NS rpc๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ชฉ๋ก (2)๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์ด ์ˆœ์„œ๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์žฅ ๋ช…ํ™•ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์„ ํƒ ๊ตฌ์„ฑ ์š”์†Œ (1) ๋ฐ (2) ๋ชจ๋‘ ์ˆœ์„œ๋„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ฃผํŒŒ์ˆ˜๋Š” ์‹ค์ œ๋กœ ๋ฌด์—‡์ด๋“  ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(3)์œผ๋กœ ์ž„์˜์˜ ์ฃผํŒŒ์ˆ˜ ๊ฐ’๋„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์†”๋ฃจ์…˜ (2)๋„ ๊ฐ€์žฅ ๊นจ๋—ํ•˜๋‹ค๊ณ  โ€‹โ€‹์ƒ๊ฐํ•˜์ง€๋งŒ (3)์€ ์ ์€ ์–‘์˜ ์ฃผํŒŒ์ˆ˜์— ๋” ์ข‹์•„ ๋ณด์ด๊ณ  ์—ฌ๋Ÿฌ ๊ฐœ(์˜ˆ: 4๊ฐœ ์ด์ƒ)๊ฐ€ ์žˆ์œผ๋ฉด ์–ด์ˆ˜์„ ํ•ด ๋ณด์ด๊ณ  ์ถ”์ ํ•˜๊ธฐ ์–ด๋ ค์›Œ ๋ณด์ž…๋‹ˆ๋‹ค.
๊ฐ ํ…์ŠคํŠธ ์ƒ์ž(์ œ์•ˆ๋œ ๋นˆ๋„ ๊ณ„ํš RPC์—์„œ)์— (2)์— ๋Œ€ํ•œ ๋นˆ๋„ ์ œ์•ˆ์ด ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ด๋ฏ€๋กœ (3)์—์„œ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ ํ…์ŠคํŠธ ์ƒ์ž๋‹น

๊ตฌํ˜„์ด ์–ด๋Š ์ •๋„ ์™„๋ฃŒ๋˜์—ˆ์ง€๋งŒ ์žฅ์น˜ ๋งˆ๋ฒ•์‚ฌ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด PR์„ ์ž‘์„ฑํ•˜๊ธฐ ์ „์— https://github.com/TheThingsNetwork/lorawan-stack/issues/2605 ๊ฐ€ ๋ณ‘ํ•ฉ๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค(mac ์„ค์ • ์ฒ˜๋ฆฌ ํฌํ•จ)

์—ฌ๊ธฐ ์ƒํƒœ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

@johanstokking https://github.com/TheThingsNetwork/lorawan-stack/pull/3065 ๋ฅผ ๊ฒ€ํ† ํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋†’์Œ ๋ฐ ์ค‘๊ฐ„ ์šฐ์„  ์ˆœ์œ„ ํ•„๋“œ๋ฅผ ๋ชจ๋‘ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์˜ ์ด์ •ํ‘œ๋ฅผ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋†’์€ ์šฐ์„  ์ˆœ์œ„ ํ•„๋“œ์™€ ์ผ๋ถ€ ์ค‘๊ฐ„ ์šฐ์„  ์ˆœ์œ„ ํ•„๋“œ๊ฐ€ https://github.com/TheThingsNetwork/lorawan-stack/pull/3065 ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰