"Given an integer I, return an N-bit netmask with its I top bits set."
(- (ash 1 n) (ash 1 (- n i))))
-(export 'ipmask-cidl-slash)
-(defun ipmask-cidl-slash (width mask)
+(export 'ipmask-cidr-slash)
+(defun ipmask-cidr-slash (width mask)
"Given a netmask MASK, try to compute a prefix length.
Return an integer N such that (integer-netmask WIDTH N) = MASK, or nil if
(with-ipnet (net nil mask) ipn
(format nil "~A/~A"
(ipaddr-string net)
- (or (ipmask-cidl-slash (ipnet-width ipn) mask)
+ (or (ipmask-cidr-slash (ipnet-width ipn) mask)
(ipaddr-string (make-instance (class-of net) :addr mask))))))
(defmethod print-object ((ipn ipnet) stream)
(let* ((addr-class (extract-class-name (ipnet-net ipn)))
(width (ipaddr-width addr-class))
(max (- width
- (or (ipmask-cidl-slash width (ipnet-mask ipn))
+ (or (ipmask-cidr-slash width (ipnet-mask ipn))
(error "Base network has complex netmask")))))
(multiple-value-bind (addr mask)
(parse-subnet addr-class width max (stringify str)
(write-char #\space out))
(let* ((width (ipnet-width net))
(mask (ipnet-mask net))
- (plen (ipmask-cidl-slash width mask)))
+ (plen (ipmask-cidr-slash width mask)))
(unless plen
(error "invalid netmask in network ~A" net))
(format out "~A~A:~A~@[/~D~]"