tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Lua in-kernel (lbuf library)

Hi Justin,

On Tue, Oct 15, 2013 at 7:38 PM, Justin Cormack
<> wrote:
> On Thu, Oct 10, 2013 at 7:15 PM, Lourival Vieira Neto
> <> wrote:
>> Hi folks,
>> It has been a long time since my GSoC project and though I have tried
>> to come back, I've experienced some personal issues. However, now I'm
>> coding again.
>> I'm developing a library to handle buffers in Lua, named lbuf. It is
>> been developed as part of my efforts to perform experimentation in
>> kernel network stack using Lua. Initially, I intended to bind mbuf to
>> allow, for example, to write protocols dissectors in Lua. For example,
>> calling a Lua function to inspect network packets:
>> function filter(packet)
>>   if packet.field == value then return DROP end
>>   return PASS
>> end
>> Thus, I started to design a Lua binding to mbuf inspired by '#pragma
>> pack' and bitfields of C lang. Then, I realized that this Lua library
>> could be useful to other kernel (and user-space) areas, such as device
>> drivers and user-level protocols. So, I started to develop this
>> binding generically as a independent library to give random access to
>> bits in a buffer. It is just in the early beginning, but I want to
>> share some thoughts.
> I have been using the luajit ffi and luaffi, which let you directly
> use C structs (with bitfields) in Lua to do this. It makes it easier
> to reuse stuff that is already defined in C. (luaffi is not in its
> current state portable but my plan is to strip out the non portable
> bits, which are the function call support).
> Justin

I never used luaffi. It sounds very interesting and I think it could
be very useful to bind already defined C structs, but my purpose is to
dynamically define data layouts using Lua syntax (without parsing C

Lourival Vieira Neto

Home | Main Index | Thread Index | Old Index