a48a9355ef
This adds a vlan capability field to etherswitch_info structure and some definitions of ports flags. It adds the support to global config parameters which right now is used only to switch between the vlan modes, but it is intended to be extended to support the setup of others parameters (STP, mirror, etc.). Submitted by: Luiz Otavio O Souza <loos.br@gmail.com> Reviewed by: ray
144 lines
1.8 KiB
Objective-C
144 lines
1.8 KiB
Objective-C
# $FreeBSD$
|
|
|
|
#include <sys/bus.h>
|
|
|
|
# Needed for ifreq/ifmediareq
|
|
#include <sys/socket.h>
|
|
#include <net/if.h>
|
|
|
|
#include <dev/etherswitch/etherswitch.h>
|
|
|
|
INTERFACE etherswitch;
|
|
|
|
#
|
|
# Default implementation
|
|
#
|
|
CODE {
|
|
static void
|
|
null_etherswitch_lock(device_t dev)
|
|
{
|
|
}
|
|
|
|
static void
|
|
null_etherswitch_unlock(device_t dev)
|
|
{
|
|
}
|
|
|
|
static int
|
|
null_etherswitch_getconf(device_t dev, etherswitch_conf_t *conf)
|
|
{
|
|
return (0);
|
|
}
|
|
|
|
static int
|
|
null_etherswitch_setconf(device_t dev, etherswitch_conf_t *conf)
|
|
{
|
|
return (0);
|
|
}
|
|
};
|
|
|
|
#
|
|
# Return device info
|
|
#
|
|
METHOD etherswitch_info_t* getinfo {
|
|
device_t dev;
|
|
}
|
|
|
|
#
|
|
# Lock access to switch registers
|
|
#
|
|
METHOD void lock {
|
|
device_t dev;
|
|
} DEFAULT null_etherswitch_lock;
|
|
|
|
#
|
|
# Unlock access to switch registers
|
|
#
|
|
METHOD void unlock {
|
|
device_t dev;
|
|
} DEFAULT null_etherswitch_unlock;
|
|
|
|
#
|
|
# Read switch register
|
|
#
|
|
METHOD int readreg {
|
|
device_t dev;
|
|
int reg;
|
|
};
|
|
|
|
#
|
|
# Write switch register
|
|
#
|
|
METHOD int writereg {
|
|
device_t dev;
|
|
int reg;
|
|
int value;
|
|
};
|
|
|
|
#
|
|
# Read PHY register
|
|
#
|
|
METHOD int readphyreg {
|
|
device_t dev;
|
|
int phy;
|
|
int reg;
|
|
};
|
|
|
|
#
|
|
# Write PHY register
|
|
#
|
|
METHOD int writephyreg {
|
|
device_t dev;
|
|
int phy;
|
|
int reg;
|
|
int value;
|
|
};
|
|
|
|
#
|
|
# Get port configuration
|
|
#
|
|
METHOD int getport {
|
|
device_t dev;
|
|
etherswitch_port_t *vg;
|
|
}
|
|
|
|
#
|
|
# Set port configuration
|
|
#
|
|
METHOD int setport {
|
|
device_t dev;
|
|
etherswitch_port_t *vg;
|
|
}
|
|
|
|
#
|
|
# Get VLAN group configuration
|
|
#
|
|
METHOD int getvgroup {
|
|
device_t dev;
|
|
etherswitch_vlangroup_t *vg;
|
|
}
|
|
|
|
#
|
|
# Set VLAN group configuration
|
|
#
|
|
METHOD int setvgroup {
|
|
device_t dev;
|
|
etherswitch_vlangroup_t *vg;
|
|
}
|
|
|
|
#
|
|
# Get the Switch configuration
|
|
#
|
|
METHOD int getconf {
|
|
device_t dev;
|
|
etherswitch_conf_t *conf;
|
|
} DEFAULT null_etherswitch_getconf;
|
|
|
|
#
|
|
# Set the Switch configuration
|
|
#
|
|
METHOD int setconf {
|
|
device_t dev;
|
|
etherswitch_conf_t *conf;
|
|
} DEFAULT null_etherswitch_setconf;
|