Virtual interfaces with dynamic binding

Information

  • Patent Grant
  • 6330599
  • Patent Number
    6,330,599
  • Date Filed
    Friday, October 16, 1998
    26 years ago
  • Date Issued
    Tuesday, December 11, 2001
    23 years ago
Abstract
A method and system for providing a virtual interface between a router and a network, in which the router is not connected to the network using a local interface. A method and system in which a router may be dynamically decoupled from a first network and coupled to a second network, without losing state information associated with the coupling to either network. The router comprises a virtual interface to the network, at which state information for the physical interface to the network is recorded, and a binding between the virtual interface and a physical interface, the latter of which is coupled to the network. Dynamic binding of the virtual interface to the physical interface comprises an authentication step. A method and system in which a router can be dynamically coupled to one of a plurality of local networks of differing types, such as one local network using an ethernet technique and one local network using a token ring technique. The router comprises one virtual interface for each local network interface, a physical interface comprising a PC Card (PCMCIA card) controller, and one PC Card (PCMCIA card) network interface. A router is dynamically coupled to and decoupled from a set of networks sequentially, so that an administrator or an administrative program at the router may issue administrative and/or set-up commands to each of the networks. The administrative commands comprise configuration commands, so that an administrator may configure a plurality of networks from a single source location.
Description




BACKGROUND OF THE INVENTION




1. Field of the Invention




This invention relates to virtual interfaces with dynamic binding in a computer network environment.




2. Description of Related Art




In a computer network environment, it is often desirable to couple a local area network to a device remote from that local area network. When the local area network uses a protocol such as ethernet or token ring, devices to be coupled to the local area network generally require a network interface card or a similar device to establish connectivity. However, for a device remote from the local area network, a communication link to the locality of the local area network, such as a serial link, is generally required to establish connectivity. Providing connectivity between a local area network and a remote is a problem which has arisen in the art.




For example, it is often desirable to couple a local area network to a router for connection to a second network. In this manner, the local area network can achieve connectivity with a network of networks (an internetwork) using the router. However, when the router is physically remote from the local area network, connectivity between the router and the local area network generally requires a communication link, such as a serial communication link, which complicates the connection between the router and the local area network.




One method in the art is to provide connectivity between the router and the local area network using a higher-level protocol, such as the TCP/IP protocol. Devices coupled to the local area network would then be able to communicate with networks coupled to the router, using the TCP/IP protocol or applications founded thereon. However, while this method provides connectivity between the router and the local area network, it requires additional complexity and additional processing for such accesses, and does not truly allow routing packets over the serial connection as if it were a local area network connection. This additional complexity and failure to truly emulate a local area network connection may also degrade or disable the use at the router of applications designed for local area networks, even though the router is thereby coupled to the local area network.




In addition to connectivity, it is often desirable to couple a local area network to a remote location so as to provide services to the local area network from that remote location. For example, it may be advantageous to centralize administrative services for a plurality of local area networks which are remote from each other. However, the additional complexity of using a higher-level protocol introduces additional complexity and inconvenience to provision of those administrative services to the local area network.




More generally, it is often desirable to substitute a different type of physical device interface while maintaining the same type of logical connectivity. For example, portable laptop or notebook computers often provide a PCMCIA or “smart card” interface, to which one of several types of devices may be coupled. Some of these PCMCIA cards provide connectivity to a local area network, but may require a special software controller for the PCMCIA-based network interface. It would be advantageous to provide a method and system in which a software controller for the network interface could operate independent of which type of PCMCIA card is used to provide physical connectivity.




Accordingly, it is an object of the invention to provide improved connectivity to networks.




SUMMARY OF THE INVENTION




The invention provides a method and system for providing a virtual interface between a router and a network, in which the router is not connected to the network using a local interface. The invention also provides a method and system in which a router may be dynamically decoupled from a first network and coupled to a second network, without losing state information associated with the coupling to either network. In a preferred embodiment, the router comprises a virtual interface to the network, at which state information for the physical interface to the network is recorded, and a binding between the virtual interface and a physical interface, the latter of which is coupled to the network. In a preferred embodiment, dynamic binding of the virtual interface to the physical interface comprises an authentication step.




In a second aspect, the invention provides a method and system in which a router can be dynamically coupled to one of a plurality of local networks of differing types, such as one local network using an ethernet technique and one local network using a token ring technique. In this second aspect, the router comprises one virtual interface for each local network interface, a physical interface comprising a PC Card (PCMCIA card) controller, and one PC Card (PCMCIA card) network interface.




In a third aspect, a router is dynamically coupled to and decoupled from a set of networks sequentially, so that an administrator or an administrative program at the router may issue administrative and/or set-up commands to each of the networks. In a preferred embodiment, the administrative commands comprise configuration commands, so that an administrator may configure a plurality of networks from a single source location.











BRIEF DESCRIPTION OF THE DRAWINGS





FIG. 1

shows a block diagram of a computer network environment including a router and a distant network.





FIG. 2

shows a flow diagram of a method of communication between a router to a distant network, and data structures used therewith.











DESCRIPTION OF THE PREFERRED EMBODIMENT




In the following description, a preferred embodiment of the invention is described with regard to preferred process steps and data structures. However, those skilled in the art would recognize, after perusal of this application, that embodiments of the invention may be implemented using a set of general purpose computers operating under program control, and that modification of a set of general purpose computers to implement the process steps and data structures described herein would not require invention or undue experimentation.




GENERAL FEATURES OF THE METHOD AND SYSTEM





FIG. 1

shows a block diagram of a computer network environment including a router and a distant network.




In a computer network environment


100


, a network


101


comprises a communication medium


102


and at least one device


103


coupled thereto, using a network interface


104


. (Typically, more than one device


103


is coupled to the network


101


.) The network


101


may comprise a local area network (“LAN”), a wide area network (“WAN”), an internetwork, or a hybrid thereof. Local area networks, wide area networks and internetworks are known in the art of computer networking. For example, in preferred embodiments the network


101


may comprise either an ethernet LAN operating according to an ethernet protocol or a token ring LAN operating according to a token ring network protocol. Ethernet LANs, their communication media and network interfaces, as well as token ring LANs, their communication media and network interfaces, are known in the art of computer networking.




The Network Extender




The network


101


comprises a network extender


110


coupled to the communication medium


102


using a network interface


104


. The network extender


110


comprises a special purpose processor or a general purpose processor operating under control of a program memory, and a data storage memory, and is disposed for connectivity to the network


101


using the network interface


104


.




In a preferred embodiment, the network extender


110


comprises one of the “C1000 LAN Extender” products, available from cisco Systems, Inc., of San Jose, Calif., and is disposed to be configured for connectivity to an ethernet LAN or a token ring LAN.




The network extender


110


is also coupled to a serial port


111


, and is disposed for controlling the serial port


111


according to a known serial port protocol, preferably a point-to-point protocol like that described with FIG.


2


. The serial port


111


is disposed for coupling to a serial communication link


112


, such as a telephone line coupled to a telephone network


113


or other network.




In a preferred embodiment, the serial port


111


is disposed to make a serial connection using the serial communication link


112


by either making a call on the telephone network


113


or receiving a call on the telephone network


113


, using a telephone line modem or other technique for transmitting digital information using a telephone network. Serial communication using a telephone network is known in the art of computer communication.




The Router




A router


120


, remote from the network


101


, comprises a special purpose processor or a general purpose processor operating under control of a program memory, and a data storage memory. As used herein, the term “remote” refers to logical remoteness, and does not necessarily imply physical distance or another type of remoteness. Similarly, as used herein, the term “local” refers to logical locality, and does not necessarily imply physical closeness or another type of locality.




In a preferred embodiment, the router


120


comprises any cisco router product, available from cisco Systems, Inc., of San Jose, Calif.




The router


120


comprises a serial port


121


, and is disposed for controlling the serial port


121


according to a known serial port protocol, preferably a point-to-point protocol like that described with FIG.


2


. The serial port


121


is disposed for coupling to a serial communication link


122


, such as a telephone line coupled to the same telephone network


113


or other network, similar to the serial port


111


and the serial communication link


112


.




In a preferred embodiment, the serial port


121


is disposed to make a serial connection using the serial communication link


122


by either making a call on the telephone network


113


or receiving a call on the telephone network


113


, using a telephone line modem or other technique for transmitting digital information using a telephone network, similar to the serial port


111


and the serial communication link


112


.




The serial link


112


and the serial link


122


may be coupled to form a communication link


123


, such as using a telephone virtual circuit on the network


113


, so that serial communication between the two is possible.




In a preferred embodiment, the router


120


is coupled to one or more second networks


124


, each of which may comprise a local area network, a wide area network (“WAN”), an internetwork, or a hybrid thereof. In preferred embodiments the second network


124


may comprise either a local area network or an internetwork, and the router


120


may be disposed for bridging, brouting, gatewaying or routing packets between the first network


101


and the second network


124


. Bridging, brouting (i.e., operating as a brouter), gatewaying (i.e., operating as a gateway) and routing are known in the art of computer networking.




The Interface Controller




The router


120


comprises an interface controller


130


coupled to the serial port


121


. In a preferred embodiment where the router


120


is a general purpose processor operating under software control, the interface controller


130


comprises device control software in the router's program memory and operates under the control of operating system software in the router's program memory. The interface controller


130


is disposed to control the serial port


121


and to couple the serial port


121


to an application


131


operating with the router


120


. (The application


131


preferably implements a point-to-point protocol like that described with

FIG. 2.

) Coupling application software to a device under control of device control software is known in the art of computer operating systems.




The interface controller


130


comprises a physical controller


132


, which is disposed for controlling the serial port


121


, i.e., to receive status signals from the serial port


121


, to transmit configuration signals to the serial port


121


, and to transceive data signals between the serial port


121


and an emulated port


133


.




In a preferred embodiment, the emulated port


133


is a software object comprising a set of methods which the physical controller


132


exports and which the virtual controller


134


inherits for construction of its virtual port


135


. Software objects having exportable and inheritable methods are known in the art of computer programming.




The emulated port


133


is disposed for coupling, by the router's operating system software, to a virtual controller


134


. The virtual controller


134


is disposed to couple the application


131


to the emulated port


133


, i.e., to receive configuration signals from the application


131


, to transmit status signals from the physical controller


132


at the emulated port


133


, and to transceive data signals between the emulated port


133


and a virtual port


135


.




The virtual port


135


provides the application


131


with the same interface as if the router


120


were coupled directly to the network


101


using a directly connected network interface


104


. Accordingly, there is one type of virtual controller


134


for each type of network interface


104


to which the router


120


is disposed for coupling. In a preferred embodiment, the virtual controller


134


is configured for ethernet LANs operating according to an ethernet protocol. When a communication link


123


is established between a network extender


110


and the router


120


, the router's operating system selects the virtual controller


134


matching the network extender


110


and its network


101


for coupling to the physical controller


132


.




Dynamic Binding




In a preferred embodiment, the serial port


121


is disposed for dynamic binding to one of a plurality of serial ports


111


, by sequentially making and breaking the communication link


123


between the router


120


and one of a plurality of network extenders


110


. The plurality of network extenders


110


are preferably each coupled to a different network


101


, so dynamic binding of the serial port


121


allows the router


120


to sequentially couple to one of a plurality of networks


101


.




In a preferred embodiment, an operator sets up an initial configuration for the virtual controller


134


, indicating which virtual controller


134


should be bound to which network extender


110


, preferably matching the MAC address of the network extender


110


to the initial configuration for the virtual controller


134


, such as an initial configuration for an ethernet LAN operating using an ethernet LAN protocol. The router's operating system creates one software instantiation of the virtual controller


134


for each matching network extender


110


to be coupled to the router


120


. This allows each software instantiation of the virtual controller


134


to dispense with switching context when the communication link


123


is made or broken. Multiple software instantiations are known in the art of computer operating systems.




Each instantiation of the virtual controller


134


also maintains state information about the emulated port


133


and the first network


101


, in a status record


136


, as if the communication link


123


between the network extender's serial port


111


and the router's serial port


121


were continually coupled. Information in the status record


136


is maintained persistently across multiple sessions of the communication link


123


. This information includes authentication/identification data


137


for the communication link


123


, such as a unique identifier for the network extender


110


. In a preferred embodiment, the authentication/identification data


137


comprises the MAC address for the device embodying the network extender


110


and is received from the network extender


110


when the communication link


123


is established.




In alternative embodiments, the authentication/identification data


137


may comprise different or additional information. For example, the authentication/identification data


137


may comprise an identifying serial number for the network extender


110


. The authentication/identification data


137


may also comprise information for a more elaborate or secure method of authentication, such as a password.




The physical controller


132


is re-usable and rebindable to a new virtual controller


134


each time the communication link


123


is made or broken. In alternative embodiments, the physical controller


132


may also comprise a controller for a multichannel interface, i.e., a physical interface which abstracts a plurality of communication links


123


, such as a communication link with a plurality of channels, separated by frequency division, time division, or another technique.




Network Administration




In a preferred embodiment, the application


131


is disposed to supply administrative services to the network


101


when the router


120


is coupled to the network extender


110


. The application


131


supplies administrative control packets


140


to the virtual controller


134


, which couples them to the emulated port


133


and the physical controller


132


, which couples them to the serial port


121


and the serial link


122


, which couples them using the communication link


123


to the serial link


112


and the serial port


111


at the network extender


110


, which couples them to the network


101


, all using a point-to-point protocol described with FIG.


2


. On the network


101


, the network extender


110


receives the administrative control packet


140


and processes it accordingly to effect a network administrative service.




Alternative Interface Devices




In alternative embodiments, a physical controller


132


may be disposed to control a physical interface different from the serial port


121


. For example, in an alternative preferred embodiment, a PCMCIA port


121


is substituted for the serial port


121


, and a physical controller


132


tailored to the PCMCIA port


121


is substituted for the physical controller


132


tailored to the serial port


121


. The PCMCIA port


121


is disposed for being coupled to a PCMCIA card


150


; the PCMCIA card


150


may comprise a network interface


104


for a network


101


, or another device such as a flash memory, a hard disk drive, a modem, or a radio transceiver.




The virtual controller


134


may be coupled to the physical controller


132


for the PCMCIA port


121


while the PCMCIA port


121


is coupled to a PCMCIA card


150


, so that the application


131


may be coupled to the PCMCIA card


150


using the interface provided by the virtual port


135


.




In general, the physical controller


132


may comprise any form of connection between the router


120


and the network extender


110


, or more generally, any form of connection between two devices, such as a serial port and a serial port controller, a PCMCIA port and a PCMCIA port controller, a computer backplane, or another form of connection. The virtual controller


134


may comprise any interface to the physical controller


132


, such as an ethernet interface, a token ring interface, a PCMCIA interface, or another form of interface, and need not be constrained by the physical nature of the connection.




COMMUNICATION BETWEEN THE ROUTER AND THE NETWORK





FIG. 2

shows a flow diagram of a method of communication between a router to a distant network, and data structures used therewith.




At a flow point


250


, the application


131


desires to send a network packet


200


onto the network


101


.




At a step


251


, the router


120


builds the network packet


200


, comprising a packet header


201


and a packet body


202


. The packet header


201


comprises a destination address for a device


103


on the network


101


; the packet body


202


comprises a sequence of data intended for the destination addressee device


103


.




In a preferred embodiment, the network packet


200


comprises either an ethernet LAN packet, constructed according to an ethernet LAN protocol, or a token ring LAN packet, constructed according to a token ring LAN protocol. Both ethernet LAN protocols and token ring LAN protocols are known in the art.




At a step


252


, the router


120


wraps the packet


200


in a LEX protocol wrapper


210


, comprising a LEX header


211


and a LEX body


212


. The LEX protocol is the protocol used by the router


120


for communication with the network extender


110


using the communication link


123


. The LEX body


212


comprises either a sequence of data for the network extender


110


to redistribute onto the network


101


(that is, a network packet


200


), or may comprise a control message designated for the network extender


110


itself.




At a step


253


, the router


120


transmits the LEX protocol wrapper


210


to the network extender


110


using the communication link


123


.




At a step


254


, the network extender


110


receives the LEX protocol wrapper


210


using the communication link


123


. The network extender


110


detects the LEX header


211


and separates the LEX header


211


from the LEX body


212


.




At a step


255


, the network extender


110


interprets the LEX header


211


, which designates the LEX body


212


as intended for redistribution onto the network


101


(that is, a network packet


200


), or as intended as a control message designated for the network extender


110


itself. If the LEX body


212


is a network packet


200


, the network extender


110


proceeds to the step


256


. Otherwise, the network extender


110


proceeds to the step


257


.




At a step


256


, the network extender


110


unwraps the LEX header


211


from the LEX protocol wrapper


210


, and redistributes the LEX body


212


as a network packet


200


onto the network


101


using the network interface


104


. The network's communication medium


102


transmits the network packet


200


to its destination device


103


(or devices


103


, for example if the network packet


200


is a broadcast packet).




At a step


257


, the network extender


110


unwraps the LEX header


211


from the LEX protocol wrapper


210


, and interprets the LEX body


212


as a control message.




The following set of control messages comprises a set for a network extender


110


coupled to an ethernet LAN and operating according to an ethernet LAN protocol. In alternative embodiments, or with alternative network extenders


110


coupled to alternative networks


101


, there might be a different set of control messages, or no control messages. For example, when the physical controller


132


is coupled to a PCMCIA card


150


, there might be no control messages implemented at all.




A first control message comprises a negotiation control message for directing the network extender


110


to negotiate a set of parameters for establishing the communication link


123


. The negotiation control message comprises a protocol version value, indicating the version of the LEX protocol supported by the router


120


. The network extender


110


receives the protocol version value and responds with a negotiation control message indicating the version of the LEX protocol it supports. The router


120


and the network extender


110


each adjust their treatment of the communication link


123


to use the lower-numbered version of the LEX protocol.




A second control message comprises a protocol filtering control message for directing the network extender


110


to filter network packets


200


for those packets it should forward to the router


120


and those packets it should not forward. The protocol filtering control message comprises a sequence of tuples


213


, in a canonical order, each tuple


213


comprising a protocol type


214


and a permit/deny bit


215


indicating whether a network packet


200


having that protocol type


214


should be forwarded or discarded. The sequence of tuples


213


is preceded by a sequence length field; a zero length sequence of tuples


213


is interpreted by the network extender


110


as a command to turn protocol filtering off.




A third control message comprises a destination filtering control message for directing the network extender


110


to filter network packets


200


, similar to the protocol filtering control message. The destination filtering control message comprises a sequence of tuples


213


, in a canonical order, each tuple


213


comprising a destination address


216


and a permit/deny bit


215


indicating whether a network packet


200


having that protocol type


214


should be forwarded or discarded. The sequence of tuples


213


is preceded by a sequence length field; a zero length sequence of tuples


213


is interpreted by the network extender


110


as a command to turn destination filtering off.




The network extender


110


parses the filtering control message and the destination filtering control message, and in response constructs a trie


217


embodying the instructions in the sequence of tuples


213


of protocol types


214


and permit/deny bit


215


or tuples


213


of destination addresses


216


and permit/deny bits


215


. When the network extender


110


receives a network packet


200


, as at the step


262


, it matches the protocol type


215


and destination address


216


of the network packet


200


against the trie


217


to determine whether it should forward or discard the network packet


200


.




In a preferred embodiment, the router


120


already comprises means for filtering packets


200


for those packets


200


it should forward to the network


101


and those packets


200


it should not forward, and does not generally require filtering information from the network extender


110


.




A fourth control message comprises a priority queuing control message for directing the network extender


110


to prioritizing packets


200


to be queued for transmission to the router


120


using the communication link


123


. The priority queuing control message comprises a sequence of tuples


213


, in a canonical order, each tuple


213


comprising a protocol type


214


and a priority value


218


indicating what priority value to assign a network packet


200


having that protocol type


214


. The sequence of tuple


213


is preceded by a sequence length field; a zero length sequence of tuples


213


is interpreted by the network extender


110


as a command to assign all packets the same priority value.




A fifth control message comprises a report statistics control message for directing the network extender


110


to respond with a report of operational statistics. The report statistics control message comprises a set of statistics flags, directing which statistics to report and directing the network extender


110


whether to reset those statistics upon reporting them.




In a preferred embodiment, the statistics flags comprise a first flag directing the network extender


110


to resent statistics after reporting, a second flag directing the network extender


110


to report statistics regarding the communication link


123


, and a third flag directing the network extender


110


to report statistics regarding the network's communication medium


102


. Statistics to be reported may comprise numbers of packets transmitted or received, errors of various types, latency times, transmission rates for packets or data, and other statistics known in the art of computer networking.




A sixth control message comprises a reboot control message for directing the network extender


110


to reboot itself.




A seventh control message comprises a download control message for directing the network extender


110


to download data comprising a program, a set of options, or other data.




An eighth control message comprises a download status control message for directing the network extender


110


to report status of a recent download control message.




A ninth control message comprises a disable network control message for directing the network extender


110


to disable its connectivity to the network


101


.




A tenth control message comprises an enable network control message for directing the network extender


110


to enable its connectivity to the network


101


.




An eleventh control message comprises an inventory control message for directing the network extender


110


to respond with a report of its hardware and software, including version numbers.




At a flow point


260


, a device


103


on the network


101


desires to send a packet


200


to the router


120


(or to a destination device coupled to the router's second network


124


).




At a step


261


, the device


103


builds the network packet


200


, comprising a packet header


201


and a packet body


202


, and sends the network packet


200


on the network's communication medium


102


. The packet header


201


comprises a destination address for the device


103


on the router's second network


124


; the packet body


202


comprises a sequence of data intended for the destination addressee device


103


.




At a step


262


, the network extender


110


receives the network packet


200


using the network's communication medium


102


. The network extender


110


detects the packet header


201


and determines whether the destination address is one it should forward to the router


120


. If the destination address is one it should forward, the network extender


110


proceeds to the step


263


. Otherwise, the network extender


110


discards the packet


200


.




At a step


263


, the network extender


110


attempt to make a communication link


123


with the router


120


. If the network extender


110


already has a communication link


123


is progress with the router


120


, the network extender


110


proceeds to the step


264


. Otherwise, the network extender


110


establishes the communication link


123


with the router


120


using the telephone network


113


. Establishing communication links using a telephone network is known in the art of computer communication.




At a step


264


, the router


120


receives the incoming communication link


123


to the router's serial port


121


. The router


120


negotiates with the network extender


110


to establish the communication link


123


with acceptable parameters (for example, line speed), using a negotiation control message described with the step


257


. Negotiation to establish link parameters is known in the art of computer communication.




At a step


265


, the network extender


120


transmits authentication information to the router


120


using the communication link


123


. In a preferred embodiment, the authentication information is a MAC address for the network extender


110


.




At a step


266


, the router


120


receives the authentication/identification information and attempts to authenticate the network extender


110


. If the router


120


is able to authenticate the network extender


110


, it proceeds to the step


267


. Otherwise, the router


120


so informs the network extender


110


and breaks the communication link


123


.




In alternative embodiments, the step


265


and the step


266


may comprise a more elaborate or secure method of identification and authentication, such as PPP CHAP. For example, the step


266


may comprise a distinct authentication technique, and may comprise the exchange of information between the network extender


110


and the router


120


using the communication link


123


. In such alternative embodiments, the router


120


attempts to identify and authenticate the network extender


110


before binding the virtual controller to the physical controller for the communication link


123


in the step


267


.




At a step


267


, the router


120


searches a lookup table for the virtual controller


134


associated with the network extender


110


, and binds that virtual controller


134


to the physical controller


132


for the communication link


123


. In a preferred embodiment, the MAC address for the network extender is associated with a single virtual controller


134


. If no such virtual controller


134


exists (that is, the type of virtual port


135


is known but there is no instantiation of the virtual controller


134


for this particular network extender


110


), the router


120


creates an instantiation of the associated virtual controller


134


and assigns that virtual controller


134


parameters for the communication link


123


.




At a step


268


, the network extender


110


wraps the network packet


200


in the LEX protocol wrapper


210


, comprising a LEX header


211


and a LEX body


212


, and transmits the LEX protocol wrapper


210


to the router


120


using the communication link


123


. The LEX body


212


comprises the network packet


200


.




At a step


269


, the router


120


unwraps the LEX header


211


from the LEX protocol wrapper


210


. The router


120


compares the LEX body


212


against an access list or a filter list to determine if the LEX body


212


should be forwarded to the second network


124


. If so, the router


120


redistributes the LEX body


212


as a network packet


200


onto the second network


124


, and the second network


124


transmits the network packet


200


to its destination device


103


(or devices


103


, for example if the network packet


200


is a broadcast packet). Otherwise, the router


120


discards the LEX body


212


.




The network extender


110


is also disposed to send a LEX protocol wrapper


210


comprising a LEX header


211


and a LEX body


212


, where the LEX body


212


is a control message to the router


120


or a response to a control message from the router


120


. When the LEX body


212


is a control message or a response to a control message, the router


120


detects this and does not forward the LEX body


212


onto the second network


124


.




Alternative Embodiments




Although preferred embodiments are disclosed herein, many variations are possible which remain within the concept, scope, and spirit of the invention, and these variations would become clear to those skilled in the art after perusal of this application.



Claims
  • 1. A method for using a virtual interface associated with a second network device to control, via a data network, a first network device, the method comprising:binding the virtual interface with a selected physical interface, said selected physical interface comprising a communication link to the first network device; receiving, at the virtual interface, a first command instruction for controlling at least one operational aspect of the first network device; generating a command message, according to a predetermined protocol, using information from the a first command instruction; and transmitting, via the data network, the command message to the first network device to thereby cause the first network device to realize said first command instruction.
  • 2. The method of claim 1 wherein said predetermined protocol corresponds to a Local Area Network (LEX) protocol.
  • 3. The method of claim 1 wherein said command message is transmitted to the first network device via the physical interface.
  • 4. The method of claim 1 further including dynamically assigning the virtual interface to the selected physical interface.
  • 5. The method of claim 1 further comprising:receiving the command message at the first network device; extracting the first command information from the command message; and performing, at the first network device, the first command in accordance with the first command information.
  • 6. The method of claim 1 wherein the first network device is controllable by a user, and wherein the method further comprises controlling the first network device by the user via said virtual interface, without establishing a direct connection between the user and the first network device.
  • 7. The method of claim 6 further comprising enabling the user to control operational aspects of the first network device by transmitting command instructions to the second network device.
  • 8. The method of claim 1 further comprising controlling the second network device without using a network level address associated with the second network device.
  • 9. The method of claim 1 wherein the first network device does not have a corresponding network level address.
  • 10. The method of claim 1 further comprising:recording state information relating to at least one communication link associated with the selected physical interface; decoupling the at least one virtual interface from the selected physical interface; binding the at least one virtual interface to a second physical interface, said second virtual interface comprising a communication link to the first network device; and using the recorded state information for communicating with the first network device via the second physical interface.
  • 11. The method of claim 1 wherein the first network device comprises a MAC address, and wherein the method further comprises using the MAC address of the first network device to communicate with the first network device.
  • 12. A computer program product for using a virtual interface associated with a second network device to control, via a data network, a first network device, the computer program product comprising:a computer readable medium, the computer readable medium comprising: computer code for binding the virtual interface with a selected physical interface; computer code for receiving, at the virtual interface, a first command instruction for controlling at least one operational aspect of the first network device; computer code for generating a command message, according to a predetermined protocol, using information from the a first command instruction; and computer code for transmitting, via the data network, the command message to the first network device to thereby cause the first network device to realize said first command instruction.
  • 13. The computer program product of claim 12 further comprising computer code for dynamically assigning the virtual interface to the selected physical interface.
  • 14. The computer program product of claim 12 further comprising:computer code for receiving the command message at the first network device; computer code for extracting the first command information from the command message; and computer code for performing, at the first network device, the first command in accordance with the first command information.
  • 15. The computer program product of claim 12 wherein the first network device is controllable by a user, and wherein the computer program product further comprises computer code for enabling the user to control operational aspects of the first network device by transmitting command instructions to the second network device.
  • 16. A system for using a virtual interface associated with a second network device to control, via a data network, a first network device, the system comprising:means for binding the virtual interface with a selected physical interface; means for receiving, at the virtual interface, a first command instruction for controlling at least one operational aspect of the first network device; means for generating a command message, according to a predetermined protocol, using information from the a first command instruction; and means for transmitting, via the data network, the command message to the first network device to thereby cause the first network device to realize said first command instruction.
  • 17. A system for controlling a first network device in a data network, the system comprising:a second network device having at least one virtual interface and at least one physical interface; said at least one virtual interface associated with a selected physical interface of the at least one physical interface; said at least one virtual interface further being configured to receive command instructions for controlling at least one operational aspect of the first network device; said second network device being configured to generate a encapsulated command messages, according to a predetermined protocol, using information from the received command messages; and said second network device being further configured to transmit, via the data network, the encapsulated command messages to the first network device to thereby cause the first network device to carry out commands relating to the received command instructions.
  • 18. The system of claim 17 wherein said predetermined protocol corresponds to a Local Area Network (LEX) protocol.
  • 19. The system of claim 17 wherein said second network device is further configured transmit the encapsulated command messages to the first network device via the selected physical interface.
  • 20. The system of claim 17 wherein said second network device is further configured to dynamically assign the at least one virtual interface to the selected physical interface.
  • 21. The system of claim 17 wherein the first network device is configured to:receive encapsulated command message from the second network device; extract command instructions from the encapsulated command message; and implement actions in accordance with the command instructions.
  • 22. The system of claim 17 wherein the first network device does not have a corresponding network level address.
  • 23. The system of claim 17 wherein the second network device is a router.
Parent Case Info

This application is submitted in the name of inventor Andrew Harvey, having a postal address at 170 West Tasman Drive, San Jose, Calif. 95134, assignor to cisco Systems, Inc., a California corporation having an office at 170 West Tasman Drive, San Jose, Calif. 95134. This application is a divisional of application Ser. No. 08/906,712 now U.S. Pat. No. 5,867,666 filed Aug. 5, 1997. This application claims priority from application Ser. No. 08/367,050 and application Ser. No. 08/906,712.

US Referenced Citations (161)
Number Name Date Kind
4677423 Benvenuto et al. Jun 1987
4679189 Olson et al. Jul 1987
4679227 Hughes-Hartogs Jul 1987
4723267 Jones et al. Feb 1988
4731816 Hughes-Hartogs Mar 1988
4750136 Arpin et al. Jun 1988
4757495 Decker et al. Jul 1988
4763191 Gordon et al. Aug 1988
4769810 Eckberg, Jr. et al. Sep 1988
4769811 Eckberg, Jr. et al. Sep 1988
4771425 Baran et al. Sep 1988
4819228 Baran et al. Apr 1989
4827411 Arrowood et al. May 1989
4833706 Hughes-Hartogs May 1989
4835737 Herrig et al. May 1989
4879551 Georgiou et al. Nov 1989
4893306 Chao et al. Jan 1990
4903261 Baran et al. Feb 1990
4922486 Lidinsky et al. May 1990
4933937 Konishi Jun 1990
4960310 Cushing Oct 1990
4962497 Ferenc et al. Oct 1990
4962532 Kasirai et al. Oct 1990
4965772 Daniel et al. Oct 1990
4970678 Sladowski et al. Nov 1990
4979118 Kheradpir Dec 1990
4980897 Decker et al. Dec 1990
4991169 Davis et al. Feb 1991
5003595 Collins et al. Mar 1991
5014265 Hahne et al. May 1991
5020058 Holden et al. May 1991
5033076 Jones et al. Jul 1991
5054034 Hughes-Hartogs Oct 1991
5059925 Weisbloom Oct 1991
5072449 Enns et al. Dec 1991
5088032 Bosack Feb 1992
5095480 Fenner Mar 1992
5115431 Williams et al. May 1992
5128945 Enns et al. Jul 1992
5136580 Videlock et al. Aug 1992
5166930 Braff et al. Nov 1992
5199049 Wilson Mar 1993
5206886 Bingham Apr 1993
5208811 Kashio et al. May 1993
5212686 Joy et al. May 1993
5224099 Corbalis et al. Jun 1993
5226120 Brown et al. Jul 1993
5228062 Bingham Jul 1993
5229994 Balzano et al. Jul 1993
5237564 Lespagnol et al. Aug 1993
5241682 Bryant et al. Aug 1993
5243342 Kattemalalavadi et al. Sep 1993
5243596 Port et al. Sep 1993
5247516 Bernstein et al. Sep 1993
5249178 Kurano et al. Sep 1993
5253251 Aramaki Oct 1993
5255291 Holden et al. Oct 1993
5260933 Rouse Nov 1993
5260978 Fleischer et al. Nov 1993
5268592 Bellamy et al. Dec 1993
5268900 Hluchyj et al. Dec 1993
5271004 Proctor et al. Dec 1993
5274631 Bhardwaj Dec 1993
5274635 Rahman et al. Dec 1993
5274643 Fisk Dec 1993
5280470 Buhrke et al. Jan 1994
5280480 Pitt et al. Jan 1994
5280500 Mazzola et al. Jan 1994
5283783 Nguyen et al. Feb 1994
5287103 Kasprzyk et al. Feb 1994
5287453 Roberts Feb 1994
5291482 McHarg et al. Mar 1994
5305311 Lyles Apr 1994
5307343 Bostica et al. Apr 1994
5309437 Perlman et al. May 1994
5311509 Heddes et al. May 1994
5313454 Bustini et al. May 1994
5313582 Hendel et al. May 1994
5317562 Nardin et al. May 1994
5319644 Liang Jun 1994
5327421 Hiller et al. Jul 1994
5331637 Francis et al. Jul 1994
5345445 Hiller et al. Sep 1994
5345446 Hiller et al. Sep 1994
5359592 Corbalis et al. Oct 1994
5361250 Nguyen et al. Nov 1994
5361256 Doeringer et al. Nov 1994
5361259 Hunt et al. Nov 1994
5365524 Hiller et al. Nov 1994
5367517 Cidon et al. Nov 1994
5371852 Attanasio et al. Dec 1994
5386567 Lien et al. Jan 1995
5390170 Sawant et al. Feb 1995
5390175 Hiller et al. Feb 1995
5394394 Crowther et al. Feb 1995
5394402 Ross Feb 1995
5400325 Chatwani et al. Mar 1995
5408469 Opher et al. Apr 1995
5416842 Aziz May 1995
5422880 Heitkamp et al. Jun 1995
5422882 Hiller et al. Jun 1995
5423002 Hart Jun 1995
5426636 Hiller et al. Jun 1995
5428607 Hiller et al. Jun 1995
5430715 Corbalis et al. Jul 1995
5442457 Najafi Aug 1995
5442630 Gagliardi et al. Aug 1995
5452297 Hiller et al. Sep 1995
5473599 Li et al. Dec 1995
5473607 Hausman et al. Dec 1995
5477541 White et al. Dec 1995
5485455 Dobbins et al. Jan 1996
5490140 Abensour et al. Feb 1996
5490258 Fenner Feb 1996
5491687 Christensen et al. Feb 1996
5491804 Heath et al. Feb 1996
5497368 Reijnierse et al. Mar 1996
5504747 Sweasey Apr 1996
5509006 Wilford et al. Apr 1996
5517494 Green May 1996
5519704 Farinacci et al. May 1996
5519858 Walton et al. May 1996
5526489 Nilakantan et al. Jun 1996
5530963 Moore et al. Jun 1996
5535195 Lee Jul 1996
5539734 Burwell et al. Jul 1996
5555244 Gupta et al. Sep 1996
5561669 Lenney et al. Oct 1996
5583862 Callon Dec 1996
5583997 Hart Dec 1996
5592470 Rudrapatna et al. Jan 1997
5598581 Daines et al. Jan 1997
5600798 Cherukuri et al. Feb 1997
5604868 Komine et al. Feb 1997
5608726 Virgile Mar 1997
5617417 Sathe et al. Apr 1997
5617421 Chin et al. Apr 1997
5630125 Zellweger May 1997
5631908 Saxe May 1997
5632021 Jennings et al. May 1997
5634010 Ciscon et al. May 1997
5638359 Peltola et al. Jun 1997
5644718 Belove et al. Jul 1997
5659684 Giovannoni et al. Aug 1997
5666353 Klausmeier et al. Sep 1997
5673265 Gupta et al. Sep 1997
5678006 Valizadeh et al. Oct 1997
5684797 Aznar et al. Nov 1997
5687324 Green et al. Nov 1997
5689506 Chiussi et al. Nov 1997
5694390 Yamato et al. Dec 1997
5724351 Chao et al. Mar 1998
5748186 Raman May 1998
5748617 McLain, Jr. May 1998
5754547 Nakazawa May 1998
5796742 Klotzbach et al. Aug 1998
5835710 Nagami et al. Nov 1998
5854903 Morrison et al. Dec 1998
5867666 Harvey Feb 1999
5892924 Lyon et al. Apr 1999
5898686 Virgile Apr 1999
Foreign Referenced Citations (7)
Number Date Country
0 384 758 A2 Aug 1990 EP
0 431 751 A1 Jun 1991 EP
0 567 217 A2 Oct 1993 EP
WO9307569 Apr 1993 WO
WO9307692 Apr 1993 WO
WO9401828 Jan 1994 WO
WO9520850 Aug 1995 WO
Non-Patent Literature Citations (12)
Entry
Allen, M., “Novell IPX Over Various WAN Media (IPXW AN),” Network Working Group, RFC 1551, Dec. 1993, pp. 1-22.
Becker, D., “3c589.c: A 3c589 EtherLink3 ethernet driver for linux,” becker@ CESDIS.gsfc.nasa.gov, May 3, 1994, pp. 1-13.
Chowdhury, et al., “Alternative Bandwidth Allocation Algorithms for Packet Video in ATM Networks,” INFOCOM 1992, pp. 1061-1068.
Doeringer, W., “Routing on Longest-Matching Prefixes,” IEEE/ACM Transactions in Networking, vol. 4, No. 1, Feb. 1996, pp. 86-97.
Esaki, et al., “Datagram Delivery in an ATM-Internet,” 2334b IEICE Transactions on Communications, Mar. 1994, No. 3, Tokyo, Japan.
IBM Corporation, “Method and Apparatus for the Statistical Multiplexing of Voice, Data and Image Signals,” IBM Technical Disclosure Bulletin, No. 6, Nov. 1992, pp. 409-411.
Pei, et al., “Putting Routing Tables in Silicon,” IEEE Network Magazine, Jan. 1992, pp. 42-50.
Perkins, D., “Requirements for an Internet Standard Point-to-Point Protocol,” Network Working Group, RFC 1547, Dec. 1993, pp. 1-19.
Simpson, W., “The Point-to-Point Protocol (PPP),” Network Working Group, RFC 1548, Dec. 1993, pp. 1-53.
Tsuchiya, P.F., “A Search Algorithm for Table Entries with Non-Contiguous Wildcarding,” Abstract, Bellcore.
Zhang, et al., “Rate-Controlled Static-Priority Queueing,” INFOCOM 1993, pp. 227-236.
Chapman et al, “PPP Network Control Protocol per LAN Extension,” Network Working Group, RFC 1841, Sep. 1995.