[ixpmanager] Problem with sflow-detect-ixp-bgp-sessions

Martin J. Levy mahtin at mahtin.com
Thu Mar 3 22:24:29 GMT 2016


Like I've been saying ... IPv6 is hard. No, wait, that's not right!  

Isn't there a place where the IP address is verified well prior to this step?

Martin 

> On Mar 3, 2016, at 2:19 PM, Rasmus Åberg <rasmus at sthix.net> wrote:
> 
> Excuse my bad debug code :)
> 
> Managed to get it working again, thanks!
> 
> Was caused by an IPv6 address missing a part of its address on one virtual interface. It was 1:2:3:4:5:6:7 instead of 1:2:3:4:5:6:7:8.
> 
> //Rasmus
> 
> 
> 
>> On 03/03/16 23:06, "ixpmanager on behalf of Nick Hilliard" <ixpmanager-bounces at inex.ie on behalf of nick at inex.ie> wrote:
>> 
>> this:
>> 
>>> Can't call method "short" on an undefined value at
>>> /usr/local/bin/sflow-detect-ixp-bgp-sessions line 206.
>>> 
>>> Line 206:
>>> 
>>>  $mapping->{6}->{NetAddr::IP->new($rec->{address})->short()} = $rec->{id};
>> 
>> is a different problem to this:
>> 
>>> When debugging a bit and changing the code on line 206 to the following:
>>> 
>>>                my $foo = NetAddr::IP->new($rec->{address})->short();
>>>                print $foo
>>>                $mapping->{6}->{$foo} == $rec->{id};
>> 
>>> Can't use string ("2001:7f8:3e:0:a500:3:3886:1") as a symbol ref while
>>> "strict refs" in use at /usr/local/bin/sflow-detect-ixp-bgp-sessions
>>> line 208.
>>> 
>>> ... where line 208 is "print $foo".
>> 
>> The code you added is wrong: you need a ";" after "print $foo".  At the
>> moment it is being interpreted as:
>> 
>> my $foo = NetAddr::IP->new($rec->{address})->short();
>> print $foo $mapping->{6}->{$foo} == $rec->{id};
>> 
>> I.e. print is attempting to interpret $foo as a file handle.  You also
>> used the "==" comparative operator instead of the "=" assignment operator.
>> 
>> Can you change your code to:
>> 
>> --
>> print Dumper ($rec);
>> my $foo = NetAddr::IP->new($rec->{address})->short();
>> print $foo;
>> $mapping->{6}->{$foo} = $rec->{id};
>> --
>> 
>> When short() aborts, the last entry printed should be an empty $rec
>> entry.  Can you post this (removing all sensitive data)?
>> 
>> Nick
>> _______________________________________________
>> INEX IXP Manager mailing list
>> ixpmanager at inex.ie
>> https://www.inex.ie/mailman/listinfo/ixpmanager
> 
> _______________________________________________
> INEX IXP Manager mailing list
> ixpmanager at inex.ie
> https://www.inex.ie/mailman/listinfo/ixpmanager


More information about the ixpmanager mailing list