Skip to content
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

add IPv6 support for xlxd-2.5.x #205

Closed
wants to merge 14 commits into from
Closed

add IPv6 support for xlxd-2.5.x #205

wants to merge 14 commits into from

Conversation

jg1uaa
Copy link

@jg1uaa jg1uaa commented Nov 3, 2021

This is reconstruction of PR #122, #162 and #189.

cimrsprotocol.cpp needs to be changed, but not yet.
reason: Is there any reason to use MAC address? What is this address works in Yaesu IMRS protocol?? Simply using 48bit number is not enough???

issue #204: SetPort()/GetPort() does not use htons()/ntohs() is not fixed yet.

original xlxd-2.5.x (no IPv6 edition)'s CReflector::UpdateListenMac() for linux looks delete[] ifname forgotten. I rewrite this more portable and simple.

GetAddr(), GetPort() and SetPort() in cip.h now has no implementations,
they will be moved at cip.cpp.
original cip.h handles raw value from struct sockaddr_in/sockaddr_in6.
this code follows this, but they should use network byte converter
like ntohs().
Please consider not only Apple but also all other *BSDs.
@jg1uaa jg1uaa mentioned this pull request Nov 3, 2021
@LX3JL
Copy link
Owner

LX3JL commented Nov 3, 2021

"Is there any reason to use MAC address? What is this address works in Yaesu IMRS protocol?? Simply using 48bit number is not enough???"
This is unknown, as the Yaesu's protocol is not formal documented. In the absence of reliable info, I took no shortcut and I implemented it properly.

@jg1uaa
Copy link
Author

jg1uaa commented Nov 3, 2021

@LX3JL There is no difficult thing that the XLX server has single network interface. But if it has multiple network interface, should I have to return pong packet with MAC address of interface that received ping packet? This is my question.

I do not have any information of IMRS. But looking the screenshot at http://www.ve7ed.com/imrs_setup.html, I think MAC address is used to help searching repeater-server (not for networking). Of course there is no evidence...

If the guess is true, the usage of MAC address is not important. Simply get one from representave-network-interface-in-system and use for all interfaces. 48bit-value can store 6byte-ASCII string, using callsign will be an idea.

@LX3JL
Copy link
Owner

LX3JL commented Nov 3, 2021

I don't know either. I don't have any more information than you on IMRS protocol specifications.
I guess that the only way to know is to test with an actual DR-2X device.
Do you have access to one ?
Unfortunately, on our side here at the DVC team, we don't have the testing infrastructure to valide IPV6...

@jg1uaa
Copy link
Author

jg1uaa commented Nov 3, 2021

Sorry, I do not have DR-2X device, and I do not know the person who have one.
I hope Yaesu guy will give a hint for us...

@jg1uaa
Copy link
Author

jg1uaa commented Nov 4, 2021

here is the candidate, simply pong packet has MAC address of the interface that received ping packet.
jg1uaa@2fe38a8
if this idea is no problem, I will merge ipv6-250 branch.

@jg1uaa
Copy link
Author

jg1uaa commented Dec 15, 2023

move to #240

@jg1uaa jg1uaa closed this Dec 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants