X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=make-probes.tcl;fp=make-probes.tcl;h=527687340a10fd2db8f97f2cc274726653d53d03;hb=8fec2f4f57afc827f4a91c2f77a36e77bb79c2d5;hp=f5816980a140df7e7bf7209e6501f51dcf90dc69;hpb=9369cbec774c182fa8aa5ed7380dc393554a9d92;p=vinegar-ip.git diff --git a/make-probes.tcl b/make-probes.tcl index f581698..5276873 100755 --- a/make-probes.tcl +++ b/make-probes.tcl @@ -166,6 +166,9 @@ proc get-config/v4addr {val} { } return [format 0x%02x%02x%02x%02x $a $b $c $d] } +proc get-config/linkaddr {val} { + return $val +} proc get-config {variable def kind args} { # args currently ignored @@ -1217,10 +1220,12 @@ proc link/ether/linkparams {} { return {1 46} } proc link/ether/defaddr {} { return 00:00:00:00:00:00 } proc link/ether/procaddr {input sd} { set v [string tolower $input] - if {[regexp {^([0-9a-f]{2}\:){5}[0-9a-f]{2}$} $v]} { - set v [string map {: {}} $v] + if {[regexp {^([0-9a-f]{1,2}\:){6}$} $v:]} { + set o {} + foreach b [split $v :] { append o [format %02x 0x$b] } + set v $o } - if {![regexp -nocase {^[0-9]{12}$} $v]} { + if {![regexp -nocase {^[0-9a-f]{12}$} $v]} { error "invalid $sd ethernet addr $input ($v)" } return $v @@ -1228,7 +1233,7 @@ proc link/ether/procaddr {input sd} { proc link/ether/linkencap {packet} { global link_source link_dest set llpkt {} - append llpkt $link_source $link_dest 0800 + append llpkt $link_dest $link_source 0800 append llpkt $packet return $llpkt } @@ -1245,14 +1250,14 @@ proc nextarg {} { proc nextarg_num {} { return [expr {[nextarg] + 0}] } proc nextarg_il {} { set a [nextarg] - if {![regexp -nocase {^([0-9.]+)/([0-9a-f:]+)$} $a dummy i l]} { + if {![regexp -nocase {^([0-9.]+)/(.+)$} $a dummy i l]} { error "--source/--dest needs /" } - return [list $i [string map {: {}} $l]] + return [list $i $l] } set debug_level 0 -set mtu 576 +set mtu 100 set upto {} set xseed {} set linktypename ether @@ -1266,8 +1271,8 @@ while {[regexp {^\-\-} [lindex $argv 0]]} { --mtu { set mtu [nextarg_num] } --xseed { set xseed [nextarg] } --linktype { set linktypename [nextarg] } - --source { manyset [nextarg_ih] config/ip-source config/link-source } - --dest { manyset [nextarg_ih] config/ip-dest config/link-dest } + --source { manyset [nextarg_il] config/ip-source config/link-source } + --dest { manyset [nextarg_il] config/ip-dest config/link-dest } default { error "bad option $o" } } } @@ -1275,7 +1280,6 @@ while {[regexp {^\-\-} [lindex $argv 0]]} { proc process_linkaddr {sd} { global linktypename upvar #0 link_$sd l - link/$linktypename/linktype get-for link get-config $sd [link/$linktypename/defaddr] linkaddr set l [link/$linktypename/procaddr [set $sd] $sd]