o11s / open80211s

open80211s
Other
242 stars 55 forks source link

What is the use case for Proactive PREQ with no PREP and Proactive PREQ with PREP? #89

Open yongseok75 opened 3 years ago

yongseok75 commented 3 years ago

Just want to understand what is the real use cases for

Proactive PREQ with no PREP Proactive PREQ with PREP

I am checking hwmp_preq_frame_process() API in linux mac80211 and when we received "broadcast" PREQ, following code block makes difference based on PREQ / PREP behavior:

    } else if (is_broadcast_ether_addr(target_addr) &&
               (target_flags & IEEE80211_PREQ_TO_FLAG)) {
            rcu_read_lock();
            mpath = mesh_path_lookup(sdata, orig_addr);
            if (mpath) {
                    if (flags & IEEE80211_PREQ_PROACTIVE_PREP_FLAG) {
                            reply = true;
                            target_addr = sdata->vif.addr;
                            target_sn = ++ifmsh->sn;
                            target_metric = 0;
                            ifmsh->last_sn_update = jiffies;
                    } 
                    if (root_is_gate)
                            mesh_path_add_gate(mpath);
            }
            rcu_read_unlock();
    } else {

As we can see, if flags doesn't have IEEE80211_PREQ_PROACTIVE_PREP_FLAG bit, we don't reply (which is correct). I am just wondering when the flag is set from PREQ sender.

Thanks in advance!!

yongseok75 commented 3 years ago

BTW, sender is set to Proactive PREQ with "no PREP". That is why I am wondering what will be the functional differences and use case difference between no PREP and PREP cases.

chunyeow commented 3 years ago

Proactive PREQ with no PREP won't create the originator (root mesh STA) to the target (mesh STA) path. (reverse path only)

Proactive PREQ with PREP does. (reverse and forward path)

On Thu, Dec 3, 2020 at 1:38 AM yongseok75 notifications@github.com wrote:

BTW, sender is set to Proactive PREQ with "no PREP". That is why I am wondering what will be the functional differences and use case difference between no PREP and PREP cases.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/o11s/open80211s/issues/89#issuecomment-737385097, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIF5QT7IDWCRKN6LOTT7BLSSZ3STANCNFSM4UK2BRJA .