On 2016-01-26 at 09:47:32 +0100, Vadim Kochan <vadi...@gmail.com> wrote: > 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 ... :-)
Ok, I see :-) But htpye/ptype should still be possible without having dynamic header length, no? > >> +"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>) Looks good. > Not sure if the following is also will be needed considering above's forms: > > arp(op=request) I'd keep it in for consistency reasons. -- 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.