On Saturday, October 30, 2010 08:47:10 Simon Horman wrote: > > *v2 > > A new option format added as with opt,opt-len,data > > as a general way to add options to a conn entry. > > timeout is now in seconds > > fwmark is not in ip_vs_conn_param any more. > > Mask for flags received by backup. > > Basically all changes implements Julians comments. > > > I think that you need the patch > "IPVS: Add persistence engine to connection entry" that I posted, > or something similar in your series in order for connection > templates with created by synchronisation to have the correct > persistence engine associated with them. > Thanks Yes I need that one. [ snip ] > > Please align line-wrapped parameters against the opening ( > > ip_vs_conn_fill_param(af, sc->protocol, > (const union nf_inet_addr *)&sc->caddr, > sc->cport, > (const union nf_inet_addr *)&sc->vaddr, > sc->vport, p); > > Also several more times below. > This also applies to function definitions. > > Actually, I think p_vs_conn_fill_param_sync_v0() can be > replaced by a direct call to ip_vs_conn_fill_param(). But > my comments regarding formatting still apply elsewhere. > I do agree [ snip ] > > return 0; > > } > > > > /* > > - * Process received multicast message and create the corresponding > > - * ip_vs_conn entries. > > + * fill_param used by version 1 > > */ > > I realise that the commenting syntax used throughout IPVS > is a) inconsistent and b) for the most part does not comply with > any variant of the style guidelines. However, for the record > I believe that the preferred commenting style for code in net/ > and thus IPVS is: > > /* This is a one line comment */ > > /* This is a > * multi-line comment > */ > I'll do my home work and hold on tight to the coding rules :-) [ snip ] > > @@ -505,103 +626,214 @@ static void ip_vs_process_message(const char *buffer, const size_t buflen) > > } > > } > > > > - { > > - if (ip_vs_conn_fill_param_sync(AF_INET, s->protocol, > > - (union nf_inet_addr *)&s->caddr, > > - s->cport, > > - (union nf_inet_addr *)&s->vaddr, > > - s->vport, ¶m)) { > > - pr_err("ip_vs_conn_fill_param_sync failed"); > > - return; > > - } > > - if (!(flags & IP_VS_CONN_F_TEMPLATE)) > > - cp = ip_vs_conn_in_get(¶m); > > - else > > - cp = ip_vs_ct_in_get(¶m); > > + if (ip_vs_conn_fill_param_sync_v0(AF_INET, s, ¶m)) { > > + pr_err("ip_vs_conn_fill_param_sync failed"); > > + return; > > } > > I think we can just replace this with a direct call to > ip_vs_conn_fill_param() and avoid the need for error checking. > > The idea of the existing ip_vs_conn_fill_param_sync() was as a place holder. > But this patch fills in the relevant bits in the v1 version of that function. OK I will have a look at this [ snip ] > > + > > + /* SyncID sanity check */ > > + if (ip_vs_backup_syncid != 0 && m2->syncid != ip_vs_backup_syncid) { > > + IP_VS_DBG(7, "Ignoring incoming msg with syncid = %d\n", > > + m2->syncid); > > + return; > > + } > > + /* Prepare ptrs for version 1 or 2 message */ > > + if ( m2->version==SYNC_PROTO_VER && m2->reserverd==0 && m2->spare==0) { > > There shouldn't be a space between '(' and 'm2'. > There should be a space either side of each '=='. OK I'll break the line > > > + p = (char *)buffer + sizeof(struct ip_vs_sync_mesg_v2); > > This cast seems nasty to me. Is it there to un-const buffer? > If so I think it would be better just remove the const qualification > from the parameter, as its clearly not being used in a const way. > > The patch "IPVS: buffer argument to ip_vs_process_message() should not be const" > from my prototype series was my attempt to address this. > OK, Thanks Hans -- To unsubscribe from this list: send the line "unsubscribe lvs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html