jamal wrote:
> +static int build_spdinfo(struct sk_buff *skb, u32 pid, u32 seq, u32 flags)
> +{
> + struct xfrm_spdinfo si;
> + struct nlmsghdr *nlh;
> + u32 *f;
> +
> + nlh = nlmsg_put(skb, pid, seq, XFRM_MSG_NEWSPDINFO, sizeof(u32), 0);
> + if (nlh == NULL) /* shouldnt really happen ... */
> + return -EMSGSIZE;
> +
> + f = nlmsg_data(nlh);
> + *f = flags;
> + xfrm_spd_getinfo(&si);
> +
> + if (flags & XFRM_SPD_HMASK)
> + NLA_PUT_U32(skb, XFRMA_SPDHMASK, si.spdhcnt);
> + if (flags & XFRM_SPD_HMAX)
> + NLA_PUT_U32(skb, XFRMA_SPDHMAX, si.spdhmcnt);
> + if (flags & XFRM_SPD_ICNT)
> + NLA_PUT_U32(skb, XFRMA_SPDICNT, si.incnt);
> + if (flags & XFRM_SPD_OCNT)
> + NLA_PUT_U32(skb, XFRMA_SPDOCNT, si.outcnt);
> + if (flags & XFRM_SPD_FCNT)
> + NLA_PUT_U32(skb, XFRMA_SPDFCNT, si.fwdcnt);
> + if (flags & XFRM_SPD_ISCNT)
> + NLA_PUT_U32(skb, XFRMA_SPDISCNT, si.inscnt);
> + if (flags & XFRM_SPD_OSCNT)
> + NLA_PUT_U32(skb, XFRMA_SPDOSCNT, si.inscnt);
> + if (flags & XFRM_SPD_FSCNT)
> + NLA_PUT_U32(skb, XFRMA_SPDFSCNT, si.inscnt);
It it really worth the extra code for dumping them conditionally?
The attributes are neither large nor will they be sent very often.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html