-
Notifications
You must be signed in to change notification settings - Fork 325
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC: Multidomain: Primary vs. Pretty domain names #1974
Comments
I've been looking for something like this in gluon, a few days ago. I have no strong opinion on how to implement this; whatever comes out of this, I'll gladly implement its use in mesh-announce, whenever this is concluded. |
Currently we have implicit 1:N allocations between L2 network and domains: There are two reasons for this:
@mweinelt To reformulate your "pretty_names" proposal, you suggest that we do the following:
While this would be a good solution for 1., this is not very intuitive for 2. I would rather advocate making the implicit assignments explicit and introducing another instance/object representing the L2 network. This could be implemented by:
The interpretation would therefore be: |
I don't think we need to make this explicit in the JSON - there is already only one primary domain name based on the name of the file, and all the others are just symlinks. |
Shell command to get the primary domain name: basename $(readlink -f /lib/gluon/domains/$(uci get gluon.core.domain).json) .json We could implement this in libgluonutil and publish it in addition to the configured domain name via respondd. |
Implements freifunk-gluon#1974 Situation: ========== $ ls -l /lib/gluon/domains/lindennord.json lrwxrwxrwx 1 root root 10 Jan 6 03:42 /lib/gluon/domains/lindennord.json -> dom17.json Before: ======= $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "domain_code": "lindennord", "site_code": "ffh" }, ... } After: ====== $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "primary_domain_code": "dom17", "domain_code": "lindennord", "site_code": "ffh" }, ... }
Implements freifunk-gluon#1974 Situation: ========== $ ls -l /lib/gluon/domains/lindennord.json lrwxrwxrwx 1 root root 10 Jan 6 03:42 /lib/gluon/domains/lindennord.json -> dom17.json Before: ======= $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "domain_code": "lindennord", "site_code": "ffh" }, ... } After: ====== $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "primary_domain_code": "dom17", "domain_code": "lindennord", "site_code": "ffh" }, ... }
Implements freifunk-gluon#1974 Situation: ========== $ ls -l /lib/gluon/domains/lindennord.json lrwxrwxrwx 1 root root 10 Jan 6 03:42 /lib/gluon/domains/lindennord.json -> dom17.json Before: ======= $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "domain_code": "lindennord", "site_code": "ffh" }, ... } After: ====== $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "primary_domain_code": "dom17", "domain_code": "lindennord", "site_code": "ffh" }, ... }
Implements freifunk-gluon#1974 Situation: ========== $ ls -l /lib/gluon/domains/lindennord.json lrwxrwxrwx 1 root root 10 Jan 6 03:42 /lib/gluon/domains/lindennord.json -> dom17.json Before: ======= $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "domain_code": "lindennord", "site_code": "ffh" }, ... } After: ====== $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "primary_domain_code": "dom17", "domain_code": "lindennord", "site_code": "ffh" }, ... }
Implements freifunk-gluon#1974 Situation: ========== $ ls -l /lib/gluon/domains/lindennord.json lrwxrwxrwx 1 root root 10 Jan 6 03:42 /lib/gluon/domains/lindennord.json -> dom17.json Before: ======= $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "domain_code": "lindennord", "site_code": "ffh" }, ... } After: ====== $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "primary_domain_code": "dom17", "domain_code": "lindennord", "site_code": "ffh" }, ... }
Implements freifunk-gluon#1974 Situation: ========== $ ls -l /lib/gluon/domains/lindennord.json lrwxrwxrwx 1 root root 10 Jan 6 03:42 /lib/gluon/domains/lindennord.json -> dom17.json Before: ======= $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "domain_code": "lindennord", "site_code": "ffh" }, ... } After: ====== $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "primary_domain_code": "dom17", "domain_code": "lindennord", "site_code": "ffh" }, ... }
Implements freifunk-gluon#1974 Situation: ========== $ ls -l /lib/gluon/domains/lindennord.json lrwxrwxrwx 1 root root 10 Jan 6 03:42 /lib/gluon/domains/lindennord.json -> dom17.json Before: ======= $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "domain_code": "lindennord", "site_code": "ffh" }, ... } After: ====== $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "primary_domain_code": "dom17", "domain_code": "lindennord", "site_code": "ffh" }, ... }
Closes freifunk-gluon#1974 Situation: ========== $ ls -l /lib/gluon/domains/lindennord.json lrwxrwxrwx 1 root root 10 Jan 6 03:42 /lib/gluon/domains/lindennord.json -> dom17.json Before: ======= $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "domain_code": "lindennord", "site_code": "ffh" }, ... } After: ====== $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "primary_domain_code": "dom17", "domain_code": "lindennord", "site_code": "ffh" }, ... }
Closes freifunk-gluon#1974 Situation: ========== $ ls -l /lib/gluon/domains/lindennord.json lrwxrwxrwx 1 root root 10 Jan 6 03:42 /lib/gluon/domains/lindennord.json -> dom17.json Before: ======= $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "domain_code": "lindennord", "site_code": "ffh" }, ... } After: ====== $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "primary_domain_code": "dom17", "domain_code": "lindennord", "site_code": "ffh" }, ... }
Closes freifunk-gluon#1974 Situation: ========== $ ls -l /lib/gluon/domains/lindennord.json lrwxrwxrwx 1 root root 10 Jan 6 03:42 /lib/gluon/domains/lindennord.json -> dom17.json Before: ======= $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "domain_code": "lindennord", "site_code": "ffh" }, ... } After: ====== $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "primary_domain_code": "dom17", "domain_code": "lindennord", "site_code": "ffh" }, ... }
Closes freifunk-gluon#1974 Situation: ========== $ ls -l /lib/gluon/domains/lindennord.json lrwxrwxrwx 1 root root 10 Jan 6 03:42 /lib/gluon/domains/lindennord.json -> dom17.json Before: ======= $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "domain_code": "lindennord", "site_code": "ffh" }, ... } After: ====== $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "primary_domain_code": "dom17", "domain_code": "lindennord", "site_code": "ffh" }, ... }
Closes freifunk-gluon#1974 Situation: ========== $ ls -l /lib/gluon/domains/lindennord.json lrwxrwxrwx 1 root root 10 Jan 6 03:42 /lib/gluon/domains/lindennord.json -> dom17.json Before: ======= $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "domain_code": "lindennord", "site_code": "ffh" }, ... } After: ====== $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "primary_domain_code": "dom17", "domain_code": "lindennord", "site_code": "ffh" }, ... }
Closes freifunk-gluon#1974 Situation: ========== $ ls -l /lib/gluon/domains/lindennord.json lrwxrwxrwx 1 root root 10 Jan 6 03:42 /lib/gluon/domains/lindennord.json -> dom17.json Before: ======= $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "domain_code": "lindennord", "site_code": "ffh" }, ... } After: ====== $ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1 { "node_id": "525400123456", "system": { "primary_domain_code": "dom17", "domain_code": "lindennord", "site_code": "ffh" }, ... }
Currently with multidomain builds all domain names within a domain are treated equally and only the one selected is announced, even though that is most likely just be a pretty name. We however do need the technical domain name to be able to link them logically to our gateways, who simply cannot announce themselves as part of all the possible pretty domain codes.
In practice that means that in tools like meshviewer we have the multiple domain codes (pretty and logical) for a single L2 domain. Consider the following configuration:
Multiple nodes will happily announce all of the above. But gateways can only be part of one of these.
In my opinion we need to clean up the meaning of the domain_code variable to be more technically helpful. Any way I can imagine would require some migration strategy, that I have no clear idea of yet.
I'd imagine the following would be a more proper configuration structure for what is actually being required:
This is not well fleshed-out, I just needed to write something down so we don't forget this problem all multidomain communities are currently facing.
The text was updated successfully, but these errors were encountered: