1 package org.opendaylight.vpnservice.mdsalutil.internal;
5 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
6 import org.opendaylight.controller.sal.binding.api.BindingAwareConsumer;
7 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext;
8 import org.opendaylight.vpnservice.mdsalutil.ActionInfo;
9 import org.opendaylight.vpnservice.mdsalutil.FlowEntity;
10 import org.opendaylight.vpnservice.mdsalutil.GroupEntity;
11 import org.opendaylight.vpnservice.mdsalutil.interfaces.IMdsalApiManager;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService;
13 import org.slf4j.Logger;
14 import org.slf4j.LoggerFactory;
16 public class MDSALUtilProvider implements BindingAwareConsumer, IMdsalApiManager, AutoCloseable {
18 private static final Logger s_logger = LoggerFactory.getLogger(MDSALUtilProvider.class);
19 private MDSALManager mdSalMgr;
22 public void onSessionInitialized(ConsumerContext session) {
24 s_logger.info( " Session Initiated for MD SAL Util Provider") ;
27 final DataBroker dataBroker;
28 final PacketProcessingService packetProcessingService;
29 dataBroker = session.getSALService(DataBroker.class);
30 // TODO - Verify this.
31 packetProcessingService = session.getRpcService(PacketProcessingService.class);
32 mdSalMgr = new MDSALManager( dataBroker, packetProcessingService) ;
33 }catch( Exception e) {
34 s_logger.error( "Error initializing MD SAL Util Services " + e );
40 public void close() throws Exception {
42 s_logger.info("MDSAL Manager Closed");
47 public void installFlow(FlowEntity flowEntity) {
48 mdSalMgr.installFlow(flowEntity);
52 public void removeFlow(FlowEntity flowEntity) {
53 mdSalMgr.removeFlow(flowEntity);
57 public void installGroup(GroupEntity groupEntity) {
58 mdSalMgr.installGroup(groupEntity);
63 public void modifyGroup(GroupEntity groupEntity) {
64 mdSalMgr.modifyGroup(groupEntity);
69 public void removeGroup(GroupEntity groupEntity) {
70 mdSalMgr.removeGroup(groupEntity);
75 public void sendPacketOut(long lDpnId, int groupId, byte[] payload) {
76 mdSalMgr.sendPacketOut(lDpnId, groupId, payload);
81 public void sendPacketOutWithActions(long lDpnId, long groupId,
82 byte[] payload, List<ActionInfo> actionInfos) {
83 mdSalMgr.sendPacketOutWithActions(lDpnId, groupId, payload, actionInfos);
88 public void sendARPPacketOutWithActions(long dpid, byte[] payload,
89 List<ActionInfo> action_info) {
90 mdSalMgr.sendARPPacketOutWithActions(dpid, payload, action_info);