anchor.diff:  					      ((= 2 size) (list (ash value -8) (logand value #xff)))
   					      ((= 4 size) (list (ldb (byte 8 24) value) (ldb (byte 8 16) value)
   								(ldb (byte 8 8) value) (logand value #xff)))
  -					      (t (cerror "Invalid option format ~A ~A" type value)))))
  +					      (t (error 'dhcp-invalid-option :type type :value value)))))
       option))
   
   (defun send-broadcast-dhcp-packet (sequence interface)
  
positive.code: (defconstant +opt-domain-name+ 15)
  (defconstant +opt-end+ 255)
  
  (defun build-dhcp-packet (&key mac-address options (siaddr 0))
    (assert (typep mac-address '(simple-array (unsigned-byte 8) (6))))
    (let ((packet (make-array 512 :element-type '(unsigned-byte 8) :initial-element 0)))
      (setf (aref packet 0) #x01 ;OP
            (aref packet 1) #x01 ;HTYPE
            (aref packet 2) #x06 ;HLEN
            (aref packet 3) #x00 ;HOPS
            (ub32ref/be packet 4) #xdeadbeef ;XID
  	  (ub16ref/be packet 8) #x0000 ;SECS
  	  (ub16ref/be packet 10) #x8000 ;FLAGS
            (ub32ref/be packet 12) #x00000000 ;CIADDR
  
negative.code: 		     ((typep value '(unsigned-byte 8)) 1)
  		     ((typep value '(unsigned-byte 16)) 2)
  		     ((typep value '(unsigned-byte 32)) 4)
  		     (t (error 'dhcp-invalid-option :type type :value value))))
  	 (option (make-array (+ 2 size) :element-type '(unsigned-byte 8) :initial-element 0)))
      (when (minusp size)
        (return-from make-dhcp-option option))
  