From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============6222458482734355179==" MIME-Version: 1.0 From: Denis Kenzior Subject: Re: [PATCH] genl: Add l_genl_msg_attr_append_data Date: Wed, 05 Oct 2016 18:46:37 -0500 Message-ID: <57F590DD.4050102@gmail.com> In-Reply-To: <1475707520-25740-1-git-send-email-andrew.zaborowski@intel.com> List-Id: To: ell@lists.01.org --===============6222458482734355179== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Andrew, On 10/05/2016 05:45 PM, Andrew Zaborowski wrote: > Try to minimise the amount of buffers allocated and copied by clients > when building a message attribute that is a concatenation of other > buffers, such as an IE sequence. The client would the following three > calls: > > l_genl_msg_enter_nested > l_genl_msg_attr_append_data > l_genl_msg_leave_nested So the intent here is that instead of: msg =3D l_genl_msg_new_sized(...); buf =3D alloca(); // memcpy / scribble in buffer l_genl_msg_append_attr(msg, NL80211_ATTR_IE, buf_len, buf); we do something like: msg =3D l_genl_msg_new_sized(...); l_genl_msg_enter_nested(msg, NL80211_ATTR_IE); buf =3D l_genl_msg_attr_append_data(msg, len); // scribble in buf buf =3D l_genl_msg_attr_append_data(msg, len); // scribble in buf l_genl_msg_leave_nested(msg); ? If so, you're (very creatively) really abusing the intent of = enter_nested which is used for true nested attributes. Don't think I = really like that... Is l_genl_msg_append_attrv(msg, iov, iov_len) not sufficient? Alternatively, we should do something like: l_genl_msg_attr_open(msg, NL80211_ATTR_IE); l_genl_msg_attr_reserve(msg, len); l_genl_msg_attr_append(msg, len, data); l_genl_msg_attr_reserve(msg, len); l_genl_msg_attr_close(msg); Regards, -Denis --===============6222458482734355179==--