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 "source specific multicast" support to use with IP_ADD_SOURCE_MEMBERSHIP #1

Closed
GoogleCodeExporter opened this issue Apr 30, 2015 · 19 comments

Comments

@GoogleCodeExporter
Copy link

Currently VMA only support IGMPv2 with IP_ADD_MEMBERSHIP.

Original issue reported on code.google.com by rosenbau...@gmail.com on 1 Oct 2013 at 2:20

@GoogleCodeExporter
Copy link
Author

Hello,

Was this issue fixed?

Original comment by dmitry.b...@gmail.com on 22 Jul 2014 at 7:51

@GoogleCodeExporter
Copy link
Author

Currently this feature is still missing.

Original comment by orkmella...@gmail.com on 22 Jul 2014 at 8:11

@GoogleCodeExporter
Copy link
Author

Thanks for reply.

Can you please give a hint, how can we use VMA in case of IGMPv3 with SSM?
Currently VMA simply passes UDP socket to OS. Will it help to hard code all 
source addr in libvma.conf to force offloading?

Original comment by dmitry.b...@gmail.com on 25 Jul 2014 at 6:25

@sbob84
Copy link

sbob84 commented Sep 9, 2015

Hi! Any updates on this feature?

@rosenbaumalex
Copy link
Contributor

Can you elaborate more about the specific use case you would like to get?

  1. VMA to do the MC Source Filtering in software (or hardware if possible)?
  2. VMA to supporting the setsockopt() API so the MC Source Filtering will work in the switches?
  3. IGMP v3 is required for this. Currently VMA is certified with IGMP v2 only. We expect this is very little code change and mainly testing effort

@sbob84
Copy link

sbob84 commented Sep 17, 2015

Sure.

I’d like VMA to support IP_ADD_SOURCE_MEMBERSHIP setsockopt() so the system could respond to incoming JoinGroup messages and to produce NewSource messages.

The network I’m currently working in uses a source specific multicasting, so by now to connect and to stay connected to data streams I’m working with, I have to use timer based sends with the use of RAW sockets to emulate these v3 messages.

@ghost
Copy link

ghost commented Dec 10, 2015

what about this issue?

@OphirMunk
Copy link
Contributor

Hi,
The crash issue was fixed, see post on Oct-6. All other issues were addressed as well.
What specific issue are you asking about?

@ghost
Copy link

ghost commented Dec 10, 2015

I'm asking about issue #1
Add "source specific multicast" support to use with IP_ADD_SOURCE_MEMBERSHIP
any fixes or roadmaps ?

@rosenbaumalex
Copy link
Contributor

depending on other tasks priority we might reach this task during 2016.

@omgtehlion
Copy link

any updates on this?

@EduardOGAN
Copy link

EduardOGAN commented May 8, 2016

is the issue on working?

rosenbaumalex referenced this issue in rosenbaumalex/libvma Aug 11, 2016
…roc/cpuinfo

1. Read the CPU's Hz, based on /proc/cpuinfo Mhz report
2. Provide the MAX and MIN values, which might be the case if core are running at power control states
3. Report CPU speed in libvma bringup DEBUG log
4. Move 'tests/time_measurements_test' into 'src/utils/timetest'

Regarding #1 above:
A 'side effect' of this commit removes the potential blocking in 'usleep(1000)' call form get_tcs_rate_per_second().
1. Increase accuracy in the calibrate RDTSC with CPU speed - new logic is not disturbed by system context switches
2. This resolves coverify issue: "Program Hangs"

Signed-off-by: Alex Rosenbaum <Alexr@mellanox.com>

Conflicts:
	src/utils/Makefile.am
rosenbaumalex referenced this issue in rosenbaumalex/libvma Aug 11, 2016
…roc/cpuinfo

1. Read the CPU's Hz, based on /proc/cpuinfo Mhz report
2. Provide the MAX and MIN values, which might be the case if core are running at power control states
3. Report CPU speed in libvma bringup DEBUG log
4. Move 'tests/time_measurements_test' into 'src/utils/timetest'

Regarding #1 above:
A 'side effect' of this commit removes the potential blocking in 'usleep(1000)' call form get_tcs_rate_per_second().
1. Increase accuracy in the calibrate RDTSC with CPU speed - new logic is not disturbed by system context switches
2. This resolves coverify issue: "Program Hangs"

Signed-off-by: Alex Rosenbaum <Alexr@mellanox.com>

Conflicts:
	src/utils/Makefile.am
rosenbaumalex referenced this issue in rosenbaumalex/libvma Aug 15, 2016
…roc/cpuinfo

1. Read the CPU's Hz, based on /proc/cpuinfo Mhz report
2. Provide the MAX and MIN values, which might be the case if core are running at power control states
3. Report CPU speed in libvma bringup DEBUG log
4. Move 'tests/time_measurements_test' into 'src/utils/timetest'

Regarding #1 above:
A 'side effect' of this commit removes the potential blocking in 'usleep(1000)' call form get_tcs_rate_per_second().
1. Increase accuracy in the calibrate RDTSC with CPU speed - new logic is not disturbed by system context switches
2. This resolves coverify issue: "Program Hangs"

Signed-off-by: Alex Rosenbaum <Alexr@mellanox.com>
rosenbaumalex referenced this issue in rosenbaumalex/libvma Aug 15, 2016
…roc/cpuinfo

1. Read the CPU's Hz, based on /proc/cpuinfo Mhz report
2. Provide the MAX and MIN values, which might be the case if core are running at power control states
3. Report CPU speed in libvma bringup DEBUG log
4. Move 'tests/time_measurements_test' into 'src/utils/timetest'

Regarding #1 above:
A 'side effect' of this commit removes the potential blocking in 'usleep(1000)' call form get_tcs_rate_per_second().
1. Increase accuracy in the calibrate RDTSC with CPU speed - new logic is not disturbed by system context switches
2. This resolves coverify issue: "Program Hangs"

Signed-off-by: Alex Rosenbaum <Alexr@mellanox.com>
rosenbaumalex referenced this issue in rosenbaumalex/libvma Aug 16, 2016
…roc/cpuinfo

1. Read the CPU's Hz, based on /proc/cpuinfo Mhz report
2. Provide the MAX and MIN values, which might be the case if core are running at power control states
3. Report CPU speed in libvma bringup DEBUG log
4. Move 'tests/time_measurements_test' into 'src/utils/timetest'

Regarding #1 above:
A 'side effect' of this commit removes the potential blocking in 'usleep(1000)' call form get_tcs_rate_per_second().
1. Increase accuracy in the calibrate RDTSC with CPU speed - new logic is not disturbed by system context switches
2. This resolves coverify issue: "Program Hangs"

Signed-off-by: Alex Rosenbaum <Alexr@mellanox.com>
@sbob84
Copy link

sbob84 commented Sep 5, 2016

Hi, still missing this feature.

@rosenbaumalex
Copy link
Contributor

@sbob84
Hi, with which commit did you check this?
This past Friday (Sep 2, 2016), we pushed 4a63487 (and bug fix 9ffdc14) for handling IP_ADD_SOURCE_MEMBERSHIP support in VMA.

Our tests show this is working well now.
If you can provide more feedback that would be great.

PR: I'm not sure why the "issue: 786030 revise RDTSC logic to consider CPU speeds taken from..." jump in here so many time. It is a mistake.

@rosenbaumalex
Copy link
Contributor

We plan to close new tag which support the IP_ADD_SOURCE_MEMBERSHIP this week.

@sbob84
Copy link

sbob84 commented Sep 5, 2016

Alex, I've just checked the recent commit and I can confirm that it works, that's a great news, thank you! I also noticed that vma_stats now says that its version is incompatible with current stats protocol.

@rosenbaumalex
Copy link
Contributor

if you used vma from local build folder: ./src/vma/.lib.libvma.so
then you need to use: ./src/stats/vma_stats

@sbob84
Copy link

sbob84 commented Sep 8, 2016

Daniel, Alex, I found out what happened. I did 'make uninstall' inside the new versions's folder. But the previous version was installed into /usr/lib, so it's my mistake, sorry. Once again, thanks.

ilansmith pushed a commit to ilansmith/libvma that referenced this issue Feb 16, 2017
ilansmith pushed a commit to ilansmith/libvma that referenced this issue Feb 16, 2017
ilansmith pushed a commit to ilansmith/libvma that referenced this issue Feb 16, 2017
igor-ivanov added a commit to igor-ivanov/libvma that referenced this issue Mar 3, 2017
Signed-off-by: Igor Ivanov <igor.ivanov.va@gmail.com>
igor-ivanov added a commit to igor-ivanov/libvma that referenced this issue Mar 6, 2017
Signed-off-by: Igor Ivanov <igor.ivanov.va@gmail.com>
igor-ivanov added a commit to igor-ivanov/libvma that referenced this issue Jul 30, 2018
Signed-off-by: Igor Ivanov <igor.ivanov.va@gmail.com>
igor-ivanov added a commit to igor-ivanov/libvma that referenced this issue Jul 31, 2018
Signed-off-by: Igor Ivanov <igor.ivanov.va@gmail.com>
liranoz12 pushed a commit that referenced this issue Jul 31, 2018
These changes allow to use TCP/UDP connection on the same node
in case no SRIOV. This traffic goes through ring_tap.
Solution is based on lo interface usage.

issue: 1417620 Update #1

* d30c53c issue: 1417620 Update #1
* 6d1445e issue: 1417620 Enable UDP/TCP connection on same VM w/o SRIOV

Signed-off-by: Igor Ivanov <igor.ivanov.va@gmail.com>
liranoz12 pushed a commit that referenced this issue Aug 5, 2018
These changes allow to use TCP/UDP connection on the same node
in case no SRIOV. This traffic goes through ring_tap.
Solution is based on lo interface usage.

* d30c53c issue: 1417620 Update #1
* 6d1445e issue: 1417620 Enable UDP/TCP connection on same VM w/o SRIOV

Signed-off-by: Igor Ivanov <igor.ivanov.va@gmail.com>
igor-ivanov added a commit to igor-ivanov/libvma that referenced this issue Feb 6, 2019
Signed-off-by: Igor Ivanov <igor.ivanov.va@gmail.com>
igor-ivanov added a commit to igor-ivanov/libvma that referenced this issue Feb 6, 2019
Signed-off-by: Igor Ivanov <igor.ivanov.va@gmail.com>
rafiw pushed a commit to rafiw/libvma that referenced this issue Jul 4, 2019
Signed-off-by: Rafi Wiener <rafiw@mellanox.com>
rafiw pushed a commit to rafiw/libvma that referenced this issue Jul 11, 2019
Signed-off-by: Rafi Wiener <rafiw@mellanox.com>
rafiw pushed a commit to rafiw/libvma that referenced this issue Jul 14, 2019
Signed-off-by: Rafi Wiener <rafiw@mellanox.com>
rafiw pushed a commit to rafiw/libvma that referenced this issue Jul 14, 2019
Signed-off-by: Rafi Wiener <rafiw@mellanox.com>
igor-ivanov added a commit to igor-ivanov/libvma that referenced this issue Apr 7, 2020
Issue relates managing UDP unicast traffic in case several sockets are bound
to the same IP:PORT using reuse address option. In this case all traffic
come to the single top socket.
This logic is used in iperf as an example.

Flow description:
server logic:
1. create listen socket listen_sock and bind to IP:PORT and reuse addr
2. do recvfrom(), get peer address using listen_sock
3. sock1 = listen_sock
3. do connect() using peer address and sock1
4. do step Mellanox#1 getting new fd value for listen_sock
5. do write() using sock1
6. ...

Signed-off-by: Igor Ivanov <igor.ivanov.va@gmail.com>
igor-ivanov added a commit to igor-ivanov/libvma that referenced this issue Apr 10, 2020
Issue relates managing UDP unicast traffic in case several sockets are bound
to the same IP:PORT using reuse address option. In this case all traffic
come to the single top socket.
This logic is used in iperf as an example.

Flow description:
server logic:
1. create listen socket listen_sock and bind to IP:PORT and reuse addr
2. do recvfrom(), get peer address using listen_sock
3. sock1 = listen_sock
3. do connect() using peer address and sock1
4. do step Mellanox#1 getting new fd value for listen_sock
5. do write() using sock1
6. ...

Signed-off-by: Igor Ivanov <igor.ivanov.va@gmail.com>
igor-ivanov added a commit that referenced this issue Apr 14, 2020
Issue relates managing UDP unicast traffic in case several sockets are bound
to the same IP:PORT using reuse address option. In this case all traffic
come to the single top socket.
This logic is used in iperf as an example.

Flow description:
server logic:
1. create listen socket listen_sock and bind to IP:PORT and reuse addr
2. do recvfrom(), get peer address using listen_sock
3. sock1 = listen_sock
3. do connect() using peer address and sock1
4. do step #1 getting new fd value for listen_sock
5. do write() using sock1
6. ...

Signed-off-by: Igor Ivanov <igor.ivanov.va@gmail.com>
igor-ivanov added a commit that referenced this issue Apr 29, 2020
Issue relates managing UDP unicast traffic in case several sockets are bound
to the same IP:PORT using reuse address option. In this case all traffic
come to the single top socket.
This logic is used in iperf as an example.

Flow description:
server logic:
1. create listen socket listen_sock and bind to IP:PORT and reuse addr
2. do recvfrom(), get peer address using listen_sock
3. sock1 = listen_sock
3. do connect() using peer address and sock1
4. do step #1 getting new fd value for listen_sock
5. do write() using sock1
6. ...

Signed-off-by: Igor Ivanov <igor.ivanov.va@gmail.com>
igor-ivanov added a commit to igor-ivanov/libvma that referenced this issue Apr 30, 2020
https://bugzilla.redhat.com/show_bug.cgi?id=1826439#c1

Signed-off-by: Igor Ivanov <igor.ivanov.va@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants