cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
2509
Views
1
Helpful
2
Replies

Supporting a noLink network element with BBSM

c.alfaro
Level 1
Level 1

We are committed to support the Tut Systems MDU chassis with Cisco’s BBSM 5.2 and 5.3. The Tut chassis do not have link status support on the line cards in use, so we chose to determine whether the client is still physically connected to the network element by looking if the MAC address is still known by the switch at the port of interest.

In order for this we tried to override the CEtherStack::IsPortConnected Method, but found that we never get to our own DLL. We have overridden other methods for determining the location of client computers and populate the port map table in the database, having no trouble with them; but can not get the client status to be correctly detected.

Are we using the wrong method? Should we override a different method of the CEtherStack class?

I hope somebody have experience with this and can help us.

Regards,

Carlos E. Alfaro

2 Replies 2

b.hsu
Level 5
Level 5

This doucment talks about each method in CEtherstack class. Please have a look at it and choose appropriate to method.

http://www.cisco.com/univercd/cc/td/doc/product/aggr/bbsm/bbsm52/sdk/sdk52_07.htm

b.hsu,

Thank you for your answer.

We precisely started from there, the Cisco BBSM SDK Developer Guide

Software Release 5.2 and specifically the chapter 7 Creating Network Element Modules you refer to.

We are having trouble to override the CEtherStack::IsPortConnected Method, although we have successfully overridden the CEtherStack::FindPortFromMac Method.

We have tried to log a message to the trace utility from the entry point of our methods and we are not getting to our own IsPortConnected Method. We keep geeting the following error message on the BBSM trace utility:

GenericSwitch\EtherStack.cpp 1408 GetOperStatusFromPort(), MIBPort 1: Attempt to get dot1dBasePortIfIndex 17.1.4.1.2.1 failed

So we think that the CEtherStack::IsPortConnected Method is still been executed instead of our own.

For our FindPortFromMac Method we get our messages on the trace, that looks like this:

tut.cpp 54 entrada del FindPortFromMac

Part of our code follows.

----------------------------------------------------

// tut.cpp: implementation of the Ctut class.

//

//////////////////////////////////////////////////////////////////////

... other code ...

bool Ctut::FindPortFromMac(CString &csPortId, const MACADDR &MACaddr)

{

CString csDebug;

csDebug.Format ("entrada del FindPortFromMac");

WRITE_DEBUG_STRING (csDebug);

... other code ...

bool Ctut::IsPortConnected(const CString &csPortId, const CString &csClientIP)

{

CString csMessage;

csMessage.Format("entrada del IsPortConnected");

WRITE_DEBUG_STRING(csMessage);

... other code ...

... end of tut.cpp

// tut.h: interface for the Ctut class.

//

//////////////////////////////////////////////////////////////////////

... other code ...

protected:

virtual bool FindPortFromMac(CString& csPortId, const MACADDR& MACaddr);

virtual bool IsPortConnected(const CString& csPortId, const CString& csClientIP);

... other code ...

... end of tut.h

----------------------------------------------------

End of our partial code.

¿Have any idea why the IsPortConnected Method is not been overridden?

¿Is there any successful implementation that overrides the CEtherStack::IsPortConnected Method?

Hope somebody can give us a clue.

Carlos E. Alfaro