2 * Copyright (c) 2016 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.vpnservice.fcapsapp.performancecounter;
11 import org.opendaylight.vpnservice.fcapsappjmx.NumberOfOFPorts;
12 import org.opendaylight.vpnservice.fcapsappjmx.NumberOfOFSwitchCounter;
13 import org.opendaylight.vpnservice.fcapsappjmx.PacketInCounter;
14 import org.slf4j.Logger;
15 import org.slf4j.LoggerFactory;
17 import javax.management.*;
18 import java.lang.String;
19 import java.lang.management.ManagementFactory;
22 public class PMAgent {
23 private static Logger s_logger = LoggerFactory.getLogger(PMAgent.class);
24 private MBeanServer mbs = null;
25 private ObjectName switch_mbeanName = null;
26 private ObjectName port_mbeanName = null;
27 private ObjectName pktIn_mbeanName = null;
28 private static final String SWITCH_BEANNAME = "SDNC.PM:type=NumberOfOFSwitchCounter";
29 private static final String PORTS_BEANNAME = "SDNC.PM:type=NumberOfOFPortsCounter";
30 private static final String PKTIN_BEANNAME = "SDNC.PM:type=InjectedPacketInCounter";
32 private static NumberOfOFSwitchCounter switchCounterBean = new NumberOfOFSwitchCounter();
33 private static NumberOfOFPorts PortcounterBean = new NumberOfOFPorts();
34 private static PacketInCounter packetInCounter = new PacketInCounter();
37 mbs = ManagementFactory.getPlatformMBeanServer();
39 switch_mbeanName = new ObjectName(SWITCH_BEANNAME);
40 port_mbeanName = new ObjectName(PORTS_BEANNAME);
41 pktIn_mbeanName = new ObjectName(PKTIN_BEANNAME);
42 } catch (MalformedObjectNameException e) {
43 s_logger.error("ObjectName instance creation failed for BEANAME {}", e);
48 public void registerMbeanForEFS() {
50 if (!mbs.isRegistered(switch_mbeanName)) {
51 mbs.registerMBean(switchCounterBean, switch_mbeanName);
52 s_logger.info("Registered Mbean {} successfully", switch_mbeanName);
55 } catch (Exception e) {
56 s_logger.error("Registeration failed for Mbean {} :{}", switch_mbeanName, e);
60 public void registerMbeanForPorts() {
62 if (!mbs.isRegistered(port_mbeanName)) {
63 mbs.registerMBean(PortcounterBean, port_mbeanName);
64 s_logger.info("Registered Mbean {} successfully", port_mbeanName);
66 } catch (Exception e) {
67 s_logger.error("Registeration failed for Mbean {} :{}", port_mbeanName, e);
71 public void registerMbeanForPacketIn() {
73 if (!mbs.isRegistered(pktIn_mbeanName)) {
74 mbs.registerMBean(packetInCounter,pktIn_mbeanName);
75 s_logger.info("Registered Mbean {} successfully",pktIn_mbeanName );
77 } catch (Exception e) {
78 s_logger.error("Registeration failed for Mbean {} :{}",pktIn_mbeanName , e);
82 public void connectToPMAgent(Map map) {
83 switchCounterBean.updateCounter(map);
86 public void connectToPMAgentForNOOfPorts(Map map) {
87 PortcounterBean.updateCounter(map);
90 public void sendPacketInCounterUpdate(Map map){
91 packetInCounter.updateCounter(map);