new id names

This commit is contained in:
j3d1 2015-11-03 22:08:11 +01:00
parent 73df3e0528
commit 96a10549d7
4 changed files with 53 additions and 35 deletions

View file

@ -16,19 +16,28 @@ static table rcv_lookup = { { 1, table::STRING, "type" }, //string
{ 7, table::STRING, "firmware_version" }, { 7, table::STRING, "firmware_version" },
{ 8, table::STRING, "hardware_version" }, { 8, table::STRING, "hardware_version" },
{ 9, table::DEC, "dhcp" }, //bool byte { 9, table::DEC, "dhcp" }, //bool byte
{ 10, table::DEC, "ports???" }, //byte, maybe number of ports { 10, table::DEC, "ports" }, //byte, maybe number of ports
{ 4352, table::HEX, "igmp_snooping" }, //switching { 4352, table::HEX, "igmp_snooping" }, //switching
{ 4096, table::HEX, "port_settings" }, //switching { 4096, table::HEX, "port_settings" }, //per port
{ 4608, table::HEX, "port_trunk" }, //byte[5] last byte bitmask?? { 4608, table::HEX, "port_trunk" }, //byte[5] last byte bitmask??
{ 8192, table::HEX, "mtu_vlan" }, //byte[2] first byte bool,second byte port id { 8192, table::HEX, "mtu_vlan" }, //byte[2] first byte bool,second byte port id
{ 8704, table::HEX, "802.1q vlan enabled" }, //bool byte { 8448, table::HEX, "port_vlan_1" }, //???
{ 8705, table::HEX, "802.1q vlan" }, //one set per vlan { 8450, table::HEX, "port_vlan_2" }, //???
{ 8706, table::HEX, "802.1q vlan pvid" }, //???? { 8704, table::HEX, "vlan enabled" }, //bool byte
{ 12288, table::HEX, "QoS Basic 1" }, //bool = QoS Mod { 8705, table::HEX, "vlan" }, //one set per vlan
{ 12289, table::HEX, "QoS Basic 2" }, //QoS { 8706, table::HEX, "vlan_pvid" }, //per port
{ 8707, table::HEX, "vlan ?????" }, //????
{ 12288, table::HEX, "qos_basic_1" }, //bool = QoS Mod
{ 12289, table::HEX, "qos_basic_2" }, //per port
{ 12544, table::HEX, "bandwidth_control_1" }, //per port
{ 12545, table::HEX, "bandwidth_control_2" }, //per port
{ 12800, table::HEX, "storm_control" }, //per port
{ 16640, table::HEX, "port_mirror" }, //byte[10] second byte port id?? { 16640, table::HEX, "port_mirror" }, //byte[10] second byte port id??
{ 16384, table::HEX, "port_statistics" }, //??? { 16384, table::HEX, "port_statistics" }, //per port
{ 16896, table::HEX, "cable_test" }, //per port
{ 17152, table::HEX, "loop_prevention" }, //bool byte { 17152, table::HEX, "loop_prevention" }, //bool byte
//{0000," "}, //{0000," "},
}; };
@ -37,27 +46,37 @@ static table snd_lookup = {
// TODO find out if id is unique in response // TODO find out if id is unique in response
{ 2, table::HEX, "system_info" }, //page sysinfo { 2, table::HEX, "system_info" }, //page sysinfo
{ 9, table::HEX, "ip_config" }, //page sysinfo { 9, table::HEX, "ip_config" }, //page sysinfo
{ 10, table::HEX, "ports???" }, //after login { 10, table::HEX, "ports" }, //after login
{ 512, table::STRING, "login_user" }, //string { 512, table::STRING, "login_user" }, //string
{ 513, table::STRING, "new_user" }, //string { 513, table::STRING, "new_user" }, //string
{ 514, table::STRING, "login_password" }, //string { 514, table::STRING, "login_password" }, //string
{ 515, table::STRING, "new_passwoord" }, //string { 515, table::STRING, "new_passwoord" }, //string
{ 2200, table::HEX, "vlan" }, //vlan { 773, table::HEX, "reboot" }, //bool byte = save config
{ 1280, table::ACTION, "reset" }, //
{ 1536, table::ACTION, "flash" }, //update firmware
{ 2200, table::HEX, "vlan" }, //vlan
{ 2304, table::ACTION, "save" }, //save
{ 2305, table::ACTION, "ping" }, //sent before SET ???
{ 2305, table::HEX, "??? - 2305" }, //sent before login and before change hostname
{ 4352, table::HEX, "igmp_snooping" }, //switching { 4352, table::HEX, "igmp_snooping" }, //switching
{ 4096, table::HEX, "port_settings" }, //switching { 4096, table::HEX, "port_settings" }, //switching
{ 4608, table::HEX, "port_trunk" }, //byte[5] last byte bitmask?? { 4608, table::HEX, "port_trunk" }, //byte[5] last byte bitmask??
{ 8192, table::HEX, "mtu_vlan" }, //byte[2] first byte bool, second byte port id { 8192, table::HEX, "mtu_vlan" }, //byte[2] first byte bool, second byte port id
{ 8449, table::HEX, "port_vlan1" }, //??? { 8449, table::HEX, "port_vlan ???" }, //???
{ 8448, table::HEX, "port_vlan2" }, //open page { 8448, table::HEX, "port_vlan" }, //open page
{ 8704, table::HEX, "802.1q vlan enabled" }, //??? get vlan / set status { 8704, table::HEX, "vlan_enabled" }, //??? get vlan / set status
{ 8705, table::HEX, "802.1q vlan" }, //??? { 8705, table::HEX, "vlan" }, // per vlan
{ 8706, table::HEX, "802.1q vlan pvid" }, //???? { 8706, table::HEX, "vlan_pvid" }, //per port
{ 12288, table::HEX, "qos_basic_enabled" }, //bool = QoS Mod
{ 12289, table::HEX, "qos_basic" }, //per port
{ 12544, table::HEX, "bandwidth_control_1" }, //per port
{ 12545, table::HEX, "bandwidth_control_2" }, //per port
{ 12800, table::HEX, "storm_control" }, //???
{ 12288, table::HEX, "QoS Basic 1" }, //bool = QoS Mod
{ 12289, table::HEX, "QoS Basic 2" }, //QoS
{ 16640, table::HEX, "port_mirror" }, //byte[10] second byte port id?? { 16640, table::HEX, "port_mirror" }, //byte[10] second byte port id??
{ 16384, table::HEX, "port_statistics" }, //??? { 16384, table::HEX, "port_statistics" }, //???
{ 17152, table::HEX, "loop_prevention" }, //bool byte { 17152, table::HEX, "loop_prevention" }, //bool byte

View file

@ -143,12 +143,10 @@ std::string Packet::opCodeToString() {
return "GET"; return "GET";
case SET: case SET:
return "SET"; return "SET";
case LOGIN: case CONFIRM:
return "LOGIN"; return "CONFIRM";
case RETURN: case RETURN:
return "RETURN"; return "RETURN";
case READ5:
return "READ5";
default: default:
return "NONE"; return "NONE";
} }

View file

@ -16,7 +16,7 @@
class Packet { class Packet {
public: public:
enum OpCode { enum OpCode {
DISCOVERY, GET, SET, LOGIN, RETURN, READ5 DISCOVERY, GET, RETURN, SET, CONFIRM
}; };
Packet(OpCode); Packet(OpCode);
void encode(bytes&); void encode(bytes&);

View file

@ -36,29 +36,30 @@ int printPacket(Packet p) {
auto lookup = auto lookup =
(options.flags & FLAG_REVERSE) ? snd_lookup : rcv_lookup; (options.flags & FLAG_REVERSE) ? snd_lookup : rcv_lookup;
if (lookup.exists(d.type)) { if (lookup.exists(d.type)) {
const table::set *s = lookup.get(d.type); const table::set *s = lookup.get(d.type);
if (d.len > 0) { if (d.len > 0) {
switch (s->format) { switch (s->format) {
case table::STRING: case table::STRING:
std::cout << "+\t" << s->name << " = " std::cout << "+\t" << s->name << " = " << &d.value[0]
<< &d.value[0] << std::dec << "\n"; << "\n";
break; break;
case table::HEX: case table::HEX:
std::cout << "+\t" << s->name << " = " std::cout << "+\t" << s->name << " = " << d.value
<< std::hex << d.value << std::dec << "\n"; << "\n";
break; break;
case table::DEC: case table::ACTION:
std::cout << "+\t" << s->name << " = " std::cout << "Error:" << s->name
<< std::dec << d.value << std::dec << "\n"; << " is marked as 'action' but carries payload."
<< d.value << "\n";
break; break;
default: default:
std::cout << "+\t" << s->name << " = " std::cout << "+\t" << s->name << " = " << d.value
<< std::hex << d.value << std::dec << "\n"; << "\n";
} }
} else { //empty } else { //empty
std::cout << std::dec << ">\t" << s->name << "\n"; std::cout << std::dec << ">\t" << s->name << "\n";
} }
} else {//unknown id } else { //unknown id
if (d.len > 0) { if (d.len > 0) {
std::cout << "##\t" << d.type << ":\n\t"; std::cout << "##\t" << d.type << ":\n\t";
std::cout << std::hex << d.value << std::dec << "\n"; std::cout << std::hex << d.value << std::dec << "\n";
@ -176,7 +177,7 @@ int Program::getProperty() {
datasets d =a.getPayload(); datasets d =a.getPayload();
Switch sw = Switch(); Switch sw = Switch();
sw.parse(d); sw.parse(d);
Packet p = Packet(Packet::LOGIN); Packet p = Packet(Packet::SET);
p.setSwitchMac(a.getSwitchMac()); p.setSwitchMac(a.getSwitchMac());
p.setHostMac(host.getMac()); p.setHostMac(host.getMac());
datasets t = { {snd_lookup["login_user"], 0, {}}}; datasets t = { {snd_lookup["login_user"], 0, {}}};