On Tue, Jan 26, 2016 at 10:25 AM, Tobias Klauser <tklau...@distanz.ch> wrote: > On 2016-01-26 at 00:11:53 +0100, Vadim Kochan <vadi...@gmail.com> wrote: >> Add syntax to generate ARP header fields: >> >> { arp(op=req, sip=1.1.1.1, smac=11:22:33:44:55:66) } >> { arp() } >> >> Signed-off-by: Vadim Kochan <vadi...@gmail.com> >> --- >> >> %% >> >> @@ -107,7 +109,16 @@ mac >> ({mac_hex}:{mac_hex}:{mac_hex}:{mac_hex}:{mac_hex}:{mac_hex}) >> "saddr"|"sa" { return K_SADDR; } >> "prot"[o]? { return K_PROT; } >> > > Shouldn't we allow to specify htype, ptype, hlen and plen as well (as a > user might want to set non-conforming values)? > Well meanwhile it was easier to implement for me the Ethernet-IPv4 form of ARP (which is more generic and used by masezahn too if I am not mistaken), and it looks a little tricky to allow full-flexible ARP header crafting. I'd like to add such ability on later work, if I will not dig into mac80211 headers ... :-)
>> +"sha"|"smac" { return K_SHA; } >> +"spa"|"sip" { return K_SPA; } >> +"tha"|"tmac" { return K_THA; } >> +"tpa"|"tip" { return K_TPA; } >> +"req" { return K_REQ; } > > Please add "request" as well. > Sure. >> ; >> >> +arp_proto >> + : arp '(' arp_param_list ')' { } >> + ; >> + >> +arp_param_list >> + : { } >> + | arp_field { } >> + | arp_field delimiter arp_param_list { } >> + ; >> + >> +arp_field >> + : K_OPER skip_white '=' skip_white K_REQ >> + { proto_field_set_be16(hdr, ARP_OPER, ARPOP_REQUEST); } >> + | K_OPER skip_white '=' skip_white K_RESP >> + { proto_field_set_be16(hdr, ARP_OPER, ARPOP_REPLY); } > > Would be nice to allow numeric values here as well (again, to be able to > specify values not conforming to the standard). > Right I will change it to the form: arp(request, ...) arp(reply, ...) arp(op=<NUMBER>) Not sure if the following is also will be needed considering above's forms: arp(op=request) >> -- >> 2.6.3 >> -- You received this message because you are subscribed to the Google Groups "netsniff-ng" group. To unsubscribe from this group and stop receiving emails from it, send an email to netsniff-ng+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.