Microsemi-LGO

Microsemi AN1256 Web Kopo ea Baetsi ba mananeo

Microsemi-AN1256-Web-Baetsi-Kopo-PRO

Selelekela

JSON (JavaScript Object Notation) ke mokhoa o bulehileng file sebopeho se sebelisang mongolo o ka baloang ke batho bakeng sa phapanyetsano ea data. Ke mokhoa o tloaelehileng oa data o sebelisetsoang puisano ea sebadi / seva sa asynchronous.
Bakeng sa tse ncha web moralo oa leqephe, sebopeho sa JSON se ka nka sebaka sa setaele sa AJAX sa mantlha. Bapisa le AJAX, ho sebelisa JSON ho etsa hore Web phethahatso e bonolo le e bonolo. Moetsi o hloka feela ho tsepamisa maikutlo web moralo oa leqephe le Web ts'ebetsong ea handler e ka tloheloa kaha mokhoa oa ho fumana JSON o se o ntse o tšehetsoa ho e 'ngoe le e 'ngoe WebLisebelisoa tsa software tsa StaX.
Tokomane ena e bolela tataiso ea baetsi ba mananeo bakeng sa moenjiniere oa software ba hlokang ho nts'etsapele Web leqepheng la ka JSON. Lintlha tsa ts'ebetso le mohlalaample eona e kenyelelitsoe likarolong tse latelang.

Phallo ea phihlello ea data ea JSON

Fetileview
Mona ke phallo ea phihlello ea data ea JSON eo khokahano ea HTTP e qalisoang ho tsoa ho moreki(sebatli). Tafole ea HTML e entsoe ka matla ho latela data e amohetsoeng ea JOSN ho tsoa lehlakoreng la seva(DUT).Microsemi-AN1256-Web-Basebelisi-Tsamaiso-SEFIG 1

Setšoantšo sa 1. Phallo ea phihlello lipakeng tsa moreki le seva

Kopo / Karabo data ea JSON
Pakete ea kopo ea JSON e ipapisitse le mokhoa oa poso oa kopo ea HTTP mme litaba li tlameha ho latela sebopeho sa MSCC JSON.

  • Kopa syntax ea JSON:{“mokhoa”:” "," params":[ ], “id:”jsonrpc”}
  • Karabo ea syntax ea JSON: {“phoso”: ,"sephetho": , "id:"jsonrpc"}

Lits'oants'o tse latelang li bonts'a litaba tsa JSON lipakeng tsa sebatli le DUT.Microsemi-AN1256-Web-Basebelisi-Tsamaiso-SEFIG 2

Setšoantšo sa 2. Sets'oants'o sa kopo ea HTTP ho tsoa ho morekiMicrosemi-AN1256-Web-Basebelisi-Tsamaiso-SEFIG 3

Setšoantšo sa 3. Setšoantšo sa karabo ea HTTP ho tsoa ho seva

Tlhaloso ea MSCC JSON
Ho fumana lintlha tse felletseng tsa JSON ho kenyeletsoa mokhoa, paramethara, tlhaloso le tse ling. Type “http:// /json_spec" bareng ea aterese ea sebatli sa hau. Ho na le mokhoa o mong oa ho fihlella ka lebitso la mokhoa oa JSON "jsonRpc.status.introspection.specific.inventory.get", e sebelisetsoa mokhoa o itseng.Microsemi-AN1256-Web-Basebelisi-Tsamaiso-SEFIG 4

Setšoantšo sa 4. Sets'oants'o sa litlhaloso tsa JSON web leqephe

Web moralo

The Web moralo ka WebSoftware ea StaX e thehiloe mohloling o bulehileng oa MooTools. Ke pokello ea lisebelisoa tsa JavaScript tse nang le laesense ea MIT. (http://mootools.net/license.txt) Sebaka sa menu le boholo ba web maqephe a thehiloe holim'a moralo. Ka bobeli AJAX le JSON algorithm li se li kopantsoe lits'ebetsong tsa eona.
Ho feta moo, WebStaX software e fana ka lisebelisoa tse ling tse molemo bakeng sa JSON web moralo oa leqephe.

  • json.js - Sebelisa bakeng sa ho fetisa / ho amohela data e matla ka syntax ea JSON.
  • dynforms.js - Sebelisa ho theha tafole ea HTML ka matla.
  • validate.js - Sebelisa bakeng sa netefatso ea foromo ea HTML.

Lilaebrari tse felletseng tsa JavaScript li fumaneha tlasa bukana ea mohloli oa sefate: webstax2\ vtss_appl\web\html\lib.

Tataiso bakeng sa JSON Web moralo oa leqephe

Karolo ena e tataisa mokhoa oa ho rala a web leqephe le thehiloeng ho lilaebrari tsa MSCC JavaScript. Re sebelisa Mirror global configured web leqephe joalo ka example mona. Puisano ea asynchronous e ipapisitse le mokhoa oa ho fihlella oa HTTP JSON mme liparamente tsohle tse hlophisitsoeng tsa lefats'e li thathamisitsoe tafoleng e le 'ngoe e matla ea HTML.
The web sebopeho sa leqephe se thathamisitsoe ka tlase mme khoutu e felletseng ea mohloli e fumaneha tlasa bukana ea mohloli oa sefate: webstax2\vtss_appl\mirror\html\mirror_ctrl.htm. Ho fumana ho feta tloaelo web maqepheng a litšupiso, bona karolo ea sehlomathiso.

Tafole ea Confiquration ea Seipone le RMirrorMicrosemi-AN1256-Web-Basebelisi-Tsamaiso-SEFIG 5

Setšoantšo sa 5. Example ea tafole e hlophisitsoeng ea lefats'e

Fetola Web leqephe

Sehlooho sa HTML
Kenyelletsa lilaebrari tsa JS tse neng li hlokahala ho HTML tag.

Qala mohloli o matla oa tafole

  • Ha tokomane ea HTML e se e lokile, letsetsa DynamicTable() ho qala mohloli o matla oa tafole.
  • DynamicTable() e sebelisoa ho theha tafole e matla ka mor'a hore e fumane data ea JSON.
  • E tla bitsa requestUpdate ho qala phallo ea taelo ea JSON.
  1. window.addEvent('domready', function() {
  2. // Theha foromo e nang le 'mele oa tafole bakeng sa ho amohela / ho fetisa data ea JSON
  3. myDynamicTable = DynamicTable e ncha (“myTableContent”, “config”,”plusRowCtrlBar”);
    4
  4. requestUpdate();
  5. });

Kopo / Karabo data ea JSON

  • Ha tokomane ea HTML e se e lokile, sebelisa requestJsonDoc() ho romella kopo ea JSON "mirror.config.session.get" ho fumana leseli mabapi le linako tse hlophisitsoeng.
  • Kamora hore data ea JSON ea "mirror.capabilities.get" e amoheloe, mosebetsi oa callback requestUpdate() o tla sebetsoa. Sesebelisoa sa kopoUpdate se tla letsetsa "mirror.config.session.get" ho fumana tlhophiso ea hajoale. Ha tlhophiso ea hajoale e amoheloa, tšebetso processUpdate e bitsoa ho aha tafole e tla bonts'oa.
  1. mosebetsi kopoUpdate()
  2. {
  3. // Khutlisa dikahare tsa tafole
  4. myDynamicTable.restore();
    5
  5. // Tafole ena lintlha tse peli tsa JSON.
  6. requestJsonDoc(“mirror.config.session.get”, null, processUpdate, “config”);
  7. }

Sebetsa data e fumanoeng ea JSON

  • Mosebetsi processUpdate() e sebelisoa ho rala tafole e matla ka mor'a hore e fumane data ea JSON.
  • AddRows() e sebelisetsoa ho eketsa mela ea tafole. myDynamicTable.update() moralo oa
    Tafole ea HTML ho latela data e melang ea tafole.
  1. tshebetso processUpdate(recv_json, lebitso)
  2. {
  3. // Hlokomoloha ts'ebetso haeba ho se na data e amoheloang
  4. haeba (!recv_json) {
  5. tlhokomeliso ("Fumana data e matla e hlotsoe.");
  6. khutla;
  7. }
  8. // Boloka data e amohetseng JSON
  9. myDynamicTable.saveRecvJson(“config”, recv_json);
  10. // Eketsa mela ya tafole
  11. var table_rows = addRows(recv_json);
  12. myDynamicTable.addRows(tafole_rows);
  13. // Ntlafatsa tafole ena e matla
  14. myDynamicTable.update();
  15. // Hlakola nako
  16. var autorefresh = document.getElementById(“autorefresh”);
  17. haeba (autorefresh && autorefresh.checked) {
  18. haeba (timerID) {
  19. clearTimeout(timerID);
  20. }
  21. timerID = setTimeout('requestUpdate()', settingRefreshInterval());
  22. }
  23. }

Kenya mela ea tafole

  • Mosebetsing oa addRows (), re sebelisa sebopeho sa JSON ho tlatsa parameter e 'ngoe le e' ngoe e hlophisitsoeng lefatšeng ka bophara moleng oa tafole.
  • Likarolo tsohle tsa HTML li thathamisitsoe ho sehlopha sa JSON ("table_rows") 'me syntax ea lebala la tafole le ka tlase.

Syntax:
litafole_tsa:[ , ,… ] : { , ,… }
: {"mofuta": , "params":[ , ,…, ]}

  • Tabeng ena, mola o mong le o mong o na le likarolo tse hlano: "Session ID", "Mode", "Type", "VLAN ID" le "Reflector Port" For ex.ample,
ID ea nako (Sebaka sa lebitso: int32_t) 1 (Id ea seboka sa seipone)
Mokhoa (Sebaka sa lebitso: vtss_bool_t) 'nete (Ho bolela hore seipone sa seipone se nolofalitsoe)
Mofuta (Lebala la mabitso: palo

{seipone, rMirrorSource, rMirrorDestination}

Mohloli oa RMirror (ona ke mohloli oa seipone se hole
VLAN ID (Sebaka sa lebitso: uint16_t) 200 (Vlan e sebelisetsoa seipone)
Reflector Port (Sebaka sa lebitso: vtss_ifindex_t) Ke 1/1 (Boema-kepe boo ho romelloang sephethe-phethe sa seipone
  • The myDynamicTable.addRows() e tla fetolela data ea JSON ho sebopeho sa HTML mme e hlahise tafole ea HTML.
  1. mosebetsi addRow(key, val)
  2. {
  3. var none_map_val = 0xFFFFFFFF, none_map_text = “Ha ho letho”, none_interface_text = “HA HO MOTHO”;
  4. var tunnel_mode_suffix = val.TunnelMode == “useglobal” ? ” (” + oTTunnelMode[oVTunnelMode.indexOf(global_conf.tunnelMode)] + “)” : “”;
  5. var row = {mabala:[
  6. {type:"link", params:[“cr”, “mirror.htm?session_id=” + key, key]},
  7. {type:"text", params:[oTMode[oVMode.indexOf(val.Mode)], "c"]},
  8. {type:"text", params:[oTType[oVType.indexOf(val.Type)], "c"]},
  9. {mofuta:"mongolo", params:[val.Type == "seipone" ? "-":
    val.RMirrorVlan, “c”]},
  10. {type:"text", params:[val.Type == "rMirrorSource" ?
    val.ReflectorPort : “-” , “c”]}
  11. ]};
  12. mola o khutlang;
  13. }
  14. mosebetsi addRows(recv_json)
  15. {
  16. var row, empty_colspan = 7;
  17. var table_rows = new Array();
  18. // Eketsa hlooho ya tafole
  19. addHeader(table_rows);
  20. // Eketsa mola o le mong
  21. Object.each(recv_json, mosebetsi(rekoto) {
  22. table_rows.push(addRow(record.key, record.val));
  23. });
  24. kgutlisetsa_methalo ya tafole;
  25. }

Web leqephe la thuso
Bakeng sa web moralo oa leqephe la thuso, tlhaloso ea thuso e ka lebisa ho tlhaloso ea JSON, hore mongolo oa tlhaloso o ka lumellana le tlhahiso ea JSON mme o thusa ho fokotsa litlhaloso tse sa hlokahaleng. Example mona e nkiloe ho dhcp6 relay configuration.

Hyper-link mohloling file
Abela thuso file sebaka mohloling oa sona file HTML tag. Lebitso le feto-fetohang "help_page" le sebelisoa bakeng sa web kabelo ea leqephe la thuso.

  1. // Boselamose ba leqephe la thuso
  2. var help_page = “/help/help_xxx.htm”;

Ntlafatsa tlhaloso ea sebaka sa HTML ho tsoa ho litlhaloso tsa JSON

  • Sebelisa kapa HTML tag ho phatlalatsa tlhaloso ea tafole ea HTML le ho fuoa ID e ikhethang bakeng sa tag.
  • Ha tokomane ea HTML e se e lokile, letsetsa loadXMLDoc() ho fumana litlhaloso tsohle tsa JSON kapa ho fumana tlhaloso e khethehileng ea mokhoa ka lebitso la mokhoa oa JSON "jsonRpc.status.introspection.specific.inventory.get".
  • The processTableDesc () e sebelisetsoa ho ntlafatsa tlhaloso ea tafole le processUpdate () e sebelisetsoa ho ntlafatsa tlhaloso ea paramethara ea tafole.
  • Ho processUpdate(), letsetsa updateTableParamsDesc() ho nchafatsa likarolo tsa JSON tse tsamaellanang le mabitso a itseng.
  • Ntlafatsa the kapa tag HTML e ka hare ho latela tlhaloso ea element.
  1. /* Ntlafatsa likarolo tsa litlhaloso tsa HTML */
  2. tshebetso processTableDesc(req) {
  3. haeba (!req.responseText) {
  4. khutla;
  5. }
  6. var json_spec = JSON.decode(req.responseText);
  7. // Hlakisa tlhaloso ea tafole
  8. $(“TableDesc”).innerHTML = getJsonSpecElement(json_spec, “groups”, “dhcp6_relay.config.vlan”).tlhaloso;
  9. }
  10. /* Ntlafatsa tlhaloso ea paramethara ea tafole ea HTML */
  11. tshebetso processUpdate(recv_json) {
  12. // Ntlafatsa tlhaloso ea paramethara ea tafole
  13. var param_names = [
  14. {
  15. "alias": "interface",
  16. “type”: “vtss_ifindex_t”,
  17. "name": "vlanInterface",
  18. "sehlopha": "."
  19. },
  20. {
  21. "alias": "Relay Interface",
  22. “type”: “vtss_ifindex_t”,
  23. "name": "relayVlanInterface",
  24. “sehlopha”: “. Id ea sebopeho se sebelisoang ho fetisa."
  25. },
  26. {
  27. "alias": "Relay Destination",
  28. “type”: “mesa_ipv6_t”,
  29. "name": "relay_destination",
  30. “sehlopha”: “. Aterese ea IPv6 ea seva sa DHCPv6 eo kopo e tla romelloa ho eona. Boleng ba kamehla 'ff05::1:3' mans 'server efe kapa efe ea DHCP'."
  31. }
  32. ];
  33. updateTableParamsDesc(“TableParamsDesc”, recv_json, “dhcp6_relay.config.vlan.get”, param_names);
  34. }
  35. /* Fumana litlhaloso tsa JSON */
  36. window.addEvent('domready', tshebetso () {
  37. loadXMLDoc("/json_spec", processTableDesc);
  38. requestJsonDoc(“jsonRpc.status.introspection.specific.inventory.get”, “dhcp6_relay.config.vlan”, processUpdate);
  39. });

Hyper-link ho menu bar

  • Khoutu ea mohloli oa HTML oa bar ea menyu e hlahisoa ho tsoa file webstax2\vtss_appl\web\ menu_default.cxx.
  • Fetola lintho tse ho sena file bakeng sa Web leqephe la hyper-link.
  1. #haeba ho hlalositsoe(VTSS_SW_OPTION_DHCP6_RELAY)
  2. ITEM(” Relay,dhcp6_relay.htm”);
  3. #endif //VTSS_SW_OPTION_DHCP6_RELAY

HLOKOMELA
Hlokomela hore palo ea litlhaku tsa sebaka ho ITEM(“”), e sebelisoang ho etsa qeto ea boemo ba sehlopha bareng ea menyetla. Tabeng ena, tsohle web maqephe a tlas'a sehlopha sa "DHCPv6".Microsemi-AN1256-Web-Basebelisi-Tsamaiso-SEFIG 6

Setšoantšo sa 6. Example ea tafole e hlophisitsoeng ea lefats'e

Sehlomathiso

E tloaelehileng web maqephe

Ho na le tse 'maloa tse tloaelehileng web maqephe a ka sebelisoa bakeng sa moralo oa litšupiso. ExampSeo se tla bontšoa mona ke tlhophiso ea seipone se le seng se fumanehang ho vtss_appl\mirror\html\mirror.htm.
The web leqephe le fana ka tlhophiso e qaqileng bakeng sa seboka sa seipone se le seng. Li-parameter tsohle tse hlophisitsoeng li thathamisitsoe.

  • Tobetsa konopo ea "Save" ho sebelisa tlhophiso ea hajoale.
  • Tobetsa konopo ea "Reset" ho seta tlhophiso ea hajoale.
  • Tobetsa "Hlakola" ho khutlela moraoview ea liboka tsa seipone
Mirror&RMirror Configuration

Litlhophiso tsa GlobalMicrosemi-AN1256-Web-Basebelisi-Tsamaiso-SEFIG 7

Mohloli oa VLAN(s) ConfigurationMicrosemi-AN1256-Web-Basebelisi-Tsamaiso-SEFIG 8

Tlhophiso ea Boema-kepeMicrosemi-AN1256-Web-Basebelisi-Tsamaiso-SEFIG 9

Setšoantšo sa 7. Example ea tlhophiso e qaqileng ea seipone session
Likonopo "Save", "Reset" le "Hlakola" li eketsoa ke khoutu ea html:

JSON Taelo e phallang
Leqephe lena le hloka taelo ea mehato e 'meli:

  • Ntlha ea pele e hloka ho fumana bokhoni ba sesebelisoa ka mokhoa oa "mirror.capabilities.get". Matla ha a fetohe 'me a tlameha ho baloa hang feela.
  • Ebe e hloka ho fumana tlhophiso ea hona joale ea sesebelisoa ho sebelisa mekhoa ea "mirror.config.session.get", "port.status.get" le tabeng ea stacking "topo.config.stacking.get".

Mohala oa "mirror.capabilities.get" o qalisoa ke ketsahalo ea "domready" 'me sephetho se lokiselitsoe hore se sebetsoe ke mosebetsi requestUpdate.
ApplicationUpdate e tla qala mohala oa "mirror.config.session.get",
"port.status.get" 'me haeba ho ka stacking "topo.config.stacking.get"' me liphetho tsa mehala ena li lokiselitsoe hore li sebetsanoe ke mosebetsi preparedUpdate.
The function preparedUpdate e tla bokella liphetho tsohle, 'me ke feela ha tsohle li se li amohetsoe moo e tla letsetsa tšebetso processUpdate e tla aha litafole tse tla bontšoa web.

Litšupiso

  1. Wikipedia JavaScript https://en.wikipedia.org/wiki/JavaScript
  2. JSON https://www.json.org/
  3. MoonTools https://mootools.net/

Litokomane / Lisebelisoa

Microsemi AN1256 Web Kopo ea Baetsi ba mananeo [pdf] Bukana ea Mosebelisi
AN1256, AN1256 Web Kopo ea Baetsi ba Lenaneo, Web Kopo ea Baetsi, Kopo

Litšupiso

Tlohela maikutlo

Aterese ea hau ea lengolo-tsoibila e ke ke ea phatlalatsoa. Libaka tse hlokahalang li tšoailoe *