INNER CODE UNIT · Go
func
cloudflare/cfrpki · ov/ov.go:68
func (cv *curValidation) Filter(payload int64) bool {
roa := cv.ov.vrp[payload]
// Specs https://tools.ietf.org/html/rfc6811
if cv.state != STATE_VALID {
mask, _ := cv.route.GetPrefix().Mask.Size()
if cv.route.GetASN() == roa.GetASN() && mask <= roa.GetMaxLen() {
cv.state = STATE_VALID
} else {
cv.state = STATE_INVALID
}
}
cv.matching = append(cv.matching, roa)
return true
}
func (ov *OriginValidator) Validate(route AbstractRoute) ([]AbstractROA, int, error) {
matching := make([]AbstractROA, 0)
ip4, ip6, err := patricia.ParseFromIPAddr(route.GetPrefix())