anchor.diff:         do (setf (subseq packet pos) option))
       packet))
   
  -(defun decodce-dhcp-option (buffer position)
  +(defun decode-dhcp-option (buffer position)
     "Returns (VALUES type value next-option-position)"
     (if (zerop (aref buffer position))
         (values 0 nil (1+ position))
  
positive.code: (defconstant +opt-tftp-server+ 66)
  (defconstant +opt-parameter-request-list+ 55)
  (defconstant +opt-host-name+ 12)
  (defconstant +opt-end+ 255)
  
  (defun build-dhcp-packet (&key mac-address options (siaddr 0))
  
negative.code:   (let* ((size (cond ((zerop type) -1)
  		     ((arrayp value) (length value))
  		     ((typep value '(unsigned-byte 8)) 1)
  		     ((typep value '(unsigned-byte 16)) 2)
  		     ((typep value '(unsigned-byte 32)) 4)
  		     (t (cerror "Invalid DHCP option format ~A ~A" type value))))
  	 (option (make-array (+ 2 size) :element-type '(unsigned-byte 8) :initial-element 0)))
      (when (minusp size)
        (return-from make-dhcp-option option))
      (setf (aref option 0) type
  	  (aref option 1) size)
      (setf (subseq option 2)
  	  (make-array size :element-type '(unsigned-byte 8)
  		      :initial-contents (cond ((= 1 size) (list value))
  					      ((= 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 value)))) ;;array
      option))
  
  (defun send-broadcast-dhcp-packet (sequence interface)
  