Methods, systems and computer readable media for mDNS support in unified access networks are described.

Patent
   9806945
Priority
Jun 22 2013
Filed
Jun 22 2013
Issued
Oct 31 2017
Expiry
Dec 07 2033
Extension
168 days
Assg.orig
Entity
Large
1
14
currently ok
1. A method comprising:
starting a zero configuration protocol agent on a switch;
electing a first switch of a group of switches to be a gateway switch for a network, wherein the network includes a plurality of virtual local area networks (vlans), and wherein each switch of the group of switches is part of only a first vlan in the network, and wherein the first switch is designated as a gateway between the first vlan and a remainder of the network;
synchronizing service records from the gateway switch to the other switches in the group of switches;
learning, at the gateway switch, a new service from a peer gateway switch that is not in the group of switches;
relaying information about the new service from the gateway switch to other switches in the group of switches, wherein the information is relayed based upon a policy table in the gateway switch, wherein the policy table stores end user privileges associated with the new service;
providing stored service records from the gateway switch in response to a service discovery request message;
monitoring, at one of the switches, service discovery request messages and responses to learn available services;
sending a copy of the available services to a wireless controller;
detecting, at the one switch, a service discovery request;
sending a message from the one switch to the wireless controller requesting the available services;
receiving a response from the wireless controller;
framing the response in a service request protocol format; and
sending the framed response on a network.
4. A system comprising one or more processors configured to perform operations including:
starting a zero configuration protocol agent on a switch;
electing a first switch of a group of switches to be a gateway switch for a network, wherein the network includes a plurality of virtual local area networks (vlans), and wherein each switch of the group of switches is part of only a first vlan in the network, and wherein the first switch is designated as a gateway between the first vlan and a remainder of the network;
synchronizing service records from the gateway switch to the other switches in the group of switches;
learning, at the gateway switch, a new service from a peer gateway switch that is not in the group of switches;
relaying information about the new service from the gateway switch to other switches in the group of switches, wherein the information is relayed based upon a policy table in the gateway switch, wherein the policy table stores end user privileges associated with the new service;
providing stored service records from the gateway switch in response to a service discovery request message;
monitoring, at one of the switches, service discovery request messages and responses to learn available services;
sending a copy of the available services to a wireless controller;
detecting, at the one switch, a service discovery request;
sending a message from the one switch to the wireless controller requesting the available services;
receiving a response from the wireless controller;
framing the response in a service request protocol format; and
sending the framed response on a network.
7. A nontransitory computer readable medium having stored thereon software instructions that, when executed by a processor of a wireless controller, cause the processor to perform operations including:
starting a zero configuration protocol agent on a switch;
electing a first switch of a group of switches to be a gateway switch for a network, wherein the network includes a plurality of virtual local area networks (vlans), and wherein each switch of the group of switches is part of only a first vlan in the network, and wherein the first switch is designated as a gateway between the first vlan and a remainder of the network;
synchronizing service records from the gateway switch to the other switches in the group of switches;
learning, at the gateway switch, a new service from a peer gateway switch that is not in the group of switches;
relaying information about the new service from the gateway switch to other switches in the group of switches, wherein the information is relayed based upon a policy table in the gateway switch, wherein the policy table stores end user privileges associated with the new service;
providing stored service records from the gateway switch in response to a service discovery request message;
monitoring, at one of the switches, service discovery request messages and responses to learn available services;
sending a copy of the available services to a wireless controller;
detecting, at the one switch, a service discovery request;
sending a message from the one switch to the wireless controller requesting the available services;
receiving a response from the wireless controller;
framing the response in a service request protocol format; and
sending the framed response on a network.
2. The method of claim 1, wherein the service discovery request message is a multicast Domain Name system (mDNS) message.
3. The method of claim 1, wherein the copy of the available services is sent via a unicast message.
5. The system of claim 4, wherein the service discovery request message is a multicast Domain Name system (mDNS) message.
6. The system of claim 4, wherein the copy of the available services is sent via a unicast message.
8. The nontransitory computer readable medium of claim 7, wherein the service discovery request message is a multicast Domain Name system (mDNS) message.
9. The nontransitory computer readable medium of claim 7, wherein the copy of the available services is sent via a unicast message.
10. The method of claim 1, wherein the first switch includes an access point.
11. The method of claim 1, wherein each of the plurality of vlans in the network has a respective particular switch designated as a respective gateway switch.
12. The method of claim 1, wherein the end user privileges specify whether the new service is to be relayed across the network.
13. The system of claim 4, wherein each of the plurality of vlans in the network has a respective particular switch designated as a respective gateway switch.
14. The system of claim 4, wherein the end user privileges specify whether the new service is to be relayed across the network.
15. The nontransitory computer readable medium of claim 7, wherein each of the plurality of vlans in the network has a respective particular switch designated as a respective gateway switch.
16. The nontransitory computer readable medium of claim 7, wherein the end user privileges specify whether the new service is to be relayed across the network.

Embodiments relate generally to computer networks, and more particularly, to methods, systems and computer readable media for mDNS support in unified access networks.

Zero configuration networking (or zeronconf) is a group of technologies that can include service discovery, address assignment, and hostname resolution. Apple Computer Corporation's Bonjour zero configuration networking technology locates devices such as printers, other computers, and the services that those devices offer on a local network using multicast Domain Name System (mDNS) service records.

The mDNS service may be suitable for small, single networks, but may not be suited for larger enterprises having multiple networks. A need may exist for selective intelligent relaying of service discovery packets across a network. Further, some memory constrained wireless access points (APs) and/or low-end unified switches.

Embodiments were conceived in light of the above mentioned needs, problems and/or limitations, among other things.

One or more embodiments can include methods, systems and computer readable media for mDNS support in unified access networks. In some implementations, the method can include starting a zero configuration protocol agent on a switch and electing one switch of a group of switches to be a gateway switch for a network. The method can also include synchronizing service records from the gateway switch to the other switches in the group of switches and learning, at the gateway switch, a new service from a peer gateway switch. The method can further include relaying information about the new service from the gateway switch to other switches in the group of switches and providing stored service records from the gateway switch in response to a service discovery request message. The service discovery request message can be an mDNS message.

The method can further include monitoring, at one of the switches, service discovery request messages and responses to learn available services and sending a copy of the available services to a wireless controller. The method can further include detecting, at the one switch, a service discovery request and sending a message from the one switch to the wireless controller requesting the available services. The method can also include receiving a response from the wireless controller, framing the response in a service request protocol format and sending the framed response on a network. The copy of the available services can be sent via a unicast message.

FIG. 1 is a diagram of an example network in accordance with at least one implementation.

FIG. 2 is a diagram of an example unified switch (or mobility switch) in accordance with at least one implementation.

FIG. 3 is a flow chart of an example method for mDNS support in unified access networks in accordance with at least one implementation.

FIG. 4 is a flow chart of an example method for mDNS support in memory constrained devices in unified access networks in accordance with at least one implementation.

FIG. 5 is a diagram of an example computer system for mDNS support in unified access networks in accordance with at least one implementation.

While some specific zero configuration network protocols, such as Apple's Bonjour, are discussed below to help illustrate various features, it will be appreciated that the systems, methods and computer readable media described herein can be configured to work with other zero configuration protocols or technologies.

As shown in FIG. 1, an example wireless network 100 (e.g., enterprise WLANs) includes wireless controllers (102 and 104) connected to respective mobility switches (or unified switches) 106 and 108. Each mobility switch (106 and 108) is connected to a respective VLAN (or MVLAN) 110, 112 and serves as the gateway for its corresponding VLAN (there can be more than one mobility switch or unified switch in each VLAN, but only one per VLAN will be designated as the gateway). Access points 114-120 are connected to corresponding unified switches 106, 108. Client devices 122-128 connect to the network via one of the access points 114-120.

In operation, the mobility switches (106 and 108) can receive a service filter configuration from an admin or other system (e.g., from a corresponding wireless controller 102/104) and filter based on a user defined set of services. A Bonjour (e.g., zeroconf) service advertisement can be sent from a client device (e.g., 128) to the mobility switch 108 via AP 4 120. Mobility switch 108 can sync service records with mobility switch 106, which caches (or stores) the services advertised by mobility switch 108.

A client device (e.g., 122) sends a service discovery request (e.g., via mDNS) to mobility switch 106 via AP 1 114. The mobility switch 106 sends a response framed as an mDNS response.

As shown in FIG. 2, a mobility switch (e.g., 106 and/or 108) can include a Bonjour agent 202 and a policy table 204. The Bonjour agent 202 is discussed for illustration purposes and can be an agent for any zeronconf protocol.

The policy table 204 can store end user privileges associated with the Bonjour (or other zeroconf) services to permit policy-based end user privilege permissions. For example, by using the policy-based end user privileges, network administrators can select which services that may need to be relayed and advertised across which networks. The bonjour agents (e.g., 202) handle the relaying of the selected services across the network.

FIG. 3 is a flow chart of an example method for mDNS support in unified access networks. Processing begins at 302, where a Bonjour agent is started on a mobility switch (e.g., 106 or 108). Processing continues to 304.

At 304, one of the mobility switches is elected as the Bonjour gateway for each VLAN. The mobility switches can use any suitable method to elect or negotiate which one of the mobility switches will serve as the gateway. Processing continues to 306.

At 306, each Bonjour gateway syncs service records discovered on its respective VLAN with other mobility switches in the domain. Processing continues to 308.

At 308, when a Bonjour gateway learns of new services from peer gateways, it relays the service information to other switches on the VLAN for which it is the gateway. Processing continues to 310.

At 310, when a mobility switch receives a service discovery request (e.g., an mDNS request), the mobility switch responds with stored (or cached) service records.

It will be appreciated that 302-310 can be repeated in whole or in part.

FIG. 4 is a flow chart of an example method for mDNS support in a memory constrained AP or unified switch. Processing begins at 402, where a memory constrained device (e.g., an AP or a unified switch) snoops or monitors mDNS traffic. Processing continues to 404.

At 404, the AP/unified switch sends a copy of snooped mDNS traffic to the wireless control plane (e.g., a wireless controller 102/104). Processing continues to 406.

At 406, the AP/unified switch sends a unicast request to the wireless controller when the AP/unified switch detects an mDNS query. Processing continues to 408.

At 408, the AP/unified switch frames the response from the wireless controller as an mDNS response and sends it onto the network.

It will be appreciated that 402-408 can be repeated in whole or in part.

FIG. 5 is a diagram of an example computer system 500 in accordance with at least one implementation. The computer 500 includes a processor 502, operating system 504, memory 506 and I/O interface 508. The memory 506 can include an mDNS support application 510 and a database 512 (e.g., for storing learned services or the like).

In operation, the processor 502 may execute the application 510 stored in the memory 506. The application 510 can include software instructions that, when executed by the processor, cause the processor to perform operations for network management in accordance with the present disclosure (e.g., performing one or more of steps 302-310 and/or 402-408).

The application program 510 can operate in conjunction with the database 512 and the operating system 504.

It will be appreciated that the modules, processes, systems, and sections described above can be implemented in hardware, hardware programmed by software, software instructions stored on a nontransitory computer readable medium or a combination of the above. A system as described above, for example, can include a processor configured to execute a sequence of programmed instructions stored on a nontransitory computer readable medium. For example, the processor can include, but not be limited to, a personal computer or workstation or other such computing system that includes a processor, microprocessor, microcontroller device, or is comprised of control logic including integrated circuits such as, for example, an Application Specific Integrated Circuit (ASIC). The instructions can be compiled from source code instructions provided in accordance with a programming language such as Java, C, C++, C#.net, assembly or the like. The instructions can also comprise code and data objects provided in accordance with, for example, the Visual Basic™ language, or another structured or object-oriented programming language. The sequence of programmed instructions, or programmable logic device configuration software, and data associated therewith can be stored in a nontransitory computer-readable medium such as a computer memory or storage device which may be any suitable memory apparatus, such as, but not limited to ROM, PROM, EEPROM, RAM, flash memory, disk drive and the like.

Furthermore, the modules, processes systems, and sections can be implemented as a single processor or as a distributed processor. Further, it should be appreciated that the steps mentioned above may be performed on a single or distributed processor (single and/or multi-core, or cloud computing system). Also, the processes, system components, modules, and sub-modules described in the various figures of and for embodiments above may be distributed across multiple computers or systems or may be co-located in a single processor or system. Example structural embodiment alternatives suitable for implementing the modules, sections, systems, means, or processes described herein are provided below.

The modules, processors or systems described above can be implemented as a programmed general purpose computer, an electronic device programmed with microcode, a hard-wired analog logic circuit, software stored on a computer-readable medium or signal, an optical computing device, a networked system of electronic and/or optical devices, a special purpose computing device, an integrated circuit device, a semiconductor chip, and/or a software module or object stored on a computer-readable medium or signal, for example.

Embodiments of the method and system (or their sub-components or modules), may be implemented on a general-purpose computer, a special-purpose computer, a programmed microprocessor or microcontroller and peripheral integrated circuit element, an ASIC or other integrated circuit, a digital signal processor, a hardwired electronic or logic circuit such as a discrete element circuit, a programmed logic circuit such as a PLD, PLA, FPGA, PAL, or the like. In general, any processor capable of implementing the functions or steps described herein can be used to implement embodiments of the method, system, or a computer program product (software program stored on a nontransitory computer readable medium).

Furthermore, embodiments of the disclosed method, system, and computer program product (or software instructions stored on a nontransitory computer readable medium) may be readily implemented, fully or partially, in software using, for example, object or object-oriented software development environments that provide portable source code that can be used on a variety of computer platforms. Alternatively, embodiments of the disclosed method, system, and computer program product can be implemented partially or fully in hardware using, for example, standard logic circuits or a VLSI design. Other hardware or software can be used to implement embodiments depending on the speed and/or efficiency requirements of the systems, the particular function, and/or particular software or hardware system, microprocessor, or microcomputer being utilized. Embodiments of the method, system, and computer program product can be implemented in hardware and/or software using any known or later developed systems or structures, devices and/or software by those of ordinary skill in the applicable art from the function description provided herein and with a general basic knowledge of the software engineering and computer networking arts.

Moreover, embodiments of the disclosed method, system, and computer readable media (or computer program product) can be implemented in software executed on a programmed general purpose computer, a special purpose computer, a microprocessor, a network server or switch, or the like.

It is, therefore, apparent that there is provided, in accordance with the various embodiments disclosed herein, methods, systems and computer readable media for mDNS support in unified access networks.

While the disclosed subject matter has been described in conjunction with a number of embodiments, it is evident that many alternatives, modifications and variations would be, or are, apparent to those of ordinary skill in the applicable arts. Accordingly, Applicants intend to embrace all such alternatives, modifications, equivalents and variations that are within the spirit and scope of the disclosed subject matter.

Ankaiah, Shashi Hosakere, Atreya, Vivek Lakshminarayana, Kumar C S, Pavan, Munirajaiah, Poornima, Lakshminarayana, Umesh Vidyaranyapura

Patent Priority Assignee Title
11516302, Jun 16 2020 Hewlett Packard Enterprise Development LP Network service discovery
Patent Priority Assignee Title
20040258074,
20100070600,
20100071024,
20100290445,
20110131338,
20120014387,
20120106523,
20120110393,
20130083700,
20130311661,
20140012967,
20140073289,
20140241368,
20140281669,
///////////////////////
Executed onAssignorAssigneeConveyanceFrameReelDoc
Jun 22 2013Extreme Networks, Inc.(assignment on the face of the patent)
Jul 12 2013LAKSHMINARAYANA, UMESH VIDYARANYAPURAAVAYA IncASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0309390871 pdf
Jul 12 2013MUNIRAJAIAH, POORNIMAAVAYA IncASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0309390871 pdf
Jul 12 2013C S, PAVAN KUMARAVAYA IncASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0309390871 pdf
Jul 12 2013ANKAIAH, SHASHI HOSAKEREAVAYA IncASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0309390871 pdf
Jul 12 2013ATREYA, VIVEK LAKSHMINARAYANAAVAYA IncASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0309390871 pdf
Jan 24 2017VPNET TECHNOLOGIES, INC CITIBANK, N A , AS ADMINISTRATIVE AGENTSECURITY INTEREST SEE DOCUMENT FOR DETAILS 0415760001 pdf
Jan 24 2017Octel Communications CorporationCITIBANK, N A , AS ADMINISTRATIVE AGENTSECURITY INTEREST SEE DOCUMENT FOR DETAILS 0415760001 pdf
Jan 24 2017AVAYA INTEGRATED CABINET SOLUTIONS INC CITIBANK, N A , AS ADMINISTRATIVE AGENTSECURITY INTEREST SEE DOCUMENT FOR DETAILS 0415760001 pdf
Jan 24 2017AVAYA IncCITIBANK, N A , AS ADMINISTRATIVE AGENTSECURITY INTEREST SEE DOCUMENT FOR DETAILS 0415760001 pdf
Jul 14 2017Extreme Networks, IncSilicon Valley BankSECOND AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT0432000614 pdf
Jul 14 2017AVAYA IncExtreme Networks, IncASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0435690047 pdf
Jul 14 2017Avaya Communication Israel LtdExtreme Networks, IncASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0435690047 pdf
Jul 14 2017AVAYA Holdings LimitedExtreme Networks, IncASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0435690047 pdf
Oct 27 2017Extreme Networks, IncSilicon Valley BankTHIRD AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT0446390300 pdf
Nov 28 2017CITIBANK, N A VPNET TECHNOLOGIES, INC BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL FRAME 041576 00010448930531 pdf
Nov 28 2017CITIBANK, N A OCTEL COMMUNICATIONS LLC FORMERLY KNOWN AS OCTEL COMMUNICATIONS CORPORATION BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL FRAME 041576 00010448930531 pdf
Nov 28 2017CITIBANK, N A AVAYA INTEGRATED CABINET SOLUTIONS INC BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL FRAME 041576 00010448930531 pdf
Nov 28 2017CITIBANK, N A AVAYA IncBANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL FRAME 041576 00010448930531 pdf
May 01 2018Extreme Networks, IncBANK OF MONTREALSECURITY INTEREST SEE DOCUMENT FOR DETAILS 0460500546 pdf
May 01 2018Silicon Valley BankExtreme Networks, IncRELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS 0460510775 pdf
Aug 18 2023Extreme Networks, IncBANK OF MONTREALAMENDED SECURITY AGREEMENT0647820971 pdf
Aug 18 2023AEROHIVE NETWORKS, INC BANK OF MONTREALAMENDED SECURITY AGREEMENT0647820971 pdf
Date Maintenance Fee Events
Apr 30 2021M1551: Payment of Maintenance Fee, 4th Year, Large Entity.


Date Maintenance Schedule
Oct 31 20204 years fee payment window open
May 01 20216 months grace period start (w surcharge)
Oct 31 2021patent expiry (for year 4)
Oct 31 20232 years to revive unintentionally abandoned end. (for year 4)
Oct 31 20248 years fee payment window open
May 01 20256 months grace period start (w surcharge)
Oct 31 2025patent expiry (for year 8)
Oct 31 20272 years to revive unintentionally abandoned end. (for year 8)
Oct 31 202812 years fee payment window open
May 01 20296 months grace period start (w surcharge)
Oct 31 2029patent expiry (for year 12)
Oct 31 20312 years to revive unintentionally abandoned end. (for year 12)