Re: [libvirt] [PATCHv3 0/2] Added waiting for DAD to finish for bridge address.

2015-10-15 Thread Dmitry Guryanov

On 09/29/2015 01:16 PM, Maxim Perevedentsev wrote:

This is a fix for commit db488c79173b240459c7754f38c3c6af9b432970
dnsmasq main process which is relied on when waiting for DAD to complete
exits without actually waiting for DAD. This is dnsmasq daemon's task.

It seems to be a race that DAD finished before dnsmasq main process exited.
The above commit needs the execution to block until DAD finishes
for bridge IPv6 address because then it closes dummy tap device.
Thus we need to ensure this ourselves.

So we periodically poll the kernel using netlink and
check whether there are any IPv6 addresses assigned to bridge
which have 'tentative' state. After DAD is finished, execution continues.
I guess that is what dnsmasq was assumed to do.

We use netlink to dump information about existing IPv6 addresses. Netlink's
response is a multi-part message. Unfortunately, the current implementation
of virNetlink treats such messages as faulty and throws an error. So the patch 
2/2
adds multi-part nelink response support.

Update v2: fixed syntax.
Update v3: moved to virnetdev.
Resend: These patches were ignored and buried long ago :-(

Maxim Perevedentsev (2):
   network: added waiting for DAD to finish for bridge address.
   netlink: add support for multi-part netlink messages.


Could someone, please, look at these patches? There was no objections 
against

general idea on previous series, syntax looks good to me.

Our autotests really catch this problem, and patch fixes it.



  src/libvirt_private.syms|   1 +
  src/network/bridge_driver.c |  35 +-
  src/util/virnetdev.c| 160 
  src/util/virnetdev.h|   2 +
  src/util/virnetlink.c   |   4 +-
  5 files changed, 200 insertions(+), 2 deletions(-)

--
1.8.3.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [PATCHv3 0/2] Added waiting for DAD to finish for bridge address.

2015-09-29 Thread Maxim Perevedentsev
This is a fix for commit db488c79173b240459c7754f38c3c6af9b432970
dnsmasq main process which is relied on when waiting for DAD to complete
exits without actually waiting for DAD. This is dnsmasq daemon's task.

It seems to be a race that DAD finished before dnsmasq main process exited.
The above commit needs the execution to block until DAD finishes
for bridge IPv6 address because then it closes dummy tap device.
Thus we need to ensure this ourselves.

So we periodically poll the kernel using netlink and
check whether there are any IPv6 addresses assigned to bridge
which have 'tentative' state. After DAD is finished, execution continues.
I guess that is what dnsmasq was assumed to do.

We use netlink to dump information about existing IPv6 addresses. Netlink's
response is a multi-part message. Unfortunately, the current implementation
of virNetlink treats such messages as faulty and throws an error. So the patch 
2/2
adds multi-part nelink response support.

Update v2: fixed syntax.
Update v3: moved to virnetdev.
Resend: These patches were ignored and buried long ago :-(

Maxim Perevedentsev (2):
  network: added waiting for DAD to finish for bridge address.
  netlink: add support for multi-part netlink messages.

 src/libvirt_private.syms|   1 +
 src/network/bridge_driver.c |  35 +-
 src/util/virnetdev.c| 160 
 src/util/virnetdev.h|   2 +
 src/util/virnetlink.c   |   4 +-
 5 files changed, 200 insertions(+), 2 deletions(-)

--
1.8.3.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCHv3 0/2] Added waiting for DAD to finish for bridge address.

2015-09-07 Thread Maxim Perevedentsev

Hello everyone!

I'd like to remind I'm still waiting for comments on these patches.

On 08/26/2015 01:28 PM, Maxim Perevedentsev wrote:

Thank you! Waiting in hope you have not forgotten. :)

On 08/17/2015 10:11 PM, Laine Stump wrote:

On 08/17/2015 10:48 AM, Maxim Perevedentsev wrote:

Hello guys!

Just a humble reminder of pending request :-)
Any suggestions about patches maybe?


Sorry for the delay. Pretty much everybody (including me) is at KVM
Forum this week. I'll try to make some comments on the patches as soon
as I can.


--
Your sincerely,
Maxim Perevedentsev

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCHv3 0/2] Added waiting for DAD to finish for bridge address.

2015-08-26 Thread Maxim Perevedentsev

Thank you! Waiting in hope you have not forgotten. :)

On 08/17/2015 10:11 PM, Laine Stump wrote:

On 08/17/2015 10:48 AM, Maxim Perevedentsev wrote:

Hello guys!

Just a humble reminder of pending request :-)
Any suggestions about patches maybe?


Sorry for the delay. Pretty much everybody (including me) is at KVM
Forum this week. I'll try to make some comments on the patches as soon
as I can.


--
Your sincerely,
Maxim Perevedentsev

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCHv3 0/2] Added waiting for DAD to finish for bridge address.

2015-08-17 Thread Maxim Perevedentsev

Hello guys!

Just a humble reminder of pending request :-)
Any suggestions about patches maybe?

On 08/10/2015 08:08 PM, Maxim Perevedentsev wrote:

This is a fix for commit db488c79173b240459c7754f38c3c6af9b432970
dnsmasq main process which is relied on when waiting for DAD to complete
exits without actually waiting for DAD. This is dnsmasq daemon's task.

It seems to be a race that DAD finished before dnsmasq main process exited.
The above commit needs the execution to block until DAD finishes
for bridge IPv6 address because then it closes dummy tap device.
Thus we need to ensure this ourselves.

So we periodically poll the kernel using netlink and
check whether there are any IPv6 addresses assigned to bridge
which have 'tentative' state. After DAD is finished, execution continues.
I guess that is what dnsmasq was assumed to do.

We use netlink to dump information about existing IPv6 addresses. Netlink's
response is a multi-part message. Unfortunately, the current implementation
of virNetlink treats such messages as faulty and throws an error. So the patch 
2/2
adds multi-part nelink response support.

Update v2: fixed syntax.
Update v3: moved to virnetdev.

Maxim Perevedentsev (2):
   network: added waiting for DAD to finish for bridge address.
   Add support for multi-part netlink messages.

  src/libvirt_private.syms|   1 +
  src/network/bridge_driver.c |  35 +-
  src/util/virnetdev.c| 160 
  src/util/virnetdev.h|   2 +
  src/util/virnetlink.c   |   4 +-
  5 files changed, 200 insertions(+), 2 deletions(-)

--
Sincerely,
Maxim Perevedentsev


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

--
Your sincerely,
Maxim Perevedentsev


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCHv3 0/2] Added waiting for DAD to finish for bridge address.

2015-08-17 Thread Laine Stump
On 08/17/2015 10:48 AM, Maxim Perevedentsev wrote:
 Hello guys!

 Just a humble reminder of pending request :-)
 Any suggestions about patches maybe?


Sorry for the delay. Pretty much everybody (including me) is at KVM
Forum this week. I'll try to make some comments on the patches as soon
as I can.

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [PATCHv3 0/2] Added waiting for DAD to finish for bridge address.

2015-08-10 Thread Maxim Perevedentsev
This is a fix for commit db488c79173b240459c7754f38c3c6af9b432970
dnsmasq main process which is relied on when waiting for DAD to complete
exits without actually waiting for DAD. This is dnsmasq daemon's task.

It seems to be a race that DAD finished before dnsmasq main process exited.
The above commit needs the execution to block until DAD finishes
for bridge IPv6 address because then it closes dummy tap device.
Thus we need to ensure this ourselves.

So we periodically poll the kernel using netlink and
check whether there are any IPv6 addresses assigned to bridge
which have 'tentative' state. After DAD is finished, execution continues.
I guess that is what dnsmasq was assumed to do.

We use netlink to dump information about existing IPv6 addresses. Netlink's
response is a multi-part message. Unfortunately, the current implementation
of virNetlink treats such messages as faulty and throws an error. So the patch 
2/2
adds multi-part nelink response support.

Update v2: fixed syntax.
Update v3: moved to virnetdev.

Maxim Perevedentsev (2):
  network: added waiting for DAD to finish for bridge address.
  Add support for multi-part netlink messages.

 src/libvirt_private.syms|   1 +
 src/network/bridge_driver.c |  35 +-
 src/util/virnetdev.c| 160 
 src/util/virnetdev.h|   2 +
 src/util/virnetlink.c   |   4 +-
 5 files changed, 200 insertions(+), 2 deletions(-)

--
Sincerely,
Maxim Perevedentsev


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list