# File lib/tree.rb, line 620
    def root(cidr)
        # validate object
        if ( !cidr.kind_of?(NetAddr::CIDR) )
            begin
                cidr = NetAddr::CIDR.create(cidr)
            rescue Exception => error
                raise ArgumentError, "Provided argument raised the following " +
                                     "errors: #{error}"
            end
        end

        parent = find_parent(cidr)
        if (parent.tag.has_key?(:Parent)) # if parent is not 0/0
            while(1)
                grandparent = parent.tag[:Parent]
                break if (!grandparent.tag.has_key?(:Parent)) # if grandparent is 0/0
                parent = grandparent
            end
        end

        return( NetAddr.cidr_build(parent.version, parent.to_i(:network), parent.to_i(:netmask)) )
    end