Kollivakkam Raghavan - Saratoga CA,
Venkateswara Siramdas - Sunnyvale CA,
Ramakrishna Reddy Kandula - Fremont CA,
Cisco Technology, Inc. - San Jose CA
In an embodiment, a computer apparatus comprises a network interface; a processor; a packet forwarding unit; and instructions which when executed cause storing a first executable software module in computer storage; receiving and storing, in association with the first software module, a first human-readable declaration of one or more available extension points within the first software module; receiving and storing an extension software module that implements a particular one or more of the extension points; installing and executing the first software module and the extension software module; and invoking the extension software module when the particular extension point is reached during execution of the first software module. In an embodiment, a declaration of extension points enables extending a software module while running in a host, by registering an extension matching the extension points, yet the author of the extension does not need to access any code of the extended module.