Automated configuration of network device ports

Information

  • Patent Grant
  • 8060623
  • Patent Number
    8,060,623
  • Date Filed
    Monday, April 11, 2005
    19 years ago
  • Date Issued
    Tuesday, November 15, 2011
    13 years ago
Abstract
Methods and devices are provided for identifying end devices and automatically configuring associated network settings. Preferred implementations of the invention do not require users to manually identify connection types (e.g., RFID, IPphone, manufacturing device, etc.) or to manually configure the network device. Accordingly, such implementations allow automatic switch configuration, even for devices that use inconsistent protocols and/or protocols that are not well known. Some methods of the invention employ DHCP options combined with traffic snooping to identify devices and automatically apply appropriate switch port configuration.
Description
BACKGROUND OF THE INVENTION

1. Field of the Invention


The present invention relates the configuration of devices in a network.


2. Description of the Related Art


It is becoming commonplace for devices, including but not limited to RFID readers, RFID printers, VoIP telephones and devices used in manufacturing, to be deployed in large numbers within some networks. These devices often have unique characteristics, such as traffic type, bandwidth requirements, security demands, etc. Accordingly, such devices require specific network configurations, e.g., quality of service (“QoS”), security settings, VLANs or VSANs, etc. to properly support their desired functionality.



FIG. 1 illustrates a portion of a network 100, in which network device 105 (in this example, a Catalyst™ switch provided by Cisco Systems, Inc.) is connected to a plurality of devices, including RFID reader 110. In this example, RFID reader 110 is connected to port 120 via a fast Ethernet connection. For each port of network device 105, a variety of attributes may be configured, such as QoS, security, port speed, description, etc.


Within network 100, a large number of devices and associated network devices may be deployed. In general, it is a tedious and time-consuming process for users to deploy devices and to manage the associated infrastructure components, such as switches and other network devices. For example, the process of configuring switch port settings is currently a manual process, in which each desired attribute must be individually selected and enabled for a port.


This manual configuration process is currently inhibiting the deployment of large-scale RFID networks, manufacturing device networks, etc. It would be desirable to provide improved methods and devices that overcome at least some limitations of the prior art.


SUMMARY OF THE INVENTION

Methods and devices are provided for identifying end devices and automatically configuring associated network settings. Preferred implementations of the invention do not require users to manually identify connection types (e.g., RFID, IPphone, manufacturing device, etc.) or to manually configure the network device. Accordingly, such implementations allow automatic switch configuration, even for devices that use inconsistent protocols and/or protocols that are not well known.


Some methods of the invention employ DHCP options combined with traffic snooping to identify devices and automatically apply appropriate switch port configuration. Some such implementations of the invention trigger Cisco Systems' SmartPorts™ software to configure ports of network devices. Some aspects of the SmartPorts software are described in U.S. patent application Ser. No. 10/896,410, filed Jul. 21, 2004, which has been incorporated herein by reference. However, the present invention is not limited to implementation via SmartPorts™; any convenient software for the automated configuring of network device ports may be used in accordance with the present invention.


Some implementations of the invention provide a method for establishing network device port settings. The method includes the steps of receiving a DHCPDISCOVER request from a device and of determining, based on information in the DHCPDISCOVER request, whether an appropriate macro is available to configure a port of a network device on which the DHCPDISCOVER request was first received.


The method may also include the step of applying the appropriate macro when it is determined to be available. The method preferably includes the step of determining whether the port has already been configured in a manner appropriate for the device.


The determining step may involve determining a device personality, identifying the device and/or examining at least one DHCP option or other component of the DHCPDISCOVER request. The “other component” could be, for example, one or more parts of the DHCP message header. The determining step may or may not be performed by the network device on which the DHCPDISCOVER request was first received. For example, the DHCPDISCOVER request may first be received by a switch port and the determining step may be performed by one of a DHCP server, an edge services management server, an authentication server and a device dedicated to port configuration.


Some embodiments of the invention provide at least one apparatus for establishing network device port settings. Such embodiments include a port for receiving a DHCPDISCOVER request from a device and at least one logic device configured for determining, based on information in the DHCPDISCOVER request, whether an appropriate macro is available to configure the port.


A logic device may examine one or more DHCP options of the DHCPDISCOVER request. The port and the logic device(s) may be included within a single device or may be disposed in separate devices. For example, the port and the logic device(s) may be included within a single switch or a DHCP server.


Alternative embodiments of the invention provide a network device that includes these elements: a plurality of ports; a storage device; and at least one logic device configured to receive a DHCPDISCOVER request from a device via a first port and configure the first port with appropriate configuration parameters for the device.


A logic device may be further configured to forward a copy of the DHCPDISCOVER request to a second device. A logic device may configure the first port according to instructions received from the second device. The second device may be, for example, a DHCP server, an edge services management server, an authentication server or a device dedicated to port configuration.


The methods of the present invention may be implemented, at least in part, by hardware and/or software. For example, some embodiments of the invention provide computer programs embodied in machine-readable media. The computer programs include instructions for controlling one or more devices to perform the methods described herein.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a network diagram illustrating a switch and attached RFID devices.



FIG. 2A illustrates an exemplary SmartPorts™ macro.



FIG. 2B illustrates an exemplary set of commands to be used for configuring a port according to a SmartPorts™ macro.



FIG. 3A is a flow chart that provides an overview of a method of the present invention.



FIG. 3B is a network diagram that illustrates an implementation of the method outlined in FIG. 3A.



FIG. 4 is a flow chart that provides an overview of an alternative method of the present invention.



FIG. 5 is a block diagram that illustrates a network device for implementing some aspects of the invention.



FIG. 6 is a block diagram that illustrates another network device for implementing some aspects of the invention.





DETAILED DESCRIPTION OF THE INVENTION

In this application, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be obvious, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details. In other instances, well known process steps have not been described in detail in order not to obscure the present invention.


Although the present invention involves methods and devices for identifying and provisioning individual RFID devices in a network, many aspects of the present invention can be applied to identifying and provisioning other types of devices in a network. Similarly, although much of the discussion herein applies to implementations using the DHCP protocol, the present invention is not protocol-specific and may be used, for example, in implementations using UPnP, 802.1ab or similar discovery protocols. Likewise, while the implementations described herein refer to exemplary DHCP Options, other DHCP Options may advantageously be used to implement the present invention.


Similarly, while some exemplary implementations of the invention involve using the SmartPorts™ “macro” functionality for configuring ports of network devices, other such tools could be used. In other implementations of the invention, a command line interface (“CLI”) or another programmatic interface such as Simple Network Management Protocol (“SNMP”) or Netconf® is used for this purpose.


Prior implementations of SmartPorts™ macros required users to manually identify connection types (e.g., RFID, manufacturing, IPphone) and then to configure a network device according to the identified connection type. As used herein, the term “macro” will sometimes be used to mean both the commands used to configure, e.g., a port of a network device and a configuration resulting from the application of such a macro. The network device could be configured, for example, using a command line interface or a network management tool such as CMS on a per-port basis.


An exemplary Cisco SmartPorts™ macro for configuring a port for an RFID device will now be described with reference to FIG. 2A. Line 201 is used to establish the macro's name, which in this case is RFID_Macro1. It is helpful to use a name that is easy to recognize as one type of macro for RFID devices, to allow for the possibility of having macros for multiple device types and multiple macros for RFID devices.


Line 203 will cause an RFID VLAN to be assigned and line 205 puts a switch port in “access” mode. Line 207 assigns a generic description to the interface indicating its use, which is a connection to an RFID device in this example. Lines 209 enable port security and limit the port to a single media access control (“MAC”) address.


According to line 211, when the maximum number of MAC addresses is exceeded, traffic from additional source MAC addresses are dropped. In addition, an SNMP trap and a syslog message are generated. Lines 213 cause the secure MAC address to age out after 10 minutes of inactivity.


Lines 215 configure the port as an edge device port that does not need to behave according to a spanning tree protocol. Accordingly, bridge port data unit (“BPDU”) packets are not be allowed to enter the network from this port. “Spanning-tree portfast” allows the port to move into the forwarding state quickly.


Lines 217 set broadcast and multicast storm control limits to 20% of the interface bandwidth. As with other settings in this example, this limit should be based upon the anticipated requirements of the device to be in communication with the port. Line 219 applies a rate limiting of DHCP packets coming from the device to 100 packets per second.


Line 221 is one example of a QoS for the device. This QoS is applicable, for example, if the device is an RFID reader that sends packets marked with DSCP and if these values should be trusted.



FIG. 2B sets forth one example of how to apply the previously-described SmartPorts macro to a switch port. FIG. 2B is a screen capture of a CLI session for configuring a port. Line 251 identifies the switch to be configured (“DC_Switch1”). Line 255 is a prompt from switch DC_Switch1. Line 260 configures the interface as a Fast Ethernet interface.


Line 265 applies a selected macro, which is “RFID_Macro1” in this example, to the interface. The example assumes that VLAN 30 has previously been configured as the RFID VLAN. Line 270 is a command prompt from switch DC_Switch1.


Referring back to FIG. 1, for example, in order to configure port 120 using prior implementations of SmartPorts, a user (e.g., a network administrator) would need to manually go into every port, select a macro for each device (if one exists) and apply the appropriate macro to the port to which the device is connected. For example, the user would need to determine the appropriate port configuration for a connection with RFID reader 110, determine whether a macro exists for this configuration, and, if so, apply the appropriate macro to configure port 120. If no such macro existed, each attribute of the port configuration would need to be separately indicated.


Some exemplary implementations of the invention will now be described with reference to FIGS. 3A and 3B. FIG. 3A is a flow chart that outlines method 300 according to the invention. FIG. 3B is a simplified network diagram of network 350 that provides one example of how method 300 may be implemented.


Those of skill in the art will appreciate that some steps of the methods discussed herein, including method 300, need not be performed (and in some implementations are not performed) in the order shown. Moreover, some implementations of the methods discussed herein may include more or fewer steps than those shown, e.g., in FIG. 3A.


Similarly, those of skill in the art will appreciate that the elements of FIG. 3B are both simplified and merely illustrative. FIG. 3B illustrates switches 365, 380 and 385, all of which have attached devices. In this example, switch 365 is a Cisco Catalyst 4500 Series switch and switches 380 and 385 are Cisco Catalyst 3750 Series switches. However, one of skill in the art will appreciate that other types of network devices could be used to implement the invention. Moreover, switches 365, 380 and 385 could be in the same location (e.g., in the same warehouse or factory) or could be in different locations. Switches 365, 380 and 385 can communicate with DHCP server 370, host device 390 and storage devices 395 via network 375. Accordingly, network 375 may include portions of one or more private networks and part of the Internet.


The devices attached to switches 365, 380 and 385 are not necessarily all of the same type. In this example, device 355 is an RFID reader and device 357 is an IP telephone. As discussed elsewhere herein, even devices that are of the same general type may have different capabilities and/or different desired functions.


A device that sends out an initiation for an IP address to a DHCP server does so by way of a packet that includes a “DHCPDISCOVER” request. This command includes, inter alia, the media access control (“MAC”) address of the device. RFC 2131 is hereby incorporated by reference.


Accordingly, in step 301 of method 300, device 355 of FIG. 3B initializes and then sends DHCPDISCOVER request 356 to port 360 of switch 365. Switch 365 is configured not only to forward DHCPDISCOVER request 356 to DHCP server 370 via network 375, but also to analyze the contents of DHCPDISCOVER request 356. The steps performed by switch 365 according to method 300 may be controlled by one or more logic devices 368, which is an ASIC in this example. However, logic device(s) 368 could be any convenient logic device(s).


In step 315, switch 365 attempts to identify device 355 according to information in DHCPDISCOVER request 356. In this example, switch 365 applies “snooping” techniques to analyze the contents of Options in DHCPDISCOVER request 356. Switch 365 may, for example, examine the contents of DHCP Option 60 to determine a device type or vendor identifier. RFC 2132 is hereby incorporated by reference. Switch 365 may examine the “Enterprise number” field of DHCP Option 125 to determine the EPCGlobal enterprise number of the device. RFC 3925 is hereby incorporated by reference.


Alternatively, or additionally, switch 365 may examine other DHCP options. For example, switch 365 may examine DHCP Option 150 to identify device 355; this Option is used, for example, by IPPhones provided by Cisco Systems, Inc. R. Johnson's draft “TFTP Server Address DHCP Option” (Network Working Group Feb. 6, 2005) describes relevant information and is hereby incorporated by reference. Switch 365 may examine a “PXE boot” option to determine an appropriate configuration for port 360. M. Johnston's draft “DHCP Preboot execution Environment (PXE) Options” (Dynamic Host Configuration Working Group Jan. 21, 2005) describes relevant information and is hereby incorporated by reference. Switch 365 may examine Option 43 to obtain vendor-specific information regarding device 355. Switch 365 may examine Option 61 to determine an EPC identifier of device 355.


In some implementations, switch 365 also determines an appropriate personality for device 355 in step 315. In some such implementations, switch 365 examines the DHCP Option 77 to determine a device personality. In other implementations, switch 365 can determine an appropriate personality for device 355 indirectly, e.g., by cross-referencing a look-up table or a similar data structure based on other information in DHCPDISCOVER request 356. The look-up table could be stored locally (e.g., in memory 367), on an attached device or on another device that switch 365 can access via network 375, part of which is the Internet in this example.


If switch 365 cannot identify device 355, the process ends in this example (step 340 of FIG. 3A). Alternatively (or additionally), a network administrator could be alerted, e.g., by causing switch 365 to send a message to host device 390.


However, if switch 365 can identify the device, the method proceeds to step 320, wherein switch 365 determines port 360 is already configured. (In the flow chart of FIG. 3A it is presumed that a port configuration (if any) has resulted from the application of a macro, though this need not be the case.)


If port 360 has not yet been configured, it is determined whether there is a configuration macro available (e.g., locally available and stored in memory 367) that is appropriate for device 355. (Step 330.) Table 366 is one exemplary data structure that may be used for such a purpose. Table 366 includes macro field 372, for defining a plurality of configuration macros, each of which corresponds to a device of device ID field 374. Accordingly, a device ID determined as described above with reference to step 315 (or otherwise) can be used to determine whether there is a corresponding macro.


If port 360 is already configured, it is determined in step 325 whether the configuration is suitable for the device identified in step 315. If so, the process ends.


If the port does not have a desired configuration, it is determined in step 330 whether there is an appropriate macro available for the device. If there is an appropriate macro available for the device, the macro is applied (step 335) and then the process ends (step 340). If not, the process ends without a macro being applied. Preferably, a network administrator is notified, e.g., by sending a message from switch 365 to host device 390.


In the preceding example, switch 365 had the intelligence for determining how to automatically configure a port on which a DHCPDISCOVER request is received. The switch itself analyzed the DHCPDISCOVER request and configured the port with an appropriate combination of attributes. These combinations of attributes, along with the necessary software for applying them, were stored in the switch itself.


However, in other implementations of the invention, both the intelligence for determining how appropriately to configure the port and the instructions for so configuring the port may be owned by another device. For example, the intelligence may reside in DHCP server 370, an edge services management server, an authentication server and a device dedicated to port configuration. Some such implementations are illustrated by the flow chart of FIG. 4.


In steps 401 and 405, a device initializes and sends a DHCPDISCOVER request to a switch port. In this example, switch 365 forwards the DHCPDISCOVER request with an indication of the port on which the DHCPDISCOVER request was received. (Step 410.) The port ID could be provided, for example, in DHCP Option 82. Preferably, the switch also forwards information regarding the current port configuration to DHCP server 370.


According to some implementations, DHCP server 370 attempts to identify the device. (Step 412.) If DHCP server 370 can identify the device, DHCP server 370 performs steps 420, 425 and 430, which are analogous to steps 320 through 330 of method 300.


DHCP server 370 then instructs switch 365 to configure the port in an appropriate manner, e.g., by applying a macro. (Step 435.) Macros (or the like) for this purpose could be stored in switch 365, could be sent from DHCP server 370 to switch 365, or could be obtained by switch 365 from another device. For example, DHCP server 370 could send switch 365 a pointer to a memory space wherein such instructions are stored (e.g., in one of storage devices 395).


In other implementations, DHCP server 370 provides an IP address in response to the DHCPDISCOVER request and forwards the DHCPDISCOVER request to another device that performs steps similar to steps 310 through 330. The device could be, e.g., an authentication server or a server that is dedicated to automated port configuration. This device could instruct switch 365 to configure the port in an appropriate manner, e.g., as described above.


Alternatively, DHCP server 370 could perform at least the device and port identification steps. DHCP server 370 could then forward this information to another device that first performs a mapping of device type to desired configuration and then instructs switch 365 to configure port 360 accordingly.


In yet other implementations, a device local to switch 365 performs steps similar to those of steps 315 through 330 and then instructs switch 365 accordingly. For example, a DHCP relay agent in switch 365 is programmed to forward a copy of the DHCPDISCOVER request to another device (e.g., an edge services management server) that performs steps similar to steps 310 through 330, e.g., prior to forwarding the DHCPDISCOVER request to the DHCP server. In such implementations, the DHCP server could behave as a normal DHCP server and switch 365 could lack the intelligence to perform steps 310 through 330. The DHCPDISCOVER request could be forwarded to another device on the local network that performs steps similar to steps 310 through 330.


However, as illustrated in FIG. 5, some embodiments of the invention combine many of the components necessary to implement the invention within a single chassis. Here, chassis 500 is a router that includes switch module 505, with ports 510 that can be configured for appropriately communicating with devices 515. In this example, router 500 also includes DHCP server 520, which may be implemented in software and/or hardware (e.g., as a line card or “blade”). In alternative implementations, DHCP server 520 could be implemented in a separate device that is in communication with router 500.


Instead of being implemented in a router having a switch module, alternative embodiments of the invention provide a chassis 500 that is a switch that runs Layer 3, running IOS. As above, chassis 500 could also include DHCP server 520, implemented in software and/or hardware, or DHCP server 520 could be implemented in a separate device that is in communication with chassis 500.


It will be appreciated by those of skill in the art that other types of devices, including but not limited to point-of-sale devices (e.g., “cash registers”) VoIP telephones and devices used in manufacturing, may be advantageously configured according to the methods of the present invention. For example, one or more defined fields could indicate the type of device, device personality, etc.


In one such example, DHCP Option 60 could indicate that the device is a cash register and DHCP Option 77 could indicate the “personality” of the cash register, e.g., that it is a cash register used by a particular type of restaurant. There could be predefined macros for configuring a switch port appropriately for each type of device, e.g., for a cash register.



FIG. 6 illustrates an example of a network device that may be configured to implement some methods of the present invention. Network device 660 includes a master central processing unit (CPU) 662, interfaces 668, and a bus 667 (e.g., a PCI bus). Generally, interfaces 668 include ports 669 appropriate for communication with the appropriate media.


The interfaces 668 are typically provided as interface cards (sometimes referred to as “line cards” or network interface cards (NICs)) 670. Generally, line cards 670 control the sending and receiving of data packets over the network and sometimes support other peripherals used with the network device 660. Among the interfaces that may be provided are Fibre Channel (“FC”) interfaces, Ethernet interfaces, frame relay interfaces, cable interfaces, DSL interfaces, token ring interfaces, and the like. In addition, various very high-speed interfaces may be provided, such as fast Ethernet interfaces, Gigabit Ethernet interfaces, ATM interfaces, HSSI interfaces, POS interfaces, FDDI interfaces, ASI interfaces, DHEI interfaces and the like.


In some embodiments, one or more of line cards 670 includes at least one independent processor 674 and, in some instances, volatile RAM. Independent processors 674 may be, for example ASICs or any other appropriate processors. According to some such embodiments, these independent processors 674 perform at least some of the functions of the logic described herein. In some embodiments, one or more of interfaces 668 control such communications-intensive tasks as media control and management. By providing separate processors for the communications-intensive tasks, line cards allow the master microprocessor 662 efficiently to perform other functions such as routing computations, network diagnostics, security functions, etc.


When acting under the control of appropriate software or firmware, in some implementations of the invention CPU 662 may be responsible for implementing specific functions associated with the functions of a desired network device. According to some embodiments, CPU 662 accomplishes all these functions under the control of software including an operating system (e.g. Linux, VxWorks, etc.), and any appropriate applications software.


CPU 662 may include one or more processors 663 such as a processor from the Motorola family of microprocessors or the MIPS family of microprocessors. In an alternative embodiment, processor 663 is specially designed hardware for controlling the operations of network device 660. In a specific embodiment, a memory 661 (such as non-volatile RAM and/or ROM) also forms part of CPU 662. However, there are many different ways in which memory could be coupled to the system. Memory block 661 may be used for a variety of purposes such as, for example, caching and/or storing data, programming instructions, etc.


Regardless of network device's configuration, it may employ one or more memories or memory modules (such as, for example, memory block 665) configured to store data, program instructions for the general-purpose network operations and/or other information relating to the functionality of the techniques described herein. The program instructions may control the operation of an operating system and/or one or more applications, for example.


Because such information and program instructions may be employed to implement the systems/methods described herein, the present invention relates to machine-readable media that include program instructions, state information, etc. for performing various operations described herein. Examples of machine-readable media include, but are not limited to, magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROM disks; magneto-optical media; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory devices (ROM) and random access memory (RAM). The invention may also be embodied in a carrier wave traveling over an appropriate medium such as airwaves, optical lines, electric lines, etc. Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter.


Although the system shown in FIG. 6 illustrates one specific network device of the present invention, it is by no means the only network device architecture on which the present invention can be implemented. For example, an architecture having a single processor that handles communications as well as routing computations, etc. is often used. Further, other types of interfaces and media could also be used with the network device. The communication path between interfaces/line cards may be bus based (as shown in FIG. 6) or switch fabric based (such as a cross-bar).


Other Embodiments

Although illustrative embodiments and applications of this invention are shown and described herein, many variations and modifications are possible which remain within the concept, scope, and spirit of the invention, and these variations would become clear to those of ordinary skill in the art after perusal of this application. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.

Claims
  • 1. A method for establishing network device port settings, the method comprising: receiving a DHCPDISCOVER request from a first device by a second device;examining at least one DHCP option of the DHCPDISCOVER request;determining by the second device, based on a device type or vendor identifier specified in the at least one DHCP option in the DHCPDISCOVER request, whether an appropriate macro is available to configure a port of the second device on which the DHCPDISCOVER request was received; and, if the appropriate macro is determined to be available,causing by the second device the port of the second device to be configured by applying the appropriate macro.
  • 2. The method as recited in claim 1, further comprising the step of determining whether the port has already been configured in a manner appropriate for the first device.
  • 3. The method as recited in claim 1, wherein the determining step further comprises determining a personality of the first device, and wherein causing by the second device the, port of the second device to be configured by applying the appropriate macro includes applying a macro associated with the personality of the first device and at least one of the device type or vendor identifier.
  • 4. The method as recited in claim 1, wherein the determining step comprises: identifying by the second device a device type of the first device from the device type
  • 5. The method as recited in claim 1, wherein the determining step is performed by the second device.
  • 6. The method as recited in claim 1, wherein the determining step is not performed by the second device.
  • 7. The method as recited in claim 1, wherein the second device comprises a switch port and wherein the determining step is performed by one of a DHCP server, an edge services management sewer, an authentication server or a device dedicated to port configuration.
  • 8. The method as recited in claim 1, wherein the network device is a router or switch.
  • 9. The method as recited in claim 1, wherein determining by the second device, based on information in the DHCPDISCOVER request, whether an appropriate macro is available to configure a port of the second device an which the DHCPDISCOVER request was received comprises: determining whether a mama corresponding to an RFID device corresponding to the device type is stored in a memory of the second device.
  • 10. The method as recited in claim 1, further comprising: wherein determining by the second device, based on information in the DHCPDISCOVER request, whether an appropriate macro is available to configure a port of the second device on which the DHCPDISCOVER request was received comprises: determining whether a macro corresponding to an identified connection type between the first device and the second device is stored in a memory of the second device.
  • 11. The method as recited in claim 1, wherein the DHCPDISCOVER request is not solicited by the second network device.
  • 12. An apparatus for establishing network device port settings, the apparatus comprising: a port for receiving a DHCPDISCOVER request form a first device;a memory; andat least one logic device configured for:examining at least one DHCP option of the DHCPDTSCOVER request determining, based on a device type or vendor identifier specified in the at least one DHCP option in the DHCPDISCOVER request, whether an appropriate macro is available to configure the port on which the DHCPDISCOVER request was received:
  • 13. The apparatus as recited in claim 12, wherein the first device is a switch on which the DHCPDISCQVER request was first received or a DHCP server.
  • 14. The apparatus as recited in claim 12, wherein the logic device is further configured to forward a copy of the DHCPDTSCOVER request to a second device and wherein the logic device configures the port according to instructions received from the second device.
  • 15. The network device apparatus as recited in claim 12, wherein the apparatus is a switch or router.
  • 16. The as recited in claim 14, wherein the second device is a device selected from the group consisting of a DHCP server, an edge services management server, an authentication server and a device dedicated to port configuration.
  • 17. A non-transitory computer-readable storage medium storing thereon instructions for establishing network device port settings, comprising: instructions for examining at least one DHCP option of a DHCPDISCOVER request received from a first device by a second device;instructions for determining by the second device, based on a device type or vendor identifier specified in at least one DHCP option in the DHCPDISCOVER request, whether an appropriate macro is available to configure a pod of the second device on which the DHCPDISCOVER request was received; andinstructions or causing by the second device the port of the second device to be configured by applying the appropriate macro, if the appropriate macro is determined to be available.
  • 18. The non-transitory computer-readable medium as recited in claim 17, further comprising: instructions for determining whether the port has already been configured in a manner appropriate for the first device.
  • 19. The non-transitory computer-readable medium as recited in claim 17, further comprising: instructions for determining a personality of the first device;wherein the instructions for causing by the second device the port of the second device to be configured by applying the appropriate macro includes applying a macro associated with the personality of the first device and at least one of the device type or vendor identifier.
  • 20. The non-transitory computer-readable medium as recited in claim 17, further comprising: instructions fur identifying by the second device type of the first device from the device type specified in the at least one DHCP option of the DHCPDTSCOVER request; andinstructions for determining by the second device whether a macro corresponding to the device type of the first device is stored in a memory of the second device.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent Application No. 60/570,999, entitled “Methods and Devices for Uniquely Provisioning RFID Devices” and filed on May 13, 2004, which is hereby incorporated by reference for all purposes. This application is related to U.S. patent application Ser. No. 10/866,506, entitled “Methods and Devices for Uniquely Provisioning RFID Devices” and filed on Jun. 9, 2004, to U.S. patent application Ser. No. 10/866,507, entitled “Methods and Devices for Locating and Uniquely Provisioning RFID Devices” and filed on Jun. 9, 2004, to U.S. patent application Ser. No. 10/866,285, entitled “Methods and Devices for Assigning RFID Device Personality” and filed on Jun. 9, 2004, to U.S. patent application Ser. No. 10/896,410, filed Jul. 21, 2004 and to U.S. patent application Ser. No. 11/010,089, entitled “Methods and Devices for Providing Scalable RFID Networks” and filed on Dec. 9, 2004 (collectively, the “Cross-Referenced Applications”), all of which are hereby incorporated by reference for all purposes.

US Referenced Citations (304)
Number Name Date Kind
4625081 Lotito et al. Nov 1986 A
4688026 Scribner et al. Aug 1987 A
5339073 Dodd et al. Aug 1994 A
5574722 Slykhouse et al. Nov 1996 A
5588009 Will Dec 1996 A
5646616 Komatsu Jul 1997 A
5790542 Kim et al. Aug 1998 A
5796743 Bunting et al. Aug 1998 A
5819042 Hansen Oct 1998 A
5832503 Malik et al. Nov 1998 A
5850187 Carrender et al. Dec 1998 A
5887176 Griffith et al. Mar 1999 A
6012090 Chung et al. Jan 2000 A
6021135 Ishihara et al. Feb 2000 A
6070187 Subramaniam et al. May 2000 A
6111517 Atick et al. Aug 2000 A
6115079 McRae Sep 2000 A
6115378 Hendel et al. Sep 2000 A
6125391 Meltzer et al. Sep 2000 A
6145079 Mitty et al. Nov 2000 A
6212563 Beser Apr 2001 B1
6226675 Meltzer et al. May 2001 B1
6300903 Richards et al. Oct 2001 B1
6321264 Fletcher et al. Nov 2001 B1
6324575 Jain et al. Nov 2001 B1
6330597 Collin et al. Dec 2001 B2
6337856 Schanhals et al. Jan 2002 B1
6341130 Lakshman et al. Jan 2002 B1
6356951 Gentry Mar 2002 B1
6363477 Fletcher et al. Mar 2002 B1
6393458 Gigliotti et al. May 2002 B1
6473858 Shimomura et al. Oct 2002 B1
6510434 Anderson et al. Jan 2003 B1
6510464 Grantges et al. Jan 2003 B1
6539281 Wan et al. Mar 2003 B2
6553489 Osler et al. Apr 2003 B1
6587431 Almulhem et al. Jul 2003 B1
6587874 Golla et al. Jul 2003 B1
6597918 Kim Jul 2003 B1
6611526 Chinnaswamy et al. Aug 2003 B1
6665713 Hada et al. Dec 2003 B1
6677852 Landt et al. Jan 2004 B1
6678827 Rothermel et al. Jan 2004 B1
6683881 Mijares et al. Jan 2004 B1
6718326 Uga et al. Apr 2004 B2
6745041 Allison et al. Jun 2004 B2
6772204 Hansen et al. Aug 2004 B1
6772211 Lu et al. Aug 2004 B2
6772223 Corl, Jr. et al. Aug 2004 B1
6785732 Bates et al. Aug 2004 B1
6792002 Tezuka et al. Sep 2004 B2
6810040 Lee et al. Oct 2004 B1
6816455 Goldberg et al. Nov 2004 B2
6843121 DeBar et al. Jan 2005 B1
6862270 Ho Mar 2005 B1
6868426 Mankoff Mar 2005 B1
6912213 Kim Jun 2005 B2
6931574 Coupal et al. Aug 2005 B1
6963282 Yeates et al. Nov 2005 B1
6965599 Sakurai et al. Nov 2005 B1
6995655 Ertin et al. Feb 2006 B2
6996842 Strahm et al. Feb 2006 B2
7002907 Chen et al. Feb 2006 B1
7032031 Jungck et al. Apr 2006 B2
7038573 Bann May 2006 B2
7054924 Harvey et al. May 2006 B1
7057511 Shanks et al. Jun 2006 B2
7058973 Sultan Jun 2006 B1
7064660 Perkins et al. Jun 2006 B2
7075412 Reynolds et al. Jul 2006 B1
7081819 Martinez de Velasco Cortina et al. Jul 2006 B2
7089586 Kilgore Aug 2006 B2
7103040 Aalbers et al. Sep 2006 B2
7103886 Haller et al. Sep 2006 B2
7111076 Abjanic et al. Sep 2006 B2
7111163 Haney Sep 2006 B1
7114008 Jungck et al. Sep 2006 B2
7120139 Kung et al. Oct 2006 B1
7126907 Carpini et al. Oct 2006 B2
7129837 Shannon et al. Oct 2006 B2
7134075 Hind et al. Nov 2006 B2
7149222 Wiryaman et al. Dec 2006 B2
7165722 Shafer et al. Jan 2007 B2
7177915 Kopchik Feb 2007 B2
7178729 Shaffer et al. Feb 2007 B2
7185365 Tang et al. Feb 2007 B2
7205897 Lin Apr 2007 B2
7213768 Patel et al. May 2007 B2
7215637 Ferguson et al. May 2007 B1
7215641 Bechtolsheim et al. May 2007 B1
7221660 Simonson et al. May 2007 B1
7239634 Chakravorty Jul 2007 B1
7242303 Patel et al. Jul 2007 B2
7245620 Shankar Jul 2007 B2
7249170 Tindal et al. Jul 2007 B2
7260115 DeFord Aug 2007 B1
7296268 Darling et al. Nov 2007 B2
7299361 Kim et al. Nov 2007 B1
7321556 Parekh et al. Jan 2008 B1
7322523 Howarth et al. Jan 2008 B2
7323988 Krstulich Jan 2008 B2
7325734 Howarth et al. Feb 2008 B2
7330908 Jungck Feb 2008 B2
7333001 Lane et al. Feb 2008 B2
7333479 Jalkanen et al. Feb 2008 B2
7336175 Howarth et al. Feb 2008 B2
7345585 Singhal et al. Mar 2008 B2
7362763 Wybenga et al. Apr 2008 B2
7363353 Ganesan et al. Apr 2008 B2
7376755 Pandya May 2008 B2
7394381 Hanson et al. Jul 2008 B2
7411501 Austin Aug 2008 B2
7411915 Spain et al. Aug 2008 B1
7415512 Moon Aug 2008 B1
7421695 Murray et al. Sep 2008 B2
7422152 Howarth et al. Sep 2008 B2
7437451 Tang et al. Oct 2008 B2
7446657 Shaffer et al. Nov 2008 B2
7568015 Wang et al. Jul 2009 B2
7593427 Wongsonegoro et al. Sep 2009 B1
7648070 Droms et al. Jan 2010 B2
20010012292 Merrill et al. Aug 2001 A1
20010028308 De La Huerga Oct 2001 A1
20010047422 McTernan et al. Nov 2001 A1
20020001307 Nguyen et al. Jan 2002 A1
20020014964 Okamura Feb 2002 A1
20020015485 Bhusri Feb 2002 A1
20020016739 Ogasawara Feb 2002 A1
20020046263 Camerini et al. Apr 2002 A1
20020069279 Romero et al. Jun 2002 A1
20020075805 Gupta et al. Jun 2002 A1
20020105911 Pruthi et al. Aug 2002 A1
20020107951 Teague et al. Aug 2002 A1
20020126672 Chow et al. Sep 2002 A1
20020136403 Henson et al. Sep 2002 A1
20020143981 DeLima et al. Oct 2002 A1
20020161907 Moon Oct 2002 A1
20020163933 Benveniste Nov 2002 A1
20020165957 Devoe et al. Nov 2002 A1
20020191622 Zdan Dec 2002 A1
20020194342 Lu et al. Dec 2002 A1
20020194345 Lu et al. Dec 2002 A1
20020194350 Lu et al. Dec 2002 A1
20030005117 Kang et al. Jan 2003 A1
20030009571 Bavadekar Jan 2003 A1
20030018726 Low et al. Jan 2003 A1
20030026268 Navas Feb 2003 A1
20030028599 Kolsky Feb 2003 A1
20030028616 Aoki et al. Feb 2003 A1
20030036897 Flores et al. Feb 2003 A1
20030046339 Ip Mar 2003 A1
20030046429 Sonksen Mar 2003 A1
20030055818 Faybihenko et al. Mar 2003 A1
20030065784 Herrod Apr 2003 A1
20030069975 Abjanic et al. Apr 2003 A1
20030078031 Masuda Apr 2003 A1
20030093530 Syed May 2003 A1
20030095032 Hoshino et al. May 2003 A1
20030095569 Wengrovitz et al. May 2003 A1
20030105903 Garnett et al. Jun 2003 A1
20030112802 Ono et al. Jun 2003 A1
20030112809 Bharali et al. Jun 2003 A1
20030115448 Bouchard Jun 2003 A1
20030120384 Haitin et al. Jun 2003 A1
20030126248 Chambers Jul 2003 A1
20030140140 Lahtinen Jul 2003 A1
20030163539 Piccinelli Aug 2003 A1
20030163603 Fry et al. Aug 2003 A1
20030174714 Manik et al. Sep 2003 A1
20030177183 Cabrera et al. Sep 2003 A1
20030177374 Yung et al. Sep 2003 A1
20030188192 Tang et al. Oct 2003 A1
20030189935 Warden et al. Oct 2003 A1
20030202535 Foster et al. Oct 2003 A1
20030204626 Wheeler Oct 2003 A1
20030204719 Ben-Itzhak Oct 2003 A1
20030217171 Von Stuermer et al. Nov 2003 A1
20030217176 Beunings Nov 2003 A1
20030226887 Komine et al. Dec 2003 A1
20030236883 Takeshima et al. Dec 2003 A1
20040001444 Sadot et al. Jan 2004 A1
20040006613 Lemieus et al. Jan 2004 A1
20040010594 Boyd et al. Jan 2004 A1
20040021569 Lepkofker et al. Feb 2004 A1
20040022250 Chen et al. Feb 2004 A1
20040022255 Chen et al. Feb 2004 A1
20040024868 Drummond Feb 2004 A1
20040032881 Arai Feb 2004 A1
20040039940 Cox et al. Feb 2004 A1
20040054886 Dickinson et al. Mar 2004 A1
20040061646 Andrews et al. Apr 2004 A1
20040064577 Dahlin et al. Apr 2004 A1
20040069852 Seppinen et al. Apr 2004 A1
20040073600 Elo et al. Apr 2004 A1
20040088460 Poisner May 2004 A1
20040088585 Kaler et al. May 2004 A1
20040100383 Chen et al. May 2004 A1
20040108795 Meek et al. Jun 2004 A1
20040121789 Lindsey Jun 2004 A1
20040128389 Kopchik Jul 2004 A1
20040133775 Callas et al. Jul 2004 A1
20040136371 Muralidhar et al. Jul 2004 A1
20040145474 Schmidtberg et al. Jul 2004 A1
20040162871 Pabla et al. Aug 2004 A1
20040167986 Gilfix et al. Aug 2004 A1
20040170182 Higashida et al. Sep 2004 A1
20040205336 Kessler et al. Oct 2004 A1
20040205770 Zhang et al. Oct 2004 A1
20040221319 Zenoni Nov 2004 A1
20040257202 Coughlin et al. Dec 2004 A1
20040259557 Bey Dec 2004 A1
20040267920 Hydrie et al. Dec 2004 A1
20040267933 Przybylski et al. Dec 2004 A1
20050005031 Gordy et al. Jan 2005 A1
20050015619 Lee Jan 2005 A1
20050021626 Prajapat et al. Jan 2005 A1
20050021836 Reed et al. Jan 2005 A1
20050025091 Patel et al. Feb 2005 A1
20050027778 Dimitrelis et al. Feb 2005 A1
20050041670 Lin et al. Feb 2005 A1
20050050362 Peles Mar 2005 A1
20050054346 Windham et al. Mar 2005 A1
20050060208 Gianantoni Mar 2005 A1
20050063377 Bryant et al. Mar 2005 A1
20050071508 Brown et al. Mar 2005 A1
20050076332 Jawaharlal et al. Apr 2005 A1
20050080881 Voorhees et al. Apr 2005 A1
20050080914 Lerner et al. Apr 2005 A1
20050093679 Zai et al. May 2005 A1
20050094611 Cheong et al. May 2005 A1
20050099270 Diorio et al. May 2005 A1
20050102393 Murray et al. May 2005 A1
20050102406 Moon May 2005 A1
20050114394 Kaipa et al. May 2005 A1
20050117576 McDysan et al. Jun 2005 A1
20050165828 Lango et al. Jul 2005 A1
20050169171 Cheng et al. Aug 2005 A1
20050188103 Chen Aug 2005 A1
20050199716 Shafer et al. Sep 2005 A1
20050209947 Shafer Sep 2005 A1
20050213591 Nakazawa et al. Sep 2005 A1
20050216727 Chattopadhyay et al. Sep 2005 A1
20050228887 Wang et al. Oct 2005 A1
20050228893 Devarapalli et al. Oct 2005 A1
20050229243 Svendsen et al. Oct 2005 A1
20050252957 Howarth et al. Nov 2005 A1
20050252970 Howarth et al. Nov 2005 A1
20050252971 Howarth et al. Nov 2005 A1
20050253717 Howarth et al. Nov 2005 A1
20050253718 Droms et al. Nov 2005 A1
20050253722 Droms et al. Nov 2005 A1
20050286461 Zhang et al. Dec 2005 A1
20060005035 Coughlin Jan 2006 A1
20060010086 Klein Jan 2006 A1
20060021010 Atkins et al. Jan 2006 A1
20060022801 Husak et al. Feb 2006 A1
20060031374 Lu et al. Feb 2006 A1
20060033606 Howarth et al. Feb 2006 A1
20060044111 Kollar et al. Mar 2006 A1
20060047464 Kumar et al. Mar 2006 A1
20060053234 Kumar et al. Mar 2006 A1
20060071790 Duron et al. Apr 2006 A1
20060091999 Howarth May 2006 A1
20060106941 Singhal et al. May 2006 A1
20060123226 Kumar et al. Jun 2006 A1
20060123425 Ramarao et al. Jun 2006 A1
20060123467 Kumar et al. Jun 2006 A1
20060123477 Raghavan et al. Jun 2006 A1
20060123479 Kumar et al. Jun 2006 A1
20060129650 Ho et al. Jun 2006 A1
20060129689 Ho et al. Jun 2006 A1
20060132304 Cabell Jun 2006 A1
20060143318 Prajapat et al. Jun 2006 A1
20060146879 Anthias et al. Jul 2006 A1
20060155862 Kathi et al. Jul 2006 A1
20060155969 Yoda et al. Jul 2006 A1
20060167975 Chan et al. Jul 2006 A1
20060168334 Potti et al. Jul 2006 A1
20060192001 Shaffer et al. Aug 2006 A1
20060208063 Patel et al. Sep 2006 A1
20060208885 Lin Sep 2006 A1
20060208888 Patel et al. Sep 2006 A1
20060208889 Shaffer et al. Sep 2006 A1
20060236062 Boss et al. Oct 2006 A1
20060248225 Batz et al. Nov 2006 A1
20060253590 Nagy et al. Nov 2006 A1
20060256768 Chan Nov 2006 A1
20060259183 Hayes et al. Nov 2006 A1
20060266832 Howarth et al. Nov 2006 A1
20060280181 Brailas et al. Dec 2006 A1
20070013518 Howarth Jan 2007 A1
20070027966 Singhal et al. Feb 2007 A1
20070055864 Tock et al. Mar 2007 A1
20070080784 Kim et al. Apr 2007 A1
20070109100 Jett et al. May 2007 A1
20070112574 Greene May 2007 A1
20070229274 Patel et al. Oct 2007 A1
20070258048 Pitchers Nov 2007 A1
20070283001 Spiess et al. Dec 2007 A1
20080087730 Howarth et al. Apr 2008 A1
20080104209 Singhal et al. May 2008 A1
20080136599 Sugano et al. Jun 2008 A1
20090049191 Tolliver Feb 2009 A1
20100094945 Chan et al. Apr 2010 A1
Foreign Referenced Citations (22)
Number Date Country
01217804 Jun 2002 EP
1355448 Oct 2003 EP
1376456 Jan 2004 EP
2365662 Feb 2002 GB
WO98-26530 Jun 1998 WO
WO02-27507 Apr 2002 WO
WO 03021465 Mar 2003 WO
WO2004-012424 Feb 2004 WO
WO2005-114604 May 2005 WO
WO2005-060208 Jun 2005 WO
WO2005-114545 Dec 2005 WO
WO2005-114602 Dec 2005 WO
WO2005-114603 Dec 2005 WO
WO2006-073804 Dec 2005 WO
WO2006-055406 May 2006 WO
WO2006-057852 Jun 2006 WO
WO2006-062814 Jun 2006 WO
WO2006-063002 Jun 2006 WO
WO2006-073740 Jul 2006 WO
WO2007-011591 Jul 2006 WO
WO2007-002334 Jan 2007 WO
WO2008-016488 Feb 2008 WO
Related Publications (1)
Number Date Country
20050264420 A1 Dec 2005 US
Provisional Applications (1)
Number Date Country
60570999 May 2004 US