Commit Graph

47 Commits

Author SHA1 Message Date
Stepan Blyshchak
81cf33231f [build]: Improve dockerfile instructions (#3048)
- create a dockerfile-marcros.j2 file with all common operations
  written as j2 macro
- use single dockerfile instruction for COPY and RUN commands
  when possible to improve build time
- reorganize dockerfile instructions to make more cache friendly
  (in case someday we will remove --no-cache to build docker images)

Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2019-06-22 11:26:23 -07:00
Sumukha Tumkur Vani
3a8ce5f388
Fix for LLDP portname issue (#2886)
* Fix for LLDP portname issue
First check for operstate and if its not present then check for ifindex

* Addressing review comments
2019-05-10 14:28:24 -07:00
Qi Luo
6b3a26f0cc
Remove unused packages in docker images and host (#2807)
* Remove unneeded packages in docker images and host
* Remove libpython3.6 from snmp docker image
2019-04-29 17:21:24 -07:00
Sangita Maity
047c7c8915 [dockers]: Upgrade LLDP docker to stretch build (#2633)
* [dockers]: Upgrade LLDP docker to stretch build
2019-04-17 10:59:58 -07:00
Guohan Lu
83510f9223 start lldp-syncd and lldpmgrd after lldpd fully started
Signed-off-by: Guohan Lu <gulv@microsoft.com>
2019-02-12 10:38:55 +00:00
Guohan Lu
c46852a087 configure lldp when the port exists
On some platform, portstate might be unknown as it might not
be supported by the driver.

Signed-off-by: Guohan Lu <gulv@microsoft.com>
2019-02-12 09:48:05 +00:00
Guohan Lu
dd07e2afd4 configure the hostname for lldpd
Signed-off-by: Guohan Lu <gulv@microsoft.com>
2019-02-12 09:40:51 +00:00
Mykola F
52c533fe01 [lldpmgr] add mgmt ip to lldpd conf template, handle port description/alias changes (#2396)
* [lldpmgr] add mgmt ip to lldpd conf templte, handle port description/alias config

Signed-off-by: Mykola Faryma <mykolaf@mellanox.com>

* fix typo

* [config-engine] update test sample output lldpd.conf

Signed-off-by: Mykola Faryma <mykolaf@mellanox.com>

* fix the log message

* fix lldpd.conf.j2
2019-01-30 11:05:36 +02:00
Joe LeVeque
3c67c70c34 [lldp] For MGMT port, if port alias is available, use it for Port ID subtype; otherwise use port name (#2445) 2019-01-15 11:27:46 -08:00
lguohan
03e0efa704
[vs]: only send lldp over eth0 (management port) (#2309)
In vs platform, eth[n] where n > 0 is physical port,
we should not send lldp over those ports

Signed-off-by: Guohan Lu <gulv@microsoft.com>
2018-11-27 22:02:06 -08:00
lguohan
f3ca7c422f
[rsyslog]: use # to separate container name and program name in syslog message (#1918)
Previously use / to separate container name and program name.

However, in rsyslogd:

Precisely, the programname is terminated by either (whichever occurs first):

end of tag
nonprintable character
‘:’
‘[‘
‘/’
The above definition has been taken from the FreeBSD syslogd sources.

Signed-off-by: Guohan Lu <gulv@microsoft.com>
2018-08-12 22:23:58 -07:00
Qi Luo
7ba08e5bf6
Prefix docker container name to syslog syslogtag (program name) (#1810) 2018-06-25 10:48:42 -07:00
pavel-shirshov
18e97fba2c [docker-lldpd]: Various fixes (#1650)
* We don't need configure anything until we have interfaces created

* Don't run lldpcli for a port, until a port is up and running

* Remove lldpd socket before starting lldpd

* Fix sample files for lldpd configuration

* Another attempt to make the test working

* Quick fix for lldpd paused after start bug
2018-04-26 19:01:33 -07:00
pavel-shirshov
8a714c88c7
Use refactored Selectables from sonic-swss-common (#1604) 2018-04-16 18:38:48 -07:00
Joe LeVeque
291321d851 Incorporate swss-common Table Name Separator Changes (#1584)
* Table name separator now determined by database ID, no longer passed manually upon table creation

* Update submodules to include table name separator changes
2018-04-11 01:50:17 -07:00
pavel-shirshov
83f81c9676
Use eth0 interface only to generate lldpd SystemId (#1577) 2018-04-10 13:37:46 -07:00
Rodny Molina
957e6c0b6d Fixing lldp issue displaying mac-addr instead of ports (#1515)
Current lldp.conf.j2 template demands the presence of MGMT_INTERFACE attribute in configDB, and by extension, also in config_db.json file. However, MGMT_INTERFACE configuration attribute is optional, so lldp shouldn't bail out if this one isn't provided in configuration.

For this reason, no lldp.conf file is ever created in lldp's container, and lldpd defaults to advertise the mac-address of the connected interface, instead of the interface name.

The fix is to simply relax this jinja2 statement to verify if MGMT_INTERFACE attribute is present.
2018-03-20 11:25:31 -07:00
Joe LeVeque
e1cb2ace36 [base image files] All 'docker exec' wrapper scripts now dynamically adjust their flags depending on whether or not they are run on a terminal (#1507) 2018-03-17 00:43:29 -07:00
Joe LeVeque
c161de406a
[lldpmgrd] Fix potential race condition when interfaces are created (#1469) 2018-03-07 17:08:45 -08:00
Joe LeVeque
c689253b3f
[LLDP] Add lldpmgrd Daemon to Manage LLDP Configuration (#1428) 2018-03-02 16:46:22 -08:00
Taoyu Li
2e31a38617 [LLDP] Send interface name instead of mac as PORT_ID for mgmt interface (#1204)
* Send interface name instead of mac thru lldp for mgmt interface

* Fix j2 template test failure
2017-12-04 14:28:43 -08:00
Shuotian Cheng
fd34d907ff [lldp]: Get all interfaces from the database (#1069)
The previous implementation only supports EthernetX while X
varies from 0 - 124. Remove such hard coded logics and use
the information from the database instead.

Signed-off-by: Shu0T1an ChenG <shuche@microsoft.com>
2017-10-23 19:53:10 -07:00
Shuotian Cheng
72e947621c [config-engine]: Fix bug multiple ports connecting to same neighbor (#1005)
The current DEVICE_NEIGHBOR format doesn't support multiple different
ports connecting with same neighbor. Thus the lldpd.conf file is not
generated correctly, causing missing information for LAG members.

This fix reverts the data structure in the previous version of
minigraph parser - using local port as the key and remote port/device
as the value of the map. Sample format is:

DEVICE_NEIGHBOR['Ethernet124'] = {
    'name': 'ARISTA04T1',
    'port': 'Ethernet1/1'
}

The corresponding unit test in test_cfggen is updated.
Add one more unit test for lldpd.conf.j2 verification.

Signed-off-by: Shu0T1an ChenG <shuche@microsoft.com>
2017-10-03 16:23:19 -07:00
Taoyu Li
c9cc7aea41 [configdb] Migrate minigraph configurations to DB (#942)
Modify minigraph parser output format so it fit DB schema
Modify configuration templates to fit new schema
Systemd services dependencies are modified so database starts before any configuration consumer
2017-09-12 14:13:27 -07:00
Qi Luo
e1f2a2dd75 [lldp] No need to config on port with no minigraph_neighbor, such as port in vlan (#864) 2017-08-02 20:28:00 -07:00
Joe LeVeque
f49cac086f Remove extra trailing newlines at EOF (#804)
Files now end with a single newline
2017-07-12 20:54:37 -07:00
Joe LeVeque
bce5446dc4 [LLDP]: Port description (TLV 4) now contains '<neighbor_host_name>:<port_name>' (#772) 2017-06-29 16:37:37 -07:00
Joe LeVeque
d5c13c0a83 [dockers]: Disable autorestart on all supervisor processes inside containers (#580) 2017-05-09 17:37:08 -07:00
Joe LeVeque
8f348399f5 [Dockers]: Manage all Docker containers with Supervisord (#573)
- Consolidate config.sh and start.sh scripts into one script (start.sh)
 - Solve issue #435 - All dockers now run supervisord as their ENTRYPOINT
 - All stdout/stderr output from processes managed by supervisord is now sent to syslog instead of their own files
 - Supervisord log messages are now also sent to syslog
 - Removed unused smartmontools package from docker-platform-monitor
2017-05-08 15:43:31 -07:00
Taoyu Li
fed908fc6b [config-engine] minigraph.py refactoring (#448)
* Refactor minigraph.py
See description in https://github.com/Azure/sonic-buildimage/pull/448 for detail
2017-03-30 15:25:31 -07:00
Joe LeVeque
71d299bed4 [swsssdk]: Update nomenclature: 'sswsdk' -> 'swsssdk' (#445) 2017-03-30 11:51:05 -07:00
pavel-shirshov
814fd87e63 Remove /var/run/rsyslogd.pid bofore starting rsyslog (#453) 2017-03-29 18:07:25 -07:00
Shuotian Cheng
7f703a9c8f [docker-lldp]: Do not use TTY mode on lldpctl command (#454)
Signed-off-by: Shuotian Cheng <shuche@microsoft.com>
2017-03-29 17:47:21 -07:00
Taoyu Li
073c28bf15 Move template files to /usr/share/sonic/templates (#305) 2017-02-18 17:50:29 -08:00
pavel-shirshov
a845740543 [All Dockerfiles]: Prevent apt asking questions on the console (#300)
Add noninteractive setting into every Dockerfile in the repo

Signed-off-by: Pavel Shirshov pavelsh@microsoft.com
2017-02-16 21:48:49 -08:00
lguohan
b6753e7960 [docker-config-engine]: introduce docker sonic config engine (#274)
* [docker-config-engine]: introduce docker sonic config engine

sonic config engine provide the sonic configure engine for all sonic
dockers that rely on the engine to generate runtime configuration.
2017-02-07 18:11:19 -08:00
Oleksandr Ivantsiv
53a9792014 [Makefile]: Add possibility for docker containers to install files to base image (#240)
- Add vtysh/lldpctl/sensors to baseimage
2017-02-07 00:33:20 -08:00
Taoyu Li
1b49499b65 [docker]: Add a status file to mark that the file is generated by sonic-config-engine (#211) 2017-01-24 19:16:55 -08:00
Taoyu Li
4fe1bdcf87 sonic-cfggen with sonicv2 dockers (#190)
Add a sonic-config-engine to help generate config file based on minigraph and other data on runtime. Modify fpm, teamd, lldp, snmp, and platform-monitor docker to use sonic-config-engine to generate config in docker upon load.
2017-01-19 20:56:26 -08:00
Oleksandr Ivantsiv
80d0d2d43b Reduce docker images size. (#196)
* Reduce docker images size.

Install only required dependencies.

* Update Dockerfile.j2
2017-01-19 12:19:21 -08:00
Marian Pritsak
66aebb329c [docker]: Change templating method to jinja2 (#115) (#153)
Move from sed to jinja2 for more readability.
2016-12-23 15:22:06 -08:00
Marian Pritsak
e9098b99fb Build improvements (#80)
* Build improvements

Fix dependencies
Add configuration options
Automatically build sonic-slave

* Set default number of jobs to 1

* Auto generate target/debs directory

Signed-off-by: marian-pritsak <marianp@mellanox.com>

* Automatically remove sonic-slave container after exit

* Silence clean-logs

* Add SONIC_CLEAN_TARGETS to clean

* Use second expansion for clean dependencies

* Avoid creating empty log files

Remove log file on flush instead of writing empty string

* Put dpkg install inside lock

Use same lock as debian install targets do to avoid
race condition in dpkg installation

* Remove redirect to log from docker save

* Add .platform dependency to all and clean targets

* Remove header and footer from clean targets

* Disable messages for SONIC_CLEAN_TARGETS

* Exit with error if dpkg-buildpackage fails

* Set new location for debs in build_debian.sh

* Add recipe for docker-database

* Update redis version to 3.2.4

* Add support for p4 platform

* Add recipe for snmpd

* Add slave targets to phony and make all target default

* Remove build.sh from thrift

* Add versioning to team, nl, hiredis and initramfs

* Change sonic-slave to support snmpd build from sources

* Remove src/tenjin

* Add recipe for lldpd

* Add recipe for mpdecimal

* Remove hiredis directory on rebuild

* Add recipe for Mellanox hw management

* Remove generic image from all targets for Mellanox

* Add support for python wheels

* Add lldp and snmp dockers

* Sync docker-database to include libjemalloc

* Fix asyncsnmp variable name

* Change default build configuration

Redirect output to log files by default
Set number of jobs to nproc value
Do not print dependencies
Fix logging to print log of failed job into console

* Use docker inspect to check if sonic-slave image exists

* Use config in slave.mk directly

* Disable color output by default

* Remove sswsdk dependency from lldp and snmp dockers

* Fix comment in py wheels install targets

* Add dependency between two versions of sswsdk

* Add containers to mellanox platform

lldp, snmp and database containers

* Add recipe for team docker

* Add team docker to mellanox platform

* Encrypt password passed to build_debian.sh

* Update mellanox SAI version

Make version and revision setting only in main recipe

* Fix error handling in makefiles

As makefiles use .ONESHELL we should add -e
option to shell options in order to exit after any command fails

* Add recipe for platform monitor image

* Add platfotm monitor to mellanox targets

* Ignore submodules when building base image
2016-12-05 11:12:19 -08:00
Qi Luo
5621082dbb LLDP docker: Remove outdated dependency (#73) 2016-11-21 17:44:16 -08:00
Pavel Shirshov
ac64c1c29b Address CR suggestions 2016-10-31 14:48:27 -07:00
Pavel Shirshov
62af66a1f0 Add a pause before pushing port configuration 2016-10-31 14:48:27 -07:00
Pavel Shirshov
30438bb987 update port configurations in lldpd as soon as port created 2016-10-31 14:48:27 -07:00
thomasbo
135ba232ca SNMP/LLDP Containers: Sonic V2 Support (#41)
* Adding support for V2 in SNMP/LLDP (-sv2 postfix)
* Fixes for V1 containers: logging
* Fixes for V1 LLDP: limit LLDP to Front-panel or MGMT interfaces.
2016-10-28 15:19:29 -07:00