]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Comment update.
authorOndrej Zajicek <santiago@crfreenet.org>
Wed, 13 Jan 2010 13:53:33 +0000 (14:53 +0100)
committerOndrej Zajicek <santiago@crfreenet.org>
Wed, 13 Jan 2010 13:53:33 +0000 (14:53 +0100)
proto/ospf/iface.c

index 25a982240f73a8b1e1a1099f697b4ad96bb221ff..b90ab9fdce33967ae47fb46a4b3d6dbc1ae1969a 100644 (file)
@@ -69,11 +69,14 @@ ospf_open_socket(struct ospf_iface *ifa, int mc)
   ipsk->dport = OSPF_PROTO;
 
 #ifdef OSPFv2
-  /* FIXME - why there is IPA_NONE on multicast sockets ? */
-  if (mc)
-    ipsk->saddr = IPA_NONE;
-  else
-    ipsk->saddr = ifa->iface->addr->ip;
+  /*
+   * In Linux IPv4, binding a raw socket to an IP address of an iface causes
+   * that the socket does not receive multicast packets, as they have
+   * different (multicast) destination IP address.
+   *
+   * We want such filter in the vlink (non-mc) socket.
+   */
+  ipsk->saddr = mc ? IPA_NONE : ifa->iface->addr->ip;
 #else /* OSPFv3 */
   ipsk->saddr = ifa->lladdr;
 #endif