@@ -122,6 +122,7 @@ var (
122
122
invalidSrcIA = errors .New ("invalid source ISD-AS" )
123
123
invalidDstIA = errors .New ("invalid destination ISD-AS" )
124
124
invalidSrcAddrForTransit = errors .New ("invalid source address for transit pkt" )
125
+ invalidDstAddr = errors .New ("invalid destination address" )
125
126
cannotRoute = errors .New ("cannot route, dropping pkt" )
126
127
emptyValue = errors .New ("empty value" )
127
128
malformedPath = errors .New ("malformed path content" )
@@ -1588,6 +1589,14 @@ func (p *scionPacketProcessor) resolveInbound() (*net.UDPAddr, processResult, er
1588
1589
cause : err ,
1589
1590
}
1590
1591
return nil , processResult {SlowPathRequest : slowPathRequest }, slowPathRequired
1592
+ case errors .Is (err , invalidDstAddr ):
1593
+ log .Debug ("SCMP: invalid destination address" )
1594
+ slowPathRequest := slowPathRequest {
1595
+ scmpType : slayers .SCMPTypeParameterProblem ,
1596
+ code : slayers .SCMPCodeInvalidDestinationAddress ,
1597
+ cause : err ,
1598
+ }
1599
+ return nil , processResult {SlowPathRequest : slowPathRequest }, slowPathRequired
1591
1600
default :
1592
1601
return a , processResult {}, nil
1593
1602
}
@@ -1988,8 +1997,7 @@ func (d *DataPlane) resolveLocalDst(
1988
1997
1989
1998
dst , err := s .DstAddr ()
1990
1999
if err != nil {
1991
- // TODO parameter problem.
1992
- return nil , err
2000
+ return nil , invalidDstAddr
1993
2001
}
1994
2002
switch dst .Type () {
1995
2003
case addr .HostTypeSVC :
0 commit comments