Nicira, Inc.Download PDFPatent Trials and Appeals BoardDec 14, 20202019004882 (P.T.A.B. Dec. 14, 2020) Copy Citation UNITED STATES PATENT AND TRADEMARK OFFICE UNITED STATES DEPARTMENT OF COMMERCE United States Patent and Trademark Office Address: COMMISSIONER FOR PATENTS P.O. Box 1450 Alexandria, Virginia 22313-1450 www.uspto.gov APPLICATION NO. FILING DATE FIRST NAMED INVENTOR ATTORNEY DOCKET NO. CONFIRMATION NO. 15/006,072 01/25/2016 Bolt Zhang N227 (NCRA.P0370) 9600 109858 7590 12/14/2020 ADELI LLP P.O. Box 516 Pacific Palisades, CA 90272 EXAMINER DAILEY, THOMAS J ART UNIT PAPER NUMBER 2452 NOTIFICATION DATE DELIVERY MODE 12/14/2020 ELECTRONIC Please find below and/or attached an Office communication concerning this application or proceeding. The time period for reply, if any, is set in the attached communication. Notice of the Office communication was sent electronically on above-indicated "Notification Date" to the following e-mail address(es): ipadmin@vmware.com mail@adelillp.com PTOL-90A (Rev. 04/07) UNITED STATES PATENT AND TRADEMARK OFFICE ____________ BEFORE THE PATENT TRIAL AND APPEAL BOARD ____________ Ex parte BOLT ZHANG, JIANJUN SHEN, JIANWEI MA, DONGHAI HAN, RAM D. SINGH, and FRANK PAN ____________ Appeal 2019-004882 Application 15/006,072 Technology Center 2400 ____________ Before JOSEPH L. DIXON, MAHSHID D. SAADAT, and DONNA M. PRAISS, Administrative Patent Judges. SAADAT, Administrative Patent Judge. DECISION ON APPEAL Pursuant to 35 U.S.C. § 134(a), Appellant1 appeals from the Examiner’s decision to reject claims 1–22 and 25–27, which are all the claims pending in this application.2 We have jurisdiction under 35 U.S.C. § 6(b). We affirm. 1 We use the word “Appellant” to refer to “applicant” as defined in 37 C.F.R. § 1.42(a). Appellant identifies the real party in interest as VMware, Inc. and Nicira, Inc. Appeal Br. 2. 2 Claims 23 and 24 have been canceled previously. Appeal 2019-004882 Application 15/006,072 2 STATEMENT OF THE CASE Introduction Appellant’s disclosure relates to utilizing virtualization software, such as a hypervisor, to “provide a high level interface that a network administrator can utilize to send a uniform set of commands to configure a logical network and the associated devices and services without being aware of the particular network utilization software that is used by different hosts on the logical network.” See Spec. ¶¶ 4, 6. Claim 1 is illustrative of the invention and reads as follows: 1. A method of defining a virtual network across a plurality of physical hosts, at least two hosts utilizing network virtualization software provided by two different vendors, each host hosting a set of data compute nodes (DCNs) for one or more tenants, the method comprising: at an agent at a host, receiving a command from a network controller, the command comprising (i) an identification of a resource associated with a tenant logical network and used by a DCN executing on the host and (ii) an action to perform on the identified resource; at the agent, determining a network virtualization software utilized by the host; at the agent, translating the received action into a set of configuration commands compatible with the network virtualization software utilized by the host; and sending the configuration commands to a network configuration interface on the host to perform the action on the identified resource. Appeal Br. 31 (Claims Appendix). The Examiner’s Rejection Claims 1–22 and 25–27 stand rejected under 35 U.S.C. § 103(a) as unpatentable over Zhang (US 2015/0249574 A1; publ. Sept. 3, 2015), Appeal 2019-004882 Application 15/006,072 3 Gokhale (US 2015/0082300 A1; publ. Mar. 19, 2015), and Nilakantan (US 2015/0195129 A1; publ. July 9, 2015). See Final Act. 3–7. ANALYSIS INDEPENDENT CLAIMS In rejecting claim 1, the Examiner relies on Zhang as disclosing the recited method of defining a virtual network across a plurality of physical hosts including the steps of “receiving a command from a network controller,” “translating the received action into a set of configuration commands,” and “sending the configuration commands to a network configuration interface.” Final Act. 3 (citing Zhang Abstract, ¶¶ 23, 29, 36– 38). The Examiner further finds Gokhale discloses “determining a network virtualization software utilized by the host” and concludes the combination would have been obvious to one of ordinary skill in the art “in order to create a system that can work with a broader array of software.” Final Act. 4 (citing Gokhale ¶¶ 24, 25). The Examiner additionally relies on Nilakantan as disclosing “receiving a command from a network controller, the command comprising (i) an identification [of] a resource associated with a tenant logical network and used by a DCN executing on the host and (ii) an action to perform on the identified resource.” Final Act. 4 (citing Nilakantan Fig. 6 and its corresponding description). The Examiner finds the combination would have been obvious to one of ordinary skill in the art because virtualized resources can be managed “more effectively and with greater control.” Final Act. 5. Appellant contends the concepts disclosed in Zhang, Gokhale, and Nilakantan are not the same as the instant claims that “relate to an agent on the host, which hosts a set of DCNs for one or more tenants, that receives Appeal 2019-004882 Application 15/006,072 4 commands from a network controller and translates them for the network virtualization software utilized by the host.” Appeal Br. 13. Appellant argues the applied references are unrelated to the above-mentioned aspects of the claims in that Zhang relates to translating commands between applications controlled by application developers and physical controllers that manage separate physical nodes hosting virtual nodes of a virtual network. Gokhale relates to enabling communication between an application on a virtual server and underlying hardware that is not virtualized on the server. Nilakantan is silent regarding an agent translating commands from a network controller. Id. Appellant’s specific arguments are addressed below. First Argument Appellant argues the cited references fail to teach or suggest the recited “at an agent on a host, (1) receiving a command from a network controller that includes an action and (2) translating the received action into a set of configuration commands compatible with the network virtualization software utilized by the host.” Appeal Br. 13. According to Appellant, the cited portions of Zhang in the Abstract, Figures 1 and 4, and paragraphs 23, 29, and 36–38 “describe a controller receiving a request from an application, parsing the request into objects that are recognizable by an internal API of the controller, and, according to the internal objects, transmitting commands to manage a virtual network implemented at a set of separate physical nodes.” Appeal Br. 13–14. In particular, Appellant argues Zhang’s physical network controller (PNC) performs commands from the virtual network controller (VNC) on the virtual network or translates “requests from the applications at the PNC instead of at the VNC,” but fails to describe “an agent on a host receiving a command from a network controller and Appeal 2019-004882 Application 15/006,072 5 translating an action of the command to be compatible with the network virtualization software utilized by the host.” Appeal Br. 14 (citing Zhang ¶¶ 26–29, 49). Appellant also argues that Gokhale and Nilakantan “are also silent regarding an agent on a host translating an action received from a network controller into configuration commands compatible with a network virtualization software utilized by the host.” Id. In response, the Examiner refers to Zhang’s paragraph 36 as disclosing that “network controller passes commands to a parser 428 (‘an agent at a host’),” which “may be a component of the VNC” and allowing the VNC pass commands to the parser or the agent at the host. Ans. 3–4 (citing Zhang Fig. 4, ¶ 36). The Examiner explains that the broadest reasonable interpretation of the claim term “an agent at a host” does not “limit[s] the agent from not being part of the network controller, i.e. Zhang’s VNC, because it can still pass commands internally (especially considering these elements are software).” Ans. 4. We agree with the Examiner’s findings and conclusion. Contrary to Appellant’s argument that “Zhang is silent regarding a single host on which both the VNC parser and virtual nodes execute” (Reply Br. 2), the claims are not so limited. First, nothing in the claim precludes a host having a controller and an agent present in one component, because the claim describes the host and the agent based on their recited functions. Second, the broadest reasonable interpretation of the claim does not require a single host, but allows for the host to comprise a distributed system. Third, Zhang’s paragraph 36 describes the communication from application 410 to network controller 420, which may be implemented as VNC 240 (in Figure 2) or controller 320 (in Figure 3) that passes commands to parser 428 via execution module 426. Zhang ¶ 35. Parser 428 (equated with the recited Appeal 2019-004882 Application 15/006,072 6 agent at a host) translates the received commands into VNC objects that are understandable and compatible by the internal VNC. Zhang ¶ 36. Therefore, Zhang discloses the disputed limitations and their corresponding functions. Second Argument Appellant contends that adding Gokhale to Zhang does not teach or suggest the recited receiving a command including an action, determining a network virtualization software utilized by the host, and translating the received action into a set of commands compatible with the network virtualization software. Appeal Br. 15–16. In addition to the arguments raised against Zhang, as discussed above, Appellant asserts Gokhale was relied on as disclosing “a module in a guest operating system receiving a request from an application also in the guest operating system and determining the virtual server (e.g., hypervisor) used by the host on which the guest operating system executes.” Appeal Br. 16–17 (citing Gokhale Figs. 2–3, 6, Abstract, ¶¶ 6, 7, 20–25). Appellant specifically argues “a virtual server hosting a guest operating system (as described in Gokhale) is not a controller with a parser and internal API (as described in Zhang), and does not reasonably correspond to such a controller.” Appeal Br. 17. The Examiner responds by stating that the rejection is based on the combination of the references such that the features of Gokhale does not need to be bodily incorporated into the structure disclosed by Zhang. Ans. 5 (citing In re Keller, 642 F.2d 413 (CCPA 1981); In re Merck & Co., Inc., 800 F.2d 1091 (Fed. Cir. 1986)). The Examiner further explains: With regard to this particular limitation, above in reply to (1) it has been established that Zhang discloses an action received from a network controller can be translated into commands compatible with the network virtualization software. Appeal 2019-004882 Application 15/006,072 7 Zhang, with regard to this limitation, simply does not disclose determining a network virtualization software utilized by a host prior to the translation. In other words, Zhang is silent with regards to how the parser knows what codes to translate to respective objects, see [0036], but it the nonetheless accomplishes this task. Gokhale is relied upon to fill in the gaps and discloses an agent at a host, determining a network virtualization software utilized by the host ([0024]-[0025], particularly, “In one embodiment, such an interface is packaged as a software module installed on the virtual machine 202. When the software module is installed and initialized on the virtual machine 202, the software module detects the type of the underlying virtual server and loads a corresponding sub- module (e.g., a set of classes) that is implemented particularly for the virtual server,” Gokhale’s “software module” reading on “an agent on a host,” (“a host” being the physical host of Gokhale’s virtual server; that is, the module is on the virtual machine which is on the virtual server on a physical host) and the software of virtual server reading on at least part of “virtualization software” of which the type is explicitly detected. Ans. 5–6 (emphasis added). The Examiner also determines that, based on the broadest reasonable interpretation of the claim terms discussed above, the proposed combination would have been obvious “because none of these elements necessarily are separate entities but actually layered within each other since they are not physical elements but rather software constructs and combining them to one of ordinary skill in the art would be routine.” Ans. 6. We agree with the Examiner’s findings regarding the teachings of Gokhale and how combining those teachings with Zhang teaches or suggests the recited “at the agent, determining a network virtualization software utilized by the host.” As correctly found by the Examiner, Gokhale’s disclosure addresses the problem of using different virtualization software vendors and determining the necessary changes to the software source code Appeal 2019-004882 Application 15/006,072 8 that makes it compatible with the received commands. See Gokhale ¶ 24. By detecting the underlying virtual server and the software used by it, Gokhale’s software module provides a compatible sub-module that allows the used application communicate with the underlying virtual server or the network virtualization software. See Gokhale ¶ 25. We also agree with the Examiner that the combination would have enabled Zhang to determine the host’s network virtualization software that the action in the received command needs to be translated or converted to, as suggested by Gokhale. Third Argument Appellant contends Zhang lacks any disclosure related to the recited “at an agent on a host, translating an action received from a network controller” wherein “each host hosts a set of DCNs for one or more tenants.” Appeal Br. 18. Appellant points to Figures 1 and 2 of Zhang and asserts that the disclosed “physical network nodes and the physical network controller are separate devices” and “not a DCN hosted for one or more tenants (i.e., of the virtual network).” Appeal Br. 19. The Examiner responds by reiterating Zhang’s disclosure in Figure 1 and paragraph 25 with respect to physical network nodes or hosts hosting different virtual nodes (DCNs) on two different virtual networks 110 and 120, which is consistent with Appellant’s disclosure in paragraph 221 of the instant Specification. Ans. 7. Additionally, the Examiner explains “virtual machines are merely one example of data compute nodes (DCNs) or data compute end nodes, also referred to as addressable nodes” and “DCNs may include non-virtualized physical hosts, virtual machines, containers that run on top of a host operating system without the need for a hypervisor or separate operating system, and hypervisor kernel network interface modules.” Id. (citing Spec. ¶ 221). Appeal 2019-004882 Application 15/006,072 9 We agree with the Examiner’s analysis of Zhang and observe that the recited “host hosting a set of data compute nodes (DCNs) for one or more tenants” appears only in the claim preamble without further limiting the recited functions of the agent at a host, such as receiving a command (including an action), determining a network virtualization software, translating the received action, and sending the configuration commands to an interface. That is, the Examiner’s mapping of the claim limitations to the cited portions of Zhang based on the recited functions is reasonable and supported by evidence, as specified in the Final Action and the Answer. There is no ipsissimis verbis test for determining whether a reference discloses a claim element, i.e., identity of terminology is not required. In re Bond, 910 F.2d 831, 832 (Fed. Cir. 1990). Fourth Argument Appellant contends the Examiner’s reliance on Nilakantan as disclosing the recited “at an agent on a host, receiving and translating a command from a network controller that includes (1) an identification of a resource associated with a tenant logical network and used by a DCN executing on the host and (2) an action to perform on the identified resource” is in error. Appeal Br. 20. According to Appellant, although “Nilakantan describes a network controller that configures network elements (e.g., a virtual switch) on the hypervisor of a host computer,” a generic hypervisor cannot be construed as an agent for receiving commands. Id. (citing Nilakantan ¶ 31). Appellant also asserts “[t]he hypervisor in Nilakantan is a virtual environment for hosting software constructs, such as a virtual machine or agents,” but is “unrelated to agents on hosts for receiving commands.” Id. Appeal 2019-004882 Application 15/006,072 10 The Examiner responds by referring to the decisions in In re Keller and In re Merck and further explains that Zhang and Gokhale are relied on as disclosing that a received action is translated by an agent into commands compatible with the determined network virtualization software on the host. Ans. 8. The Examiner further explains Nilakantan is relied upon to fill in the gaps and discloses at an agent at a host, receiving a command at an agent at a host, receiving a command from a network controller, the command comprising (i) an identification a resource associated with a tenant logical network and used by a DCN executing on the host and (ii) an action to perform on the identified resource (Fig. 2, label 202 (“network controller”), Fig. 6 labels 206 (“host”), 500 (“DCN”), 502 (“agent”), 504 (“resource”) and [0031], particularly, “The method 700 proceeds to block 708 where the controller creates virtual ports in the virtual switches corresponding to each VLAN to which the persona requires access. At this block, the controller 202 may also create port groups in the virtual switches to define the attributes of the virtual ports”). Ans. 8–9. The Examiner also states that combining the references would have been obvious and within the knowledge of ordinary skill in the art “without the need to add any of the functionality of Nilakantan’s hypervisor to Zhang’s parser aside from receiving a certain type of command, i.e. a command identifying a virtual switch and an action for that switch.” Ans. 9. We agree with the Examiner’s finding that the combination of Nilakantan’s hypervisor as the recited agent that receives a command from a network controller (Final Act. 4–5; Ans. 8–9 (citing Nilakantan Figs. 2, 6, ¶ 31)) and Gokhale’s agent determining the software utilized by the host (Final Act. 4; Ans. 5–6 (citing Gokhale ¶¶ 24, 25)) with Zhang’s virtual network (Final Act. 3–4; Ans. 3–4 (citing Zhang ¶¶ 23, 36)) teaches or suggests the recited method of claim 1. “The combination of familiar Appeal 2019-004882 Application 15/006,072 11 elements according to known methods is likely to be obvious when it does no more than yield predictable results.” KSR Int'l Co. v. Teleflex Inc., 550 U.S. 398, 416 (2007). Additionally, we are not persuaded that combining the respective familiar elements of the cited references in the manner proffered by the Examiner would have been “uniquely challenging or difficult for one of ordinary skill in the art” at the time of Appellant’s invention. Leapfrog Enters., Inc. v. Fisher-Price, Inc., 485 F.3d 1157, 1162 (Fed. Cir. 2007) (citing KSR, 550 U.S. at 418). Conclusion In view of our analysis above, we are unpersuaded of Examiner error in rejecting claim 1, as well as independent claims 9 and 17 which are argued with claim 1. DEPENDENT CLAIMS Appellant contends patentability of dependent claims based on the same arguments presented for the independent claims and add the following additional arguments. Claims 2, 10, and 18 Appellant contends the applied references do not “discuss a host, hosting DCNs for one or more tenants, receiving a command from a network controller that is not compatible with the network virtualization software used by the host.” Appeal Br. 22. Appellant restates the arguments raised above (see restated arguments above in section under “Third Argument”) and asserts that “the network controllers of Zhang are explicitly compatible with the network virtualization software used by the physical nodes hosting the virtual nodes of Zhang.” Appeal Br. 22–23. According to Appellant, the other applied prior art references are also silent with respect to this feature. Appeal Br. 23. Appeal 2019-004882 Application 15/006,072 12 In response, the Examiner explains “[b]y the fact that Zhang needs to translate the commands in [0036], it is clear that the command from a network controller is not compatible with the network virtualization software used by the host and therefore the bounds of the claim are at[sic] suggested by at least Zhang” and adds that “Gokhale discloses ensuring commands are compatible with different virtualization software types.” Ans. 10. We agree with the Examiner’s findings and conclusion and further rely on our analysis of Zhang with respect to translating or converting the VNDL codes to make them understandable by a VNC internal API. See Zhang ¶ 36. Claims 3, 11, and 19 Appellant contends the applied references do not “discuss an agent on a host and a network controller that communicate through an API that is independent of the network virtualization software used by the host.” Appeal Br. 23. Appellant further argues “[t]he API of Zhang, however, is provided by the network controller and varies based on the network controller” and the Examiner’s mapping of the network controller of Zhang as the network virtualization software shows that “the API of Zhang is not independent of the identified network virtualization software at all, but is instead explicitly dependent on and provided by the network virtualization software.” Appeal Br. 24. According to Appellant, the other applied prior art references are also silent with respect to this feature. Id. In response, the Examiner restates that Zhang discloses an agent on host. Zhang further discloses the agent and virtual network controller communicate through an application programming interface (API) that is independent of the network virtualization software used by each of the plurality of the hosts in [0036], see particularly, “During parsing, the Appeal 2019-004882 Application 15/006,072 13 VNDL codes may be translated or converted into internal objects 430, which are understandable by a VNC internal API 432 in the network controller 420.” The VNC internal API is independent of “the network virtualization software” given the breadth of the term “network virtualization software” and any software the VNC interfaces with outside of the bounds of the VNC would read on it, e.g. the software constructs running the virtual nodes and creating the virtual network pictured in Fig. 1 of Zhang. Ans. 11. We agree with the Examiner’s findings and analysis. Additionally, we disagree with Appellant’s assertion that the Examiner has mapped the network controller of Zhang as the network virtualization software and observe that the Examiner has properly identified network controller 420 of Zhang as including an agent that receives requests or commands that are translated or converted by parser 428. See Ans. 3–4 (citing Zhang Fig. 4, ¶ 36); see also our analysis above in section under “First Argument”). Claims 7 and 15 Appellant contends the applied references do not teach or suggest the following: [A]n agent on a host, which hosts a set of virtual machines or containers on top of an operating system for one or more tenants, receiving a command from a network controller and translating an action of the command into a set of configuration commands compatible with the network virtualization software utilized by the host. Appeal Br. 25. Appellant also argues Zhang is silent regrading a virtual machine or container and merely discloses physical network controllers and physical network nodes using controller modules and web servers for performing controller services for a virtual network, which “is not a virtual machine or container hosted for one or more tenants.” Appeal Br. 25–26. Appeal 2019-004882 Application 15/006,072 14 With respect to Gokhale, Appellant asserts the disclosed application in paragraphs 20–25 is not a network controller. Appeal Br. 26. In response, the Examiner reiterates that Zhang discloses a DCN on a host, whereas “Nilakantan discloses a DCN is one of a virtual machine and a container that runs on top of an operating system of the host (Zhang, [0036] and Gokhale, [0025].” Ans. 11. Additionally, the Examiner explains that Zhang’s virtual nodes meet the recited “DCN being a container that runs on top of an operating system of the host” where the “physical network nodes 111–125 in Fig. 1 run operating system above the virtual nodes in order to actually have a functioning system.” Ans. 12. We are unpersuaded by Appellant’s arguments and instead agree with the Examiner’s findings and conclusions. As stated by the Examiner, although some of the nodes are in the physical network, Zhang arranges the virtual nodes 111–125 as a virtual network which run on top of an operating system of the host to expand networking functionalities. See Zhang Fig.1, ¶¶ 23–25; see also Spec. ¶ 221. As such, the proposed combination teaches or suggests the recited DCN being at least a virtual machine running on top of the operating system of the host or the physical layer of the network. Claims 8 and 16 Appellant contends the applied references do not “discuss first and second hosts, hosting DCNs for a tenant and with different network virtualization software, receiving a command from a network controller and translating the command into different sets of configuration commands for the different network virtualization software.” Appeal Br. 27. Appellant specifically argues that Zhang is silent regarding the physical nodes, Gokhale is silent regarding network controllers, and Nilakantan is silent regarding different network virtualization software on different hosts. Id. Appeal 2019-004882 Application 15/006,072 15 In response, the Examiner refers to the findings and explanations provided for the arguments addressed above and adds the following: That is, Zhang discloses first and second hosts, hosting DCNs for a tenant receiving a command from a network controller and translating the command into different sets of configuration commands for the network virtualization software (see Fig. 1, [0025], and [0036]) and Gokhale discloses determining between different network virtualization software ([0023]- [0025]) and thus the combination of Zhang, Gokhale, and Nilakantan suggests the argued language. Ans. 12. We are unpersuaded by Appellant’s arguments. Additionally, we agree with the Examiner findings in the Final Action and the Examiner’s mapping of the claimed features to the teachings of the applied references and adopt them as our own. See Final Act. 6; Ans. 12. We also refer to our analysis above regarding Zhang’s hosting virtual nodes of the virtual network, Gokhale’s determining the network virtualization software used by the host, and Nilakantan’s network virtualization software on different hosts to establish absence of error in the Examiner’s rejection. Claim 27 Appellant contends the applied references do not discuss that the claimed “action is a monitor command and, at the claimed agent, receiving a first notification from the claimed network configuration interface, generating a second notification in a format recognizable by the claimed network controller, and sending the notification to the network controller.” Appeal Br. 28. The Examiner reiterates the previously discussed findings with respect to “monitor command,” “a first notification,” generating a second notification recognizable by the “network controller,” and “sending the Appeal 2019-004882 Application 15/006,072 16 notification” and determines that Nilakantan’s paragraph 18 discloses a status notification for the identified source. Final Act. 7. Additionally, the Examiner finds the following: The hosts 206 and 208 are communicatively coupled to the controller 202 via a dedicated system control network through which the controller may issue commands, monitor, and deploy personas to the hosts” and thus notifications would be essential in any sort of monitoring scenario including event and status notifications and they would have to pass through the hypervisor (“agent” see in reply to (4)) given the outlined structure (see Figs. 2 and 4 of Nilakantan) and the example real world hypervisors (e.g. VMWare ESX, Microsoft Hyper-V, and Xen) as stated in [0018]. Ans. 13. We agree with the Examiner’s findings in the Final Action and the Answer, including the mapping of the claimed features to the teachings of the applied references and adopt them as our own. In view of these findings and our analysis above regarding the teachings of the references, we are unpersuaded of error in the Examiner’s rejection of claim 27. Remaining Claims No separate arguments are presented for the remaining dependent claims, therefore we sustain their rejections for the reasons stated with respect to independent claims 1, 9, and 17. DECISION SUMMARY In summary: Claims Rejected 35 U.S.C. § Reference(s)/Basis Affirmed Reversed 1–22, 25– 27 103 Zhang, Gokhale, Nilakantan 1–22, 25– 27 Appeal 2019-004882 Application 15/006,072 17 FINALITY AND RESPONSE No time period for taking any subsequent action in connection with this appeal may be extended under 37 C.F.R. § 1.136(a)(1)(iv). See 37 C.F.R. § 41.50(f). AFFIRMED Copy with citationCopy as parenthetical citation